ホームページ >バックエンド開発 >Python チュートリアル >pytz で予期しないタイム ゾーン オフセットが表示されるのはなぜですか? それらを正しく処理するにはどうすればよいですか?
pytz とのタイムゾーンの不一致
pytz ライブラリを使用すると、7 時間と 37 時間など、一見奇妙なタイムゾーン オフセットが発生する場合があります。 「Asia/Hong_Kong」の分オフセット。この不一致は、時間の経過に伴うタイム ゾーンとそのオフセットの動的な性質から生じます。
タイムゾーン オブジェクトの作成時に pytz によって提供されるデフォルトのゾーン名とオフセットは、そのゾーンで利用可能な最も古い情報を表します。これらの値は異常に見える場合があります。この問題に対処するには、localize メソッドを使用してゾーンを特定の日付に関連付けます。これにより、適切なゾーン名とオフセットが確実に使用されます。
例として、次のコードを考えてみましょう。
import pytz from datetime import datetime hk = pytz.timezone('Asia/Hong_Kong') dt1 = datetime(2012,1,1,tzinfo=hk) dt2 = hk.localize(datetime(2012,1,1)) if dt1 > dt2: print "Why?"
この場合、「dt1」と「dt2」の比較前述のオフセットの不一致により、予期しない結果が生じる可能性があります。正しい比較を行うには、必要な調整が実行されない可能性がある datetime コンストラクターを利用するのではなく、常に localize メソッドを使用してタイムゾーンを日付に付加する必要があります。
以上がpytz で予期しないタイム ゾーン オフセットが表示されるのはなぜですか? それらを正しく処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。