Pytz 時區的日期時間異常
Pytz 是一個用於處理時區的流行Python 庫,有時會出現異常的偏移行為。值得注意的是,當請求「Asia/Hong_Kong」時區時,pytz 可能會傳回 7:37:00 的偏移量,這看起來不一致。
為了說明這一點,請考慮以下程式碼:
import pytz pytz.timezone('Asia/Hong_Kong')
輸出顯示時區資訊為:
<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD>
不一致,利用localize方法附加香港時區與日期時間實例會產生不同的結果:
hk = pytz.timezone('Asia/Hong_Kong') hk_dt = hk.localize(datetime(2012, 1, 1))
比較日期時間顯示:
dt1 = datetime(2012,1,1,tzinfo=hk) if dt1 > hk_dt: print "Why?"
意外的是,dt1被評估為大於hk_dt.
說明
此異常是由於時區變化和時間偏移造成的。 Pytz 為其建立的每個時區物件指派最舊的可用名稱和偏移量。但是,當使用 localize 方法將時區附加到日期時,它會包含與指定時間相對應的準確名稱和偏移量。
總之,簡單地使用 datetime 建構子將時區分配給日期會排除以下情況:它無法正確調整,導致觀察到的不一致。
以上是為什麼 Pytz 的'Asia/Hong_Kong”時區顯示不一致的偏移量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!