Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python datetime.now()와 datetime.today()의 차이점 완벽 정리

Python에서 현재 날짜와 시간을 가져올 때 가장 많이 사용되는 두 함수, datetime.now()datetime.today()는 겉보기에는 비슷해 보이지만 중요한 차이점이 있습니다.

핵심 차이점: tzinfo(시간대) 인자 지원 여부

datetime.now()tzinfo(시간대 정보)를 키워드 인자로 받을 수 있지만, datetime.today()는 어떠한 키워드 인자도 받지 않습니다. 즉, 특정 시간대를 지정하여 시간을 얻고 싶다면 반드시 datetime.now()를 사용해야 합니다.

공식 문서의 설명

Python 공식 문서에서는 datetime.now()에 대해 다음과 같이 설명합니다.

datetime.now()는 현재 현지(local) 날짜와 시간을 반환합니다. 선택적 인자인 tz가 None이거나 지정되지 않은 경우 today()와 동일하게 동작하지만, 가능하다면 time.time() 타임스탬프를 거쳐 얻을 수 있는 값보다 더 높은 정밀도를 제공합니다. 예를 들어, C gettimeofday() 함수를 제공하는 플랫폼에서는 이러한 높은 정밀도를 활용할 수 있습니다.

사용 예제

두 함수의 실제 사용 방법을 코드로 살펴보겠습니다.

from datetime import datetime, timezone

# 현지 시간 기준으로 현재 날짜와 시간 가져오기
now_local = datetime.now()

# 시간대(timezone)를 지정하여 UTC 시간 가져오기
now_utc = datetime.now(timezone.utc)

# today()는 인자를 받지 않으므로 항상 현지 시간 반환
today = datetime.today()

정리

시간대 정보가 필요 없고 단순히 현지 시간만 얻으면 된다면 두 함수 모두 사용할 수 있으며 결과도 거의 동일합니다. 하지만 UTC나 다른 특정 시간대의 시간이 필요하거나 더 높은 정밀도가 요구되는 경우에는 datetime.now(tz)를 사용하는 것이 올바른 선택입니다. 최신 Python 프로젝트에서는 시간대를 명시적으로 다루는 것이 권장되므로, timezone.utc 등을 함께 사용하는 습관을 들이면 좋습니다.