Python으로 컴퓨터의 UTC 오프셋 확인하기
컴퓨터의 UTC 오프셋이란 운영체제에 설정되어 있는 시간대(timezone)를 의미합니다. Python에서는 기본 제공되는 time 모듈을 사용하면 이 정보를 손쉽게 얻을 수 있습니다. time.timezone 속성은 UTC 오프셋을 초 단위로 반환합니다.
방법 1: time 모듈 사용
import time print(-time.timezone) # 인도 표준시(IST): +5:30
출력 결과
19800
인도의 시간대는 UTC+5:30이므로, 이를 초로 환산하면 5 × 3600 + 30 × 60 = 19,800초가 됩니다. 참고로 time.timezone은 UTC보다 동쪽에 있는 시간대는 음수 값을 반환하기 때문에, 실제 오프셋을 구하려면 앞에 마이너스(-)를 붙여야 합니다.
방법 2: datetime 모듈 활용
time 모듈 외에도 다른 접근 방식으로 시간대 정보를 구할 수 있습니다. UTC 기준 datetime 객체와 로컬 시간대 datetime 객체를 각각 생성한 뒤, 두 값의 차이를 계산하면 시간대 오프셋을 얻을 수 있습니다.
import time
from datetime import datetime
ts = time.time()
utc_offset = (datetime.fromtimestamp(ts) -
datetime.utcfromtimestamp(ts)).total_seconds()
print(utc_offset)
출력 결과
19800.0
이 방법은 현재 타임스탬프를 기준으로 로컬 시간과 UTC 시간의 차이를 직접 계산하므로, 서머타임(DST)이 적용되는 환경에서도 상황에 맞는 오프셋을 구할 수 있다는 장점이 있습니다.
정리
간단히 시간대만 확인하고 싶다면 -time.timezone을 사용하는 것이 가장 빠르고 편리합니다. 반면 날짜와 시간을 함께 다루는 복잡한 로직이라면 datetime 모듈을 활용하는 것이 좋습니다. 더 정교한 시간대 처리가 필요하다면 Python 3.9부터 기본 제공되는 zoneinfo 모듈이나 널리 쓰이는 서드파티 라이브러리인 pytz를 사용하는 것도 좋은 선택입니다.