Python으로 현재 시간과 시간대 데이터 쉽게 가져오기
Python: 현재 시간과 시간대 데이터 쉽게 가져오기
표준 datetime 및 time 모듈, 인기 있는 pytz 라이브러리를 사용하여 현재 로컬 시간을 얻고 여러 시간대를 다루는 신뢰할 수 있는 방법을 알아봅니다.
Python은 현재 시간에 접근하는 여러 직관적인 방법을 제공합니다. 아래는 각 접근법을 설명하는 실용적인 예제와 각 코드 조각의 기능을 명확히 설명합니다.
예제 1: datetime 모듈로 현재 시간 구하기
from datetime import datetime
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
print("현재 시간 =", current_time)
출력
현재 시간 = 07:41:19
이 예제에서 datetime.now() 메서드는 현재 날짜와 시간을 포함하는 datetime 객체를 반환합니다. strftime() 함수는 이 객체를 사람이 읽기 쉬운 시간 문자열로 포맷합니다.
동일한 datetime 인스턴스에서 time() 메서드를 사용하여 시간 부분만 나타내는 time 객체를 얻을 수 있습니다:
from datetime import datetime
now = datetime.now().time() # time 객체
print("now =", now)
print("type(now) =", type(now))
출력
now = 07:43:37.457423
type(now) = <class 'datetime.time'>
예제 2: time 모듈로 현재 시간 구하기
현재 로컬 시간만 필요한 애플리케이션의 경우 내장 time 모듈이 가벼운 대안입니다:
import time
t = time.localtime()
current_time = time.strftime("%H:%M:%S", t)
print(current_time)
출력
07:46:58
예제 3: 특정 시간대의 현재 시간
애플리케이션이 여러 지역의 시간을 참조해야 할 때 pytz 라이브러리는 강력한 시간대 지원을 제공합니다. 다음 예제는 뉴욕과 런던의 현재 시간을 가져옵니다:
from datetime import datetime
import pytz
# 뉴욕
ny_tz = pytz.timezone('America/New_York')
ny_time = datetime.now(ny_tz)
print("뉴욕 시간:", ny_time.strftime("%H:%M:%S"))
# 런던
london_tz = pytz.timezone('Europe/London')
london_time = datetime.now(london_tz)
print("런던 시간:", london_time.strftime("%H:%M:%S"))
출력
뉴욕 시간: 03:45:16
런던 시간: 08:45:16
이 코드 조각은 datetime 객체에 시간대를 연결하고 표시용으로 포맷하는 방법을 보여줍니다. Python 3.9 이상에서는 내장 zoneinfo 모듈이 많은 경우 pytz를 대체할 수 있습니다.