python datetime 정리
파이썬 datetime 모듈중 자주 쓰는 것 위주로 정리했다.
1. datetime을 문자열로 바꾸기
import datetime
now_datetime = datetime.datetime.now()
print(f"{type(now_datetime)}: {now_datetime}")
# <class 'datetime.datetime'>: 2018-09-13 22:29:37.255036
now_str_date = now_datetime.strftime('%Y-%m-%d')
print(f"{type(now_str_date)}: {now_str_date}")
# <class 'str'>: 2018-09-13
now_str_time = now_datetime.strftime('%H:%M:%S')
print(f"{type(now_str_time)}: {now_str_time}")
# <class 'str'>: 22:33:33
now_str_datetime = now_datetime.strftime('%Y-%m-%d %H:%M:%S')
print(f"{type(now_str_datetime)}: {now_str_datetime}")
# <class 'str'>: 2018-09-13 22:34:19
2. 문자열을 datetime으로 바꾸기
import datetime
my_str_datetime = "2018-09-13 22:39:04"
my_datetime = datetime.datetime.strptime(my_str_datetime, '%Y-%m-%d %H:%M:%S')
print(f"{type(my_datetime)}: {my_datetime}")
# <class 'datetime.datetime'>: 2018-09-13 22:39:04
3. 날짜/시간 연산 (timedelta)
import datetime
"""
주: datetime.timedelta(weeks=1)
일: datetime.timedelta(days=1)
시간: datetime.timedelta(hours=1)
분: datetime.timedelta(minutes=1)
초: datetime.timedelta(seconds=1)
밀리초: datetime.timedelta(milliseconds=1)
마이크로초: datetime.timedelta(microseconds=1)
"""
now_datetime = datetime.datetime.now()
print(f"{type(now_datetime)}: {now_datetime}")
# <class 'datetime.datetime'>: 2018-09-13 23:19:38.364179
tomorrow_datetime = now_datetime + datetime.timedelta(days=1)
print(f"{type(tomorrow_datetime)}: {tomorrow_datetime}")
# <class 'datetime.datetime'>: 2018-09-14 23:19:38.364179
4. 날짜/시간 차이를 구할 때
import datetime
"""
datetime.datetime - datetime.datetime = datetime.timedelta
datetime.timedelta로 일수나 시간을 seconds로 변환
datetime.timedelta(days=1).total_seconds()
"""
day_seconds = datetime.timedelta(days=1).total_seconds()
print(f"{type(day_seconds)}: {day_seconds}")
# <class 'float'>: 86400.0
# <class 'datetime.datetime'>
first_datetime = datetime.datetime.strptime('2018-09-13 22:50:14', '%Y-%m-%d %H:%M:%S')
second_datetime = datetime.datetime.strptime('2018-09-16 22:40:34', '%Y-%m-%d %H:%M:%S')
result_timedelta = second_datetime - first_datetime
print(f"{type(result_timedelta)}: {result_timedelta}") # 이틀하고도 85,820초가 지났다!!
# <class 'datetime.timedelta'>: 2 days, 23:50:20
print(f"{type(result_timedelta.days)}: {result_timedelta.days}")
# <class 'int'>: 2
print(f"{type(result_timedelta.seconds)}: {result_timedelta.seconds}")
# <class 'int'>: 85820
# <class 'float'>
print(result_timedelta.total_seconds())
# 258620.0
5. 날짜/시간 변경(대치)
import datetime
my_str_datetime = "2018-09-13 22:39:04"
my_datetime = datetime.datetime.strptime(my_str_datetime, '%Y-%m-%d %H:%M:%S')
print(f"{type(my_datetime)}: {my_datetime}")
# <class 'datetime.datetime'>: 2018-09-13 22:39:04
new_datetime = my_datetime.replace(year=2000, month=1, day=15, hour=3, minute=15, second=59)
print(f"{type(my_datetime)}: {my_datetime}")
# <class 'datetime.datetime'>: 2018-09-13 22:39:04
print(f"{type(new_datetime)}: {new_datetime}")
# <class 'datetime.datetime'>: 2000-01-15 03:15:59
6. 날짜/시간 사용 및 병합
import datetime
my_date = datetime.date(2018, 9, 13)
print(f"{type(my_date)}: {my_date}")
# <class 'datetime.date'>: 2015-04-15
my_time = datetime.time(22, 39, 4)
print(f"{type(my_time)}: {my_time}")
# <class 'datetime.time'>: 22:39:04
my_datetime = datetime.datetime.combine(my_date, my_time)
print(f"{type(my_datetime)}: {my_datetime}")
# <class 'datetime.datetime'>: 2018-09-13 22:39:04
잘못 된 정보에 대한 지적, 더 좋은 방법에 대한 의견 등은 언제나 많이많이 환영합니다.😆