2 回答

TA貢獻1816條經驗 獲得超6個贊
請參閱官方 Python 錯誤跟蹤器上的討論。顯然%Z
只支持UTC
,GMT
和本地時區(由 返回time.tzname
)。
這是一個有趣的案例,官方 Python 文檔具有誤導性(說得好聽):
%Z 時區名稱(如果對象是幼稚的,則為空字符串)。(空)、UTC、EST、CST
這是錯誤的。只有當它們是操作系統的本地時區時%Z
才會識別EST
,CST
等。
編輯好吧,文檔中頁面底部附近有一條注釋說
%Z
如果tzname(
) 返回None
,%Z
則替換為空字符串。否則%Z
被返回的值替換,它必須是一個字符串。
不過,還沒有想象的那么清楚。
說清楚:
它可以在您的本地計算機上運行,因為它使用 IDT 作為其本地時區,而 AWS 遠程計算機則不是這種情況。

TA貢獻1853條經驗 獲得超18個贊
datetime.datetime.strptime("IDT", "%Z")
產生錯誤
ValueError: time data 'IDT' does not match format '%Z'
因為 %Z 不支持 IDT(以色列夏令時)。
解決方案取決于您接下來要處理的數據。如果您使用pytz并忽略要從中剝離時間的日期字符串的“IDT”部分,那么您可以在記錄時區時存儲。
dt = datetime.datetime.strptime("Fri, 23 Aug 2019 20:24:46", "%a, %d %b %Y %H:%M:%S")
print(dt)
2019-08-23 20:24:46
然而
import pytz
idt = pytz.timezone('Israel')
dt_idt = dt.astimezone(idt)
print(dt_idt)
2019-08-23 22:24:46+03:00
添加回答
舉報