Python
Python - "datetime" 클래스의 "utcnow" 메서드는 더 이상 사용되지 않습니다.
올엠
2024. 12. 10. 10:49
반응형
Python 3.12 버전부터 경고가 나타나는데 utcnow가 사라진다는 것이다.
Python 기본적인 타임 포맷은 타임값이 들어가지 않는 방식을 채택하고 있었다.
>>> from datetime import datetime, timezone
>>>
>>>
>>> print(datetime.utcnow())
2024-12-10 00:52:07.010333
>>>
>>> print(datetime.now(timezone.utc))
2024-12-10 00:52:07.550513+00:00
그리고 타임값은 timezone을 사용할 때만 추가되었다.
Python에서는 이 부분이 혼선을 초래한다고 판단하여 utcnow를 제거하고, now를 사용하도록 권장하고 있는 것으로 보인다.
하지만 이는 과거 코드들, utcnow 를 사용하여 타임존 값 없이 사용하는 경우에는 타임 포맷이 없는 기준으로 코드를 사용하고 있어서 문제가 되기 때문에 계속 타임값을 제거해야 하는 이슈가 발생할 수 있다.
이를 우해서 타임존을 강제로 제거하는 코드를 제공하는데, 바로 replace를 이용해서 tzinfo=None을 통해 timezone을 제거 할 수 있다.
print(datetime.now(timezone.utc).replace(tzinfo=None))
반응형