如何在不使用 strftime(\'%s\') 的情況下準確地將 Python 日期時間物件轉換為紀元時間?

DDD
發布: 2024-11-20 04:53:01
原創
288 人瀏覽過

How to Accurately Convert a Python datetime Object to Epoch Time Without Using strftime('%s')?

使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板