ホームページ >バックエンド開発 >Python チュートリアル >pytz が最初に予期しないタイム ゾーン オフセットを表示するのはなぜですか?

pytz が最初に予期しないタイム ゾーン オフセットを表示するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-15 15:21:18531ブラウズ

Why Does pytz Show Unexpected Time Zone Offsets Initially?

pytz とのタイムゾーンの不一致

特定のタイムゾーンは、pytz から最初に取得したときに特有のオフセットを示します。たとえば、Asia/Hong_Kong は最初は 7 時間 37 分のオフセットを示します:

<br>import pytz<br>pytz.timezone('Asia/Hong_Kong')<br><DstTzInfo 「アジア/香港」 LMT 7:37:00 STD><br>

不一致の原因

タイム ゾーンとオフセットは歴史を通じて変動します。 pytz によって提供されるデフォルトのタイム ゾーン名とオフセットは、そのゾーンで利用可能な最も古いタイム ゾーン名とオフセットを表しますが、これは異常に見える場合があります。

localize を使用してタイム ゾーンを日付に割り当てる場合、適切なタイム ゾーン名とオフセットは次のとおりです。使用済み。ただし、datetime コンストラクターを直接使用してタイム ゾーンを割り当てると、適切な調整ができません。

次のコードを考えてみましょう:

< ;pre>
import pytz
from datetime import datetime
hk = pytz.timezone('アジア/香港')

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

この例では、初期オフセットの不一致により、dt1 は dt2 より大きくなります。 localize を使用すると、dt2 は正確なオフセットを取得し、2 つの日付間の論理比較を行います。

以上がpytz が最初に予期しないタイム ゾーン オフセットを表示するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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