ホームページ >バックエンド開発 >Python チュートリアル >pytz が最初に予期しないタイム ゾーン オフセットを表示するのはなぜですか?
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 サイトの他の関連記事を参照してください。