/ PYTHON

(Python) datetime과 timestamp


datetime과 timestamp 조작하기


datetime으로 현재 날짜 구하기


from datetime import datetime

datetime.today() # 현재 날짜

datetime.today().year # 현재 연도
datetime.today().month # 현재 월
datetime.today().day # 현재 일
datetime.today().hour # 현재 시간



datetime으로 원하는 포멧으로 출력하기


datetime.today().strftime("%Y%m%d%H%M%S") # YYYYmmddHHMMSS형태로 출력 
# EX) 202107141230

datetime.today().strftime("%Y-%M-%d %H:%M:%S") # YYYY-mm-dd HH:MM:SS형태로 출력
# EX) 2021-07-14 12:30



str → datetime으로 타입 변경하여 출력하기


date_str = '2021-07-14 12:30'

date = datetime.strptime(date_str, "%Y-%m-%d %H:%M")



datetime 형식 → timestamp 형식으로 변경하여 출력하기


from datetime import datetime
import time

timestamp = time.mktime(datetime.today().timetuple())



timestamp로 현재 날짜 구하기


import time

time.time()



str → timestamp로 타입 변경하여 출력하기


from datetime import datetime
import time

date_str = '2021-07-14 12:30'
timestamp = time.mktime(datetime.strptime(date_str, "%Y-%m-%d %H:%M").timetuple())



timestamp 형식 → datetime형식으로 변경하여 출력하기


from datetime import datetime
import time

date = datetime.fromtimestamp(time.time())



년,월,일,시,분만 제공된 datetime → 초, 밀리세컨드 제거한 timestamp형식으로 받기

받아온 날짜가 년,월,일,시,분만 제공해줄때 해당 날짜를 timestamp로 변환해야 할 경우

from datetime import datetime
import time

date_time = datetime.datetime.now()
datetime_format = date_time.strftime('%Y-%m-%d %H:%M:00') # 2021-07-18 16:03:00
time_format = time.mktime(time.strptime(datetime_format,'%Y-%m-%d %H:%M:%S')) # 1626591780.0



현재 날짜와 비교하여 ~분 , ~초전으로 날짜 출력하기



def created_string(date):
	now = datetime.datetime.now()
  datetime_format = now.strftime('%Y-%m-%d %H:%M:00')
  current_date = time.mktime(time.strptime(datetime_format,'%Y-%m-%d %H:%M:%S'))

  time_passed = float(current_date)-int(float(date))
  if time_passed == 0:
      return '1초 전'
  if time_passed < 60:
      return str(time_passed) + '초 전'
  if time_passed//60 < 60:
      return str(int(time_passed//60)) + '분 전'
  if time_passed//(60*60) < 24:
      return str(int(time_passed//(60*60))) + '시간 전'
  if time_passed//(60*60*24) < 30:
      return str(int(time_passed//(60*60*24))) + '일 전'
  if time_passed//(60*60*24*30) < 12:
      return str(int(time_passed//(60*60*24*30))) + '달 전'
  else:
      return '오래 전'