IT Share you

Python의 시간대 이름에서 UTC 오프셋 가져 오기

shareyou 2020. 12. 3. 20:51
반응형

Python의 시간대 이름에서 UTC 오프셋 가져 오기


파이썬의 시간대 이름에서 UTC 오프셋을 어떻게 얻을 수 있습니까?

예를 들면 다음 Asia/Jerusalem같습니다.+0200


서머 타임 (DST) 때문에 결과는 연중 시간에 따라 다릅니다.

import datetime, pytz

datetime.datetime.now(pytz.timezone('Asia/Jerusalem')).strftime('%z')

# returns '+0300' (because 'now' they have DST)


pytz.timezone('Asia/Jerusalem').localize(datetime.datetime(2011,1,1)).strftime('%z')

# returns '+0200' (because in January they didn't have DST)

pytz 프로젝트와 utcoffset방법을 사용해 보셨습니까 ?

예 :

>>> import datetime
>>> import pytz
>>> pacific_now = datetime.datetime.now(pytz.timezone('US/Pacific'))
>>> pacific_now.utcoffset().total_seconds()/60/60
-7.0

파이썬 datetime 객체에서 UTC 타임 스탬프로 변환하는 동안 비슷한 문제에 직면했습니다. 내 날짜 시간은 시간대에 구애받지 astimezone않고 (매우 순진한) 작동하지 않습니다.

문제를 완화하기 위해 datetime 객체 시간대를 인식하고 위의 마법을 사용했습니다.

import pytz
system_tz = pytz.timezone(constants.TIME_ZONE)
localized_time = system_tz.localize(time_of_meeting)
fmt = "%Y%m%dT%H%M%S" + 'Z'
return localized_time.astimezone(pytz.utc).strftime(fmt)

여기에 constants.TIME_ZONE지속 된 객체의 기본 시간대가 있습니다.

이것이 파이썬 datetime 객체를 UTC로 변환하려는 누군가에게 도움이되기를 바랍니다. 일단 변환되면 원하는 방식으로 포맷하십시오.

참고 URL : https://stackoverflow.com/questions/5537876/get-utc-offset-from-time-zone-name-in-python

반응형