1

指定された時間を香港のタイムゾーンからオーストラリアのタイムゾーンに変換したいのですが、今日だけでなく、歴史的な日についても変換したいと考えています。オーストラリアでは、今年の 4 月 2 日に DST が適用されます。DST が適用される前後の日付で次の計算を行うと、1 時間の差が生じるはずです。しかし、これら 2 つのケースでは、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 時間であり、4 月 2 日以降は差が 2 時間になります。

何か不足していますか?DST がオンのときと DST がオフのときに正しい時間オフセットを取得する正しい方法は何ですか?

よろしく、アロク

4

0 に答える 0