Python:时间数据与格式不匹配

Python: time data does not match format

提问人:shotikoj 提问时间:10/21/2021 最后编辑:FObersteinershotikoj 更新时间:10/22/2021 访问量:1324

问:

当我运行代码时,我收到以下错误:

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

python 日期时间 时间 格式 匹配

评论

2赞 neurino 10/21/2021
这在 python 3.8 中对我有用datetime.datetime.strptime('2021-10-26T10:15:00.000+04:00', '%Y-%m-%dT%H:%M:%S.%f%z')
1赞 tromgy 10/21/2021
@shotikoj,请发布您遇到问题的实际代码。
2赞 FObersteiner 10/21/2021
你能添加你的Python版本吗?

答:

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 只发布了一条评论,而另一个答案也没有包括完整的解决方案。也许你可以稍微扩展你的答案,包括所有相关信息,并添加一个有效的解决方案。这可能是一个很好的答案:-)