Python time-zone-aware datetime 만들기


외부 API를 사용하거나 excel로 데이터를 import 할 때 문자열 형태의 날짜/시간 데이터를 time-zone-aware datetime 객체로 만드는 방법이다.

어려운 것은 아니지만 자주 쓰지 않다보니 매번 방법을 잊어버려 다시 찾게 되는지라 한번 정리해본다.

naive datetime(시간대 미설정) 날짜/시간 생성

import datetime

# %Y-%m-%d %H:%M:%S 형태의 날짜/시간 문자열(2020년 12월 13일 21시 44분 21초)
datetime_string = "2020-12-13 21:44:21"
naive_datetime = datetime.datetime.strptime(datetime_string, "%Y-%m-%d %H:%M:%S")

>>> naive_datetime
>>> datetime.datetime(2020, 12, 13, 21, 44, 21)

time-zone-aware datetime(시간대 인지) 날짜/시간 생성

import datetime
from pytz import timezone

# 한국 시간대(+9)의 timezone
KST = timezone('Asia/Seoul')
# %Y-%m-%d %H:%M:%S 형태의 날짜/시간 문자열(2020년 12월 13일 21시 44분 21초)
datetime_string = "2020-12-13 21:44:21"
naive_datetime = datetime.datetime.strptime(datetime_string, "%Y-%m-%d %H:%M:%S")
timezone_aware_datetime = KST.localize(naive_datetime)

>>> timezone_aware_datetime
>>> datetime.datetime(2020, 12, 13, 21, 44, 21, tzinfo=<DstTzInfo 'Asia/Seoul' KST+9:00:00 STD>)
참고

파이썬 공식문서 : https://docs.python.org/ko/3/library/datetime.html

좋은 웹페이지 즐겨찾기