본문 바로가기
Python/Python FAQ

Python 왜 datetime.datetime.utcnow()은 시간대 정보를 포함하지 않을까요?, Why does datetime.datetime.utcnow() not contain timezone information?

by 베타코드 2023. 11. 24.
반응형

질문


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)도 사용할 수 있습니다.

반응형

댓글