亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

datetime.strptime 奇怪的行為

datetime.strptime 奇怪的行為

胡說叔叔 2022-05-11 16:34:07
我在運行 python 3.6.8 的 aws 虛擬機上遇到以下錯誤,而在我的筆記本電腦上它與 python 3.6.1 一起工作正常   return datetime.strptime(date_str, self.date_format)  File "/usr/lib64/python3.6/_strptime.py", line 565, in _strptime_datetime    tt, fraction = _strptime(data_string, format)  File "/usr/lib64/python3.6/_strptime.py", line 362, in _strptime    (data_string, format))ValueError: time data 'Fri, 23 Aug 2019 20:24:46 IDT' does not match format '%a, %d %b %Y %H:%M:%S %Z'我使用的格式有什么問題?
查看完整描述

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 遠程計算機則不是這種情況。


查看完整回答
反對 回復 2022-05-11
?
慕容森

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


查看完整回答
反對 回復 2022-05-11
  • 2 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號