python中的strTime错误“不匹配”

j13ufse2  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(357)

从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'
bttbmeg0

bttbmeg01#

我复制了你的代码,它工作正常,我不明白那个错误。

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-和strtime行为

相关问题