반응형
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))
반응형
'Python' 카테고리의 다른 글
Python 3.12 - 주요 내용과 예제로 살펴보기 (0) | 2024.11.11 |
---|---|
Python - 3.12 Datetime 변화( 메서드는 더 이상 사용되지 않습니다.) (0) | 2024.11.11 |
Python SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007 (2) | 2024.09.04 |
Python - Error Can't pickle local object 오류 해결 (0) | 2024.06.20 |
SQLAchemy - Column expression, FROM clause, or other columns clause element expected, 오류 해결 (0) | 2024.06.10 |