본문 바로가기
Knowledge/IT, 인터넷

Python datetime.utcnow() DeprecationWarning 해결 방법

by MoSeoPAPA 2025. 5. 22.
반응형
Python datetime.utcnow() DeprecationWarning 해결 방법

Python datetime.utcnow() is deprecated 경고 해결 방법

경고 메시지 예시

Python 3.12 이상에서 datetime.utcnow()를 호출하면 아래와 같은 경고가 출력됩니다:

DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal.
Use timezone-aware objects to represent datetimes in UTC.

이제는 timezone-aware datetime 객체를 사용하는 것이 표준입니다.

왜 deprecated 되었을까?

datetime.utcnow()는 timezone 정보가 없는 naive datetime을 반환합니다.
이는 시스템 간 시간 비교나 저장에서 오작동 가능성이 높아 권장되지 않습니다.

추천 대체 코드

Python 3.9 이상 권장 코드

from datetime import datetime, timezone

now = datetime.now(timezone.utc)
print(now.isoformat())

기존 코드 vs 권장 코드

기존 코드경고 없음 (권장)
datetime.utcnow() datetime.now(timezone.utc)

추가 예제: UTC → KST 변환

from datetime import datetime, timezone, timedelta

utc_now = datetime.now(timezone.utc)
kst_now = utc_now.astimezone(timezone(timedelta(hours=9)))

print("UTC:", utc_now)
print("KST:", kst_now)

UTC 시간 기준으로 한국 시간(KST)으로 안전하게 변환하는 방법입니다.

마무리

Python에서 시간 처리는 예외 없이 timezone-aware 객체를 사용하는 것이 안전합니다.
서버 개발, 로그 처리, DB 저장 시 문제가 없도록 utcnow()는 지양하고 timezone.utc를 사용하세요.

반응형

댓글