ホームページ >バックエンド開発 >Python チュートリアル >Pytz の「アジア/香港」タイムゾーンが一貫性のないオフセットを示すのはなぜですか?

Pytz の「アジア/香港」タイムゾーンが一貫性のないオフセットを示すのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-06 15:56:101052ブラウズ

Why Does Pytz's `Asia/Hong_Kong` Timezone Show Inconsistent Offsets?

Pytz タイムゾーンの日時の異常

タイムゾーンを処理するための一般的な Python ライブラリである Pytz は、異常なオフセット動作を示すことがあります。特に、「Asia/Hong_Kong」タイムゾーンをリクエストすると、pytz は 7:37:00 のオフセットを返す可能性があり、これは矛盾しているように見えます。

説明のために、次のコードを考えてみましょう。

import pytz
pytz.timezone('Asia/Hong_Kong')

出力にはタイムゾーン情報が次のように表示されます:

<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD>

一貫性がなく、香港のタイムゾーンを datetime インスタンスに付加する localize メソッドは、異なる結果をもたらします:

hk = pytz.timezone('Asia/Hong_Kong')
hk_dt = hk.localize(datetime(2012, 1, 1))

datetime を比較すると、次のことが明らかになります:

dt1 = datetime(2012,1,1,tzinfo=hk)
if dt1 > hk_dt:
    print "Why?"

予期せず、dt1 は次よりも大きいと評価されます。 hk_dt.

説明

この異常は、時間の経過に伴うタイム ゾーンとオフセットの変化によって発生します。 Pytz は、作成する各タイムゾーン オブジェクトに、使用可能な最も古い名前とオフセットを割り当てます。ただし、localize メソッドを使用してゾーンを日付に付加する場合、指定された時刻に対応する正確な名前とオフセットが組み込まれます。

結論として、単純に datetime コンストラクターを使用して日付にタイムゾーンを割り当てることはできません。正しく調整できず、不一致が観察されます。

以上がPytz の「アジア/香港」タイムゾーンが一貫性のないオフセットを示すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。