파이썬
표준 라이브러리
날짜/시간 - datetime
now()

파이썬 datetime.now() 함수 사용법

Python 프로그래밍 에서 datetime.now() 함수는 다양한 용도로 자주 사용됩니다. now() 함수는 현재 날짜와 시간을 간단하게 얻는 방법을 제공하여, 데이터 로깅, 타임스탬핑, 스케줄링 등의 분야에서도 활용할 수 있습니다.

이번 포스팅에서는 datetime.now() 함수를 깊이 있게 살펴보고, 다른 시간대에서의 사용 방법, 출력 포맷팅, UTC 변환 등의 다양한 기능과 사용법에 대해 설명합니다.

1. datetime.now() 함수

datetime 모듈은 표준 라이브러리의 일부로, 그 중 now() 함수는 현재 날짜와 시간을 반환합니다. 기본적으로 이 날짜와 시간은 로컬 기준입니다. 간단한 사용 예는 다음과 같습니다:

from datetime import datetime
 
current_time = datetime.now()
print(current_time)
 
# Output: 2023-07-07 21:50:54.546263

이렇게 하면 YYYY-MM-DD HH:MM:SS.ssssss 형식의 현재 날짜와 시간이 출력됩니다.

2. 시간대 다루기 (timezone)

datetime.now()는 기본적으로 로컬 시간을 반환하지만, pytz 라이브러리를 사용하면 훤하는 시간대의 현재 시간도 얻을 수 있습니다. pytz 라이브러리는 내장되어 있지 않기 때문에, pip 혹은 conda 와 같은 패키지 매니저를 이용해 설치해주세요.

코드 예제는 다음과 같습니다:

from datetime import datetime
import pytz
 
seoul_tz = pytz.timezone('Asia/Seoul')
current_time_seoul = datetime.now(seoul_tz)
print(current_time_seoul)

이렇게 하면 서울의 현재 날짜와 시간이 출력되며, 일광 절약 시간 규칙이 적용되지 않습니다.

3. datetime.now() 출력 포맷팅

strftime() 메소드를 사용하면 datetime 객체를 선호하는 형식의 문자열로 포맷팅할 수 있습니다. 이 메소드는 하나의 인자, 즉 strftime 지시문을 포함하는 문자열을 받습니다. 이 문자열을 통해 출력에 대한 포맷팅을 할 수 있습니다.

아래 코드 예제에서 확인해보세요.

from datetime import datetime
 
current_time = datetime.now()
formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_time)

이 예제 에서, %Y는 네 자리 연도를, %m은 두 자리 월을, %d는 일을, 그리고 %H, %M, %S는 각각 시간, 분, 초를 나타냅니다.

4. UTC 시간으ㄹ로 변환하기

datetime.now() 함수를 사용하여 현재 UTC 시간을 얻을 수 있습니다.

from datetime import datetime
import pytz
 
utc_now = datetime.now(pytz.UTC)
formatted_utc_now = utc_now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_utc_now)

이렇게 하면 현재 UTC 날짜와 시간을 문자열로 출력합니다.

5. 시간 빼기

파이썬 datetime을 사용하면 시간을 빼는 것도 가능합니다. 예를 들어, 현재 시간에서 하루를 빼려면 다음과 같이 합니다:

from datetime import datetime, timedelta
 
current_time = datetime.now()
one_day_earlier = current_time - timedelta(days=1)
print(one_day_earlier)

이 코드는 현재 날짜와 시간보다 하루 이전의 날짜와 시간을 출력합니다.

6. 타임스탬프, ISO 형식, 그리고 에포크(epoch)

timestamp() 메소드는 에포크(epoch) 이후의 시간을 초로 표현하여 반환하며, isoformat()은 날짜와 시간을 ISO 형식으로 표현한 문자열을 반환합니다.

💡

"에포크"는 시간이 시작하는 지점을 말하며, 플랫폼에 따라 다릅니다. Unix의 경우, 에포크는 1970년 1월 1일 00:00:00 (UTC)입니다.

from datetime import datetime
 
current_time = datetime.now()
 
print("Timestamp:", current_time.timestamp())
print("ISO Format:", current_time.isoformat())

7. datetime.now() vs datetime.today()

datetime.now()datetime.today() 모두 현재 로컬 날짜와 시간을 반환합니다.

1가지 차이로는, datetime.now()섹션 2에서 보았듯이, 시간대 인자를 취할 수 있지만, datetime.today()는 그렇지 않습니다.

from datetime import datetime
 
print("datetime.now() :", datetime.now())
print("datetime.today():", datetime.today())

두 함수 모두 현재 로컬 날짜와 시간을 출력하지만, 다른 시간대를 사용하는 것은 datetime.now()만 가능합니다.

8. 마치며

파이썬 datetime.now() 함수는 현재 날짜와 시간을 얻는 도구 이상의 역할을 합니다. 이를 통해 다른 시간대에서 효과적으로 작업을 수행하고, 출력을 포맷팅하며, UTC나 문자열로 변환하고, 시간을 빼고, 타임스탬프를 다루고, 심지어 ISO 형식을 사용할 수 있습니다.

이번 포스팅이 파이썬으로 현재 날짜를 가져오고 조작하는 작업에 도움이 되길 바랍니다.


© 2023 All rights reserved.