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

Python에서 현지 시간대 기준 날짜와 시간을 출력하는 방법

Python에서 날짜와 시간을 다룰 때 시간대(timezone)를 가장 쉽게 처리하는 방법은 pytztzlocal 모듈을 사용하는 것입니다. 이 두 라이브러리는 정확하고 플랫폼에 독립적인 시간대 계산을 가능하게 해줍니다.

pytz는 Olson tz 데이터베이스를 Python으로 가져오는 라이브러리로, 서머타임(DST) 종료 시점에 발생하는 모호한 시간 문제도 해결해 줍니다. 관련된 자세한 내용은 Python 공식 라이브러리 레퍼런스의 datetime.tzinfo 문서에서 확인할 수 있습니다.

라이브러리 설치

사용하기 전에 먼저 아래 명령어로 두 라이브러리를 설치해야 합니다.

$ pip install pytz tzlocal

예제 코드

pytz 라이브러리는 다음과 같이 사용할 수 있습니다.

from datetime import datetime
from pytz import timezone
from tzlocal import get_localzone

format = "%Y-%m-%d %H:%M:%S %Z%z"

# UTC 기준 현재 시간
now_utc = datetime.now(timezone('UTC'))
print(now_utc.strftime(format))

# 로컬 시간대로 변환
now_local = now_utc.astimezone(get_localzone())
print(now_local.strftime(format))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

2018-01-03 07:05:50 UTC+0000
2018-01-03 12:35:50 IST+0530

코드 설명

코드의 동작 순서를 살펴보면 다음과 같습니다.

1. datetime.now(timezone('UTC'))를 통해 UTC 기준의 현재 시각을 가져옵니다.
2. strftime(format)을 사용해 지정한 형식(연도-월-일 시:분:초 시간대명+오프셋)으로 출력합니다.
3. tzlocalget_localzone() 함수로 시스템에 설정된 현지 시간대를 자동으로 감지합니다.
4. astimezone() 메서드를 통해 UTC 시간을 현지 시간대로 변환하여 출력합니다.

이처럼 pytz와 tzlocal을 함께 사용하면 실행 환경에 관계없이 시스템의 현지 시간대를 손쉽게 확인하고 변환할 수 있습니다.