與 pytz 的時區差異
某些時區在最初從 pytz 獲取時表現出特殊的偏移。例如,Asia/Hong_Kong 最初顯示7 小時37 分鐘的偏移:
<br>import pytz<br>pytz.timezone('Asia/Hong_Kong')<br><dsttzinfo std><br></dsttzinfo>
差異來源
時區和偏移量在整個歷史中波動。 pytz 提供的預設時區名稱和偏移量代表該區域最早可用的時區名稱和偏移量,這可能看起來不尋常。
使用 localize 將時區分配給日期時,對應的時區名稱和偏移量為用過的。但是,直接使用 datetime 建構函式來指派時區並不允許進行適當的調整。
範例
考慮以下程式碼:
< ;pre>
匯入pytz
從日期時間匯入日期時間
hk = pytz.timezone('亞洲/香港')
dt1 = datetime(2012,1,1,tzinfo=hk)
dt2 = hk.localize(datetime(2012,1,1))
如果dt1 > dt2:
print "Why?"
在此範例中,由於初始偏移量差異,dt1 將大於dt2。透過使用 localize,dt2 獲得準確的偏移量,從而對兩個日期進行邏輯比較。
以上是為什麼 pytz 最初顯示意外的時區偏移?的詳細內容。更多資訊請關注PHP中文網其他相關文章!