2017-09-05 6 views
-1

datetime.tzinfo 모듈을 사용하는 방법을 모른다. 나는 시간대 데이터를 UTC에서 현지 시간대로 변환해야하고 '+2'(gmt + 2를 의미)를 검색하는 경우 어떻게 이것을 tzinfo 객체로 변환해야합니까?Python에서 datetime.tzinfo를 사용하는 방법은 무엇입니까?

또한 일광 절약 시간이 자동으로 적용되는 UTC에서 현지 시간대로 변환 할 수 있습니까? 자동으로 1 시간을 빼기로 설정하는 방법 dst 동안 만?

답변

1

파이썬은 실제로 시간대를 제대로 구현하지 않습니다. documentation에 따르면, tzinfo는 사용자가 구현하기위한 추상 클래스입니다.

타사 pytz 모듈을 사용하여 시간대 처리를 권장합니다.

0

tzoffset을 사용하면 검색하는 표준 시간대 오프셋을 설정할 수 있습니다. 예를 들어, "2"를 얻을 해당 문자열을 너무 n = 2 그 구문 분석하는 경우 : 그것을

from dateutil.tz import tzoffset 

utc_dt = your_datetime.replace(tzinfo=tzoffset("UTC+0",0)) 
local_dt = utc_dt.astimezone(tzoffset("UTC+{}".format(n), n*60*60)) 

이 변수 utc_dt 원래 날짜가 속성으로 올바른 UTC 시간대이 있는지 확인하기 위해 단지 사용, 그렇지 않으면 작동하지 않습니다. 그런 다음 목표 로컬 시간에 대한 오프셋을 초 단위로 설정할 수 있습니다.

표준 시간대의 일부 국가에서 UTC/GMT 오프셋을 알고 있기 때문에 DST를 적용 할 수 있는지 확실하지 않습니다. "Europe/Vienna"와 같은 정확한 지역 정보를 가지고 있다면 pytz 라이브러리와 datetime.dst() 메서드를 사용하여 한 시간을 빼는 지 여부를 결정할 수 있습니다.

+0

고맙습니다. 시도해 볼게. –