我需要獲取 GMT 時間戳,一天開始時的時間戳,一天結束時的時間戳,以下示例適用于今天(2022-03-29):
Start of Day (Unix Timestamp): 1648512000
End of Day (Unix Timestamp): 1648598399
您可以在https://www.epochconvert.com/中查看
我的代碼僅用于一天開始的情況下是下一個:
from datetime import datetime
start_date = datetime.today().strftime('%Y-%m-%d')
start_date = ' 00:00:00'
print(start_date)
timestamp = time.mktime(datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S").timetuple())
print(timestamp)
和我的輸出:
2022-03-29 00:00:00
1648533600.0
如您所見,這不是我正在等待的答案,該時間戳適用于我的當地時間,但我需要 GMT 時間戳作為答案(在這種情況下為 1648512000)
我該怎么做?提前致謝!!
uj5u.com熱心網友回復:
如果您想從 datetime 物件派生Unix 時間,請確保設定時區/知道datetime:
from datetime import datetime, timezone
now = datetime.now(timezone.utc)
print(now)
# 2022-03-29 23:34:51.701712 00:00
now_floored = datetime.combine(now.date(), now.time().min).replace(tzinfo=timezone.utc)
print(now_floored)
# 2022-03-29 00:00:00 00:00
now_floored_unix = now_floored.timestamp()
print(now_floored_unix)
# 1648512000.0
如果你不這樣做(有天真的日期時間),Python 將使用本地時間:
now = datetime.now()
now_floored = datetime.combine(now.date(), now.time().min)
print(now_floored.astimezone())
# 2022-03-29 00:00:00-06:00 # <- my current UTC offset is -6 hours
print(now_floored.timestamp(), (now_floored_unix-now_floored.timestamp())//3600)
# 1648533600.0 -6.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/452704.html
下一篇:為什么`DateTime.add(constDuration(days:1)`添加*Seconds*而不是Days?
