프로그래밍/Python

[Python] 현재 시간대에 대한 OFFSET 시간 (UTC) 구하기

채윤아빠 2024. 6. 30. 11:56
728x90
반응형

개요

파이썬에서 현재 시간대에 대한 OFFSET 시간 정보를 확인하는 방법을 정리해 둡니다.


datetime 활용

UTC 기준 시각으로부터 현재 시간대에 대한 OFFSET 시간은, 우리 나라의 경우 +9시간입니다. 이 값을 구하는 몇 가지 방법을 간단하게 알아 보겠습니다.

첫 번재는 datetime 패키지를 이용한 방법입니다.

from datetime import datetime

local_now = datetime.now()
utc_now = datetime.utcnow()
offset = local_now - utc_now

print(f"UTC Offset : {offset} / {offset.seconds / 3600:+.1f} hours")


단순하게 현재 시간대의 datetime을 구한다음 UTC 시간대의 datetime을 구하여 빼서 timedelta 값을 구하면 됩니다.

실행 결과는 다음과 같습니다.

UTC Offset : 9:00:00 / +9.0 hours

time 활용

두 번째 방법은 time 패키지를 활용한 방법입니다.

import time

# 현재 로컬 타임존의 UTC offset 구하기
utc_offset_seconds = -time.timezone if time.localtime().tm_isdst == 0 else -time.altzone
utc_offset_hours = utc_offset_seconds / 3600 # time.timezone은 초 단위로 제공됨

print(f"UTC Offset : {utc_offset_hours:+.1f} hours")


실행 결과는 다음과 같습니다.

UTC Offset : +9.0 hours


일광절약시간(DST = 썸머타임) 적용 여부도 자동으로 고려합니다.