Как получить смещение часового пояса для данного дня? - PullRequest
1 голос
/ 29 марта 2012

Я хочу перевести данное время из часового пояса Гонконга в часовой пояс Австралии, но для любого исторического дня (не только сегодня).В Австралии DST применяется 2 апреля этого года.Когда я делаю следующие вычисления в даты после и до применения DST, разница должна составлять 1 час.Но я не вижу никакой разницы в смещениях DST в этих двух случаях.

>>> import pytz
>>> import datetime as dt

>>> autz=pytz.timezone("Australia/Sydney")
>>> hktz=pytz.timezone("Asia/Hong_Kong")

>>> x1=dt.datetime(2012,1,1,0,0,0,tzinfo=autz)
>>> x2=dt.datetime(2012,5,5,0,0,0,tzinfo=autz)

>>> hk1=x1.astimezone(hktz)
>>> hk2=x2.astimezone(hktz)

>>> x1
datetime.datetime(2012, 1, 1, 0, 0, tzinfo=<DstTzInfo 'Australia/Sydney' EST+10:00:00 STD>)
>>> hk1
datetime.datetime(2011, 12, 31, 22, 0, tzinfo=<DstTzInfo 'Asia/Hong_Kong' HKT+8:00:00 STD>)
>>> x2
datetime.datetime(2012, 5, 5, 0, 0, tzinfo=<DstTzInfo 'Australia/Sydney' EST+10:00:00 STD>)
>>> hk2
datetime.datetime(2012, 5, 4, 22, 0, tzinfo=<DstTzInfo 'Asia/Hong_Kong' HKT+8:00:00 STD>)
>>> autz=pytz.timezone("Australia/Sydney")

Если сравнить x1 с hk1 и x2 с hk2, то в обоих случаях разница между временем составляет 2 часа.Но сейчас, согласно DST, разница между AU и HK составляет 3 часа, а после 2 апреля разница будет 2 часа.

Я что-то упустил?Какой правильный способ получить правильные смещения времени во время DST включен и когда DST выключен.

С уважением, Alok

...