Python "does not match" 中的 strptime 错误




从Python转换日期格式时出错。

我的代码

pubDate = "Thu, 08 Jul 2021 17:34:00 +0900"
pubDate = datetime.datetime.strptime(pubDate, "%a, %d %b %Y %H:%M:%S +0900")

错误代码

File "/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_strptime.py", line 568, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/_strptime.py", line 349, in _strptime
raise ValueError("time data %r does not match format %r" %
ValueError: time data 'Thu, 08 Jul 2021 18:06:00 +0900' does not match format '%a, %d %b %Y %H:%M:%S +0900'

我复制了你的代码,它运行良好,我没有收到那个错误。

pubDate = "Thu, 08 Jul 2021 17:34:36 +0900"
pubDate = datetime.strptime(pubDate, "%a, %d %b %Y %H:%M:%S +0900")
pubDate
Out[6]: datetime.datetime(2021, 7, 8, 17, 34, 36)

我删除了一个datetime,因为我是如何导入的,但这取决于您。错误可能是因为%a取决于区域:

"因为格式取决于当前的区域设置,所以在对输出值进行假设时应该小心。字段顺序会有所不同(例如,"月/日/年"与"日/月/年"(,并且输出可能包含使用区域设置的默认编码编码的Unicode字符(例如,如果当前区域设置为ja_JP,则默认编码可以是eucJP、SJIS或utf-8中的任何一个;使用locale.getlocale((确定当前区域设置的编码(">

我建议检查您的地区,看看日期名称格式是正确的还是不同的。

更多信息:

https://docs.python.org/3/library/datetime.html#strftime-和结构时间行为

相关内容

  • 没有找到相关文章

最新更新