我有一個字串格式的日期2021-12-14T12:05:51.8031499
我怎樣才能得到它的 Epoch 值?
uj5u.com熱心網友回復:
dateutil是你的朋友,還有 7 位小數秒:
from dateutil.parser import isoparse
isoparse("2021-12-14T12:05:51.8031499")
Out[2]: datetime.datetime(2021, 12, 14, 12, 5, 51, 803149)
isoparse("2021-12-14T12:05:51.8031499").timestamp()
Out[3]: 1639479951.803149
注意:給定的 ISO 格式日期/時間將導致一個樸素的日期時間物件,Python 會將其視為本地時間,即在計算 Unix 時間之前,它將從您機器的本地時間設定轉換為 UTC timestamp()!
uj5u.com熱心網友回復:
將日期字串決議為日期時間物件,然后使用utcfromtimestamp()函式從中回傳紀元時間。
請注意,示例時間中有一個額外的數字。Python datetime 中的預期微秒是 6 位而不是 7(例如 803149)。
from datetime import datetime, timezone
d = '2021-12-14T12:05:51.803149'
dt = datetime.strptime(d, '%Y-%m-%dT%H:%M:%S.%f')
print(dt)
# convert datetime to time-aware timezone at UTC
# so correct timestamp is returned
dt = dt.replace(tzinfo=timezone.utc)
# Return the time in seconds since the epoch
seconds_since_epoch = dt.timestamp()
print(seconds_since_epoch)
# convert epoch back to datetime object
d2 = datetime.utcfromtimestamp(seconds_since_epoch)
print(d2)
輸出:
2021-12-14 12:05:51.803149
1639483551.803149
2021-12-14 12:05:51.803149
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/382532.html
上一篇:回顧一系列日子時,GoogleSheets中的GoogleFinance功能不包括今天的價格?
下一篇:將浮點數轉換為日期時間格式
