복붙노트

[PYTHON] Python datetime 객체가 잘못된 시간대 오프셋을 표시합니다.

PYTHON

Python datetime 객체가 잘못된 시간대 오프셋을 표시합니다.

python에서 datetime 및 pytz를 사용하여 datetime 객체를 만들려고 시도했지만 오프셋이 잘못 표시되었습니다.

import datetime
from pytz import timezone

start = datetime.datetime(2011, 6, 20, 0, 0, 0, 0, timezone('Asia/Kolkata'))
print start

표시된 출력은 다음과 같습니다.

datetime.datetime(2011, 6, 20, 0, 0, tzinfo=<DstTzInfo 'Asia/Kolkata' HMT+5:53:00 STD>)

'Asia / Kolkata'는 IST이며 GMT + 5 : 30이지 HMT + 5 : 53이 아닙니다. 이것은 표준 리눅스 시간대입니다. 왜이 문제가 발생합니까? 어떻게 해결합니까?

해결법

  1. ==============================

    1.참조 : http://bytes.com/topic/python/answers/676275-pytz-giving-incorrect-offset-timezone

    참조 : http://bytes.com/topic/python/answers/676275-pytz-giving-incorrect-offset-timezone

    주석에서 누군가는 트릭을 수행하는 datetime 생성자 대신 tzinfo.localize ()를 사용할 것을 제안합니다.

    >>> tz = timezone('Asia/Kolkata')
    >>> dt = tz.localize(datetime.datetime(2011, 6, 20, 0, 0, 0, 0))
    >>> dt
    datetime.datetime(2011, 6, 20, 0, 0, tzinfo=<DstTzInfo 'Asia/Kolkata' IST+5:30:00 STD>)
    

    업데이트 : 사실, 공식 pytz 웹 사이트는 항상 datetime.datetime에 timezone 객체를 전달하는 대신 localize 또는 astimezone을 사용해야한다고 말합니다.

  2. from https://stackoverflow.com/questions/6410971/python-datetime-object-show-wrong-timezone-offset by cc-by-sa and MIT license