반응형
질문
datetime.datetime.utcnow()
왜 이 datetime
은 명시적으로 UTC datetime
임에도 불구하고 시간대 정보가 없는 걸까요?
이게 tzinfo
를 포함하고 있을 것으로 예상했는데요.
답변
Python 3.2 이후로는 datetime
모듈에 datetime.timezone
이 포함되어 있습니다. datetime.utcnow()
의 문서에는 다음과 같이 나와 있습니다:
인식 가능한 현재 UTC 날짜 및 시간은
datetime.now
(
timezone.utc
)
를 호출하여 얻을 수 있습니다.
따라서, datetime.utcnow()
은 tzinfo
를 설정하지 않으며 UTC임을 나타내지 않지만, datetime.now(datetime.timezone.utc)
는 tzinfo
가 설정된 UTC 시간을 반환합니다.
따라서 다음을 수행할 수 있습니다:
>>> import datetime
>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2014, 7, 10, 2, 43, 55, 230107, tzinfo=datetime.timezone.utc)
Python 3.11부터는 datetime.UTC
도 존재하며 datetime.timezone.utc
와 동일합니다. 따라서 datetime.datetime.now(datetime.UTC)
도 사용할 수 있습니다.
반응형
댓글