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

Python의 time.tzset() 메서드란? 역할과 사용법 완벽 정리

time.tzset() 메서드란 무엇인가?

Python의 time.tzset() 메서드는 라이브러리 루틴에서 사용하는 시간 변환 규칙(time conversion rules)을 재설정하는 함수입니다. 이 메서드는 환경 변수 TZ의 값을 참조하여 새로운 시간대 규칙을 적용하며, 호출 시 다음과 같은 전역 변수들이 함께 갱신됩니다.

  • tznameTZ 환경 변수로부터 가져온 표준 시간대 이름
  • timezone — UTC 기준 서쪽 방향의 비(非) 서머타임 오프셋(초 단위)
  • altzone — UTC 기준 서쪽 방향의 서머타임(DST) 오프셋(초 단위)
  • daylight — 해당 시간대에 서머타임 규칙이 전혀 없으면 0, 과거·현재·미래 어느 시점이라도 서머타임이 적용된다면 0이 아닌 값

주의: 이 함수는 Unix 계열 운영체제(Linux, macOS 등)에서만 사용할 수 있으며, Windows에서는 지원되지 않습니다.

TZ 환경 변수의 표준 형식

TZ 환경 변수는 다음과 같은 표준 형식을 따릅니다.

std offset [dst [offset [,start[/time], end[/time]]]]

여기서 std는 표준 시간대 이름, offset은 UTC와의 시차, dst는 서머타임 이름, 그리고 startend는 서머타임의 시작 및 종료 시점을 의미합니다.

사용 예제

아래 예제는 TZ 환경 변수를 변경한 뒤 tzset()을 호출하여 시간대가 실제로 어떻게 바뀌는지 보여줍니다.

import time
import os

# 미국 동부 시간대(EST/EDT)로 설정
os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'
time.tzset()
print(time.strftime('%X %x %Z'))

# 호주 동부 시간대(AEST/AEDT)로 설정
os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0'
time.tzset()
print(time.strftime('%X %x %Z'))

실행 결과

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

13:00:40 02/17/09 EST
05:00:40 02/18/09 AEDT

첫 번째 설정에서는 미국 동부 표준시(EST)가 적용되어 시간과 시간대 이름이 EST로 출력됩니다. 이후 두 번째 설정으로 TZ를 변경하고 tzset()을 다시 호출하면, 호주 동부 시간대(AEDT)가 반영되어 출력 결과가 달라지는 것을 확인할 수 있습니다. 이처럼 time.tzset()은 프로그램 실행 중에 시간대를 동적으로 전환해야 할 때 유용하게 활용됩니다.