我正在使用 python 3.7 并試圖找出正確的格式以使此代碼正常作業
dt = datetime.strptime("4 January 2022, 22:03 GMT-5", "%-d %b %Y, %H:%M %Zz")
上面的行總是失敗。我可以做些什么來決議它嗎?我假設它在“GMT-5 部分”上失敗了
編輯:添加背景關系,輸入字串是從網站上抓取的,所以我需要找到一種方法將其轉換為 python 日期時間物件,以便通過代碼了解事件發生的時間。我不太確定如何“在代碼中”更改輸入以匹配所需的 strptime 格式
uj5u.com熱心網友回復:
%z決議指令不會決議僅小時的 UTC 偏移量(docs : 需要 ±HHMM[SS[.ffffff]] 形式)。但是您可以從 timedelta 派生一個時區物件并將其設定為
from datetime import datetime, timedelta, timezone
s = "4 January 2022, 22:03 GMT-5"
parts = s.split('GMT')
dt = (datetime.strptime(parts[0].strip(), "%d %B %Y, %H:%M") # parse to datetime w/o offset
.replace(tzinfo=timezone(timedelta(hours=int(parts[1]))))) # add UTC offset
print(dt)
# 2022-01-04 22:03:00-05:00
uj5u.com熱心網友回復:
您使用了錯誤的月份格式和 UTC 偏移量的無效文本(它必須是四位數,如檔案中所述):
>>> datetime.datetime.strptime("4 January 2022, 22:03 GMT-0500", "%d %B %Y, %H:%M %Z%z")
datetime.datetime(2022, 1, 4, 22, 3, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400), 'GMT'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/407371.html
標籤:
上一篇:決議可選和非可選引數
