(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 '오래 전'