使用strftime 將Python 日期時間轉換為紀元
最初的目的是將UTC 時間轉換為自紀元以來的秒數,使用時間。但是,在使用帶有“%s”格式的 strftime 時,結果值與預期紀元計數相差一個小時。調查此差異後發現,strftime 合併了系統時間並根據時區差異進行調整,儘管 datetime 被認為是幼稚的。
解
要解決此問題,請考慮以下替代方案:
Python 3.3 及更高版本
利用日期時間的timestamp() 方法:
>>> datetime.datetime(2012, 4, 1, 0, 0).timestamp() 1333234800.0
Python 3.2及更早版本
明確計算給定日期時間和紀元日期時間之間的差異:
>>> (datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds() 1333238400.0
警告:避免使用strftime('%s')
要注意的是,datetime 並沒有正式支援 strftime 的 '%s' 格式說明符。它目前的功能是由於與系統的 strftime 實現的交互,該實現根據時區差異進行調整。由於潛在的時區變化,使用 strftime('%s') 可能會導致結果不一致。
以上是如何在不使用 strftime(\'%s\') 的情況下準確地將 Python 日期時間物件轉換為紀元時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!