提问人:shotikoj 提问时间:10/21/2021 最后编辑:FObersteinershotikoj 更新时间:10/22/2021 访问量:1324
Python:时间数据与格式不匹配
Python: time data does not match format
问:
当我运行代码时,我收到以下错误:
ValueError:时间数据“2021-10-26T10:15:00.000+04:00”与格式“%Y-%m-%dT%H:%M:%S.%f%z”不匹配
格式似乎是正确的,有什么问题?有人有同样的问题吗?
我正在使用这种方法
# Convert 2019-09-03T12:31:03.806+0400 to 2019-09-13 16:30:12
def time_converter(time):
if time is None:
time = ''
else:
time_obj = datetime.strptime(time, '%Y-%m-%dT%H:%M:%S.%f%z')
time = time_obj.strftime('%Y-%m-%d %H:%M:%S')
return time
我只是以这种格式给它时间2021-10-26T10:15:00.000+04:00
答:
0赞
11_22_33
10/21/2021
#1
您的代码对我有用,没有错误,但是在您的 Python 版本中,您可能需要将时区的“:”替换为“”:
2021-10-26T10:15:00.000+04:00 2019-09-03T12:31:03.806+0400
评论
1赞
FObersteiner
10/21/2021
您可以添加选项如何替换最右边的,例如。:
'2021-10-26T10:15:00.000+04:00'[::-1].replace(':','',1)[::-1]
4赞
tromgy
10/21/2021
来自官方文档:“在 3.7 版更改: 当 %z 指令提供给 strptime() 方法时,UTC 偏移量可以有一个冒号作为小时、分钟和秒之间的分隔符。
0赞
shotikoj
10/22/2021
#2
问题出在 Python 版本上。运行代码的远程服务器有 Python 3.6。正如 tromgy 在这里评论的那样,在 3.7 中添加了 %z 指令
评论
0赞
wovano
10/22/2021
欢迎来到 Stack Overflow,shotioj。请阅读当有人回答我的问题时我该怎么办?。您不必仅仅为了确认另一个答案确实正确而发布答案。相反,接受对你最有帮助的答案(和/或点赞)。
0赞
wovano
10/22/2021
仔细想想,这可能是一个极端情况,因为 tromgy 只发布了一条评论,而另一个答案也没有包括完整的解决方案。也许你可以稍微扩展你的答案,包括所有相关信息,并添加一个有效的解决方案。这可能是一个很好的答案:-)
评论
datetime.datetime.strptime('2021-10-26T10:15:00.000+04:00', '%Y-%m-%dT%H:%M:%S.%f%z')