我正在嘗試做這樣的事情:
time_str = "20:52:30.0000000 02:00"
time = datetime.strptime(time_str, "%H:%M:%S.%f%z")
但我收到以下錯誤ValueError: time data '20:52:30.0000000 02:00' does not match format '%H:%M:%S.%f%z'。很明顯,我的格式字串是錯誤的,但是我在嘗試找到正確的執行緒時經歷了許多 stackoverflow 執行緒,但無濟于事。
當前的輸入字串格式甚至可以直接轉換嗎?
提前致謝
編輯: 正如評論中提到的那樣,時區應寫為 0200 而不是 02:00。但是,如果我相應地更改我的代碼,我仍然會得到同樣的錯誤:
time_str = "20:52:30.0000000 0200"
time = datetime.strptime(time_str, "%H:%M:%S.%f%z")
ValueError: time data '20:52:30.0000000 0200' does not match format '%H:%M:%S.%f%z'
您可以在這里在線解釋器中嘗試https://www.online-python.com/NXw90TtQJ8
uj5u.com熱心網友回復:
%f 處理范圍內的值:000000 - 999999 ( https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior )
從輸入字串中洗掉一個零,您的代碼應該可以作業
from datetime import datetime
time_str = "20:52:30.000000 0200"
time = datetime.strptime(time_str, "%H:%M:%S.%f%z")
另一種方法是將 %w 添加到 strptime:
from datetime import datetime
time_str = "20:52:30.0000000 0200"
time = datetime.strptime(time_str, "%H:%M:%S.%w%f%z")
但是,使用 %-variables 會更改使用 strptime 函式創建的物件時間的欄位。
在這種情況下,“20:52:30.0[ 000000 ] 0200”中的最后六個數字將用于設定微秒欄位,您可能不會使用該欄位。
不過,請向您獲取資料的人請教您對資料格式的解釋。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/521378.html
標籤:Python约会时间
