我有一些以unix時間存盤的時間戳,我需要提取當時倫敦的日期。我的問題是 Python 的 datetime.date() 函式似乎只是報告日期組件而沒有考慮時區組件。例如,以下代碼在 unix 時間 1565475300 處獲取日期。這是 UTC 時間的 2315,但實際上是時區中人們時鐘的第二天 0015 - 所以在這個實體中回傳的日期對于我的用例應該是 2019-08-11。任何建議如何做到這一點?我進行了很多搜索,但他們大多找到了相反問題的答案(如何從人類可讀的日期獲取 unix 時間)。
from datetime import datetime
from dateutil.tz import gettz
tzLondon = gettz("Europe/London")
unixTime = 1565475300
pythonTime = datetime.fromtimestamp(unixTime, tz=tzLondon)
print(pythonTime.strftime('%Y-%m-%d %H:%M:%S %z'))
print(pythonTime.strftime('%Y-%m-%d %H:%M:%S'))
print(pythonTime.date())
>>> 2019-08-10 23:15:00 0100
>>> 2019-08-10 23:15:00
>>> 2019-08-10
uj5u.com熱心網友回復:
1565475300 這是 2019 年 8 月 10 日 22:15:00 UTC
datetime.fromtimestamp(1565475300, tz=timezone.utc)
datetime.datetime(2019, 8, 10, 22, 15, tzinfo=datetime.timezone.utc)
所以在倫敦時區是 23:15
uj5u.com熱心網友回復:
>>> pythonTime.strftime('%Y-%m-%d %H:%M:%S %z')
'2019-08-10 23:15:00 0100'
將 UTC 偏移量添加到 datetime 物件,然后轉換為字串。
>>> (pythonTime pythonTime.utcoffset()).strftime('%Y-%m-%d %H:%M:%S')
'2019-08-11 00:15:00'
>>>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/412812.html
標籤:
上一篇:在SQLServer2019中將dd/mm/yyyyhh:mm:ssam/pm轉換為yyyy/mm/ddhh:mm:ss
下一篇:檢查日期時間是否在小時范圍內
