值错误:时间数据"2020-04-23T13:03:49.911533+00:00"与格式"%Y-%m-%dT%H:%M:%S.%f%z"不匹配



我正在尝试修复我构建的一些脚本不断出现的错误。我基本上要做的是从Postgres数据库中检索一些数据,该数据库包含一个时间戳字段。

当我处理这些数据时,有时会出现以下错误:

ValueError: time data '2020-04-23T13:03:49.911533+00:00' does not match format '%Y-%m-%dT%H:%M:%S.%f%z'

发生的代码:

last_seen_at_date = datetime.strptime(dict['last_seen_at'],'%Y-%m-%dT%H:%M:%S.%f%z').date()

我不明白的是这怎么会发生。当我复制粘贴这个字符串并将其用作变量,然后将其转换为日期时,它非常有效。

编辑:意识到这在我的Mac上运行得很好,但在我的Ubuntu服务器上运行得不好。不知道如何解决这个问题

知道发生了什么事吗?

谢谢你,

'2020-04-23T13:03:49.911533+00:0'

这看起来确实像ISO 8601格式,所以它应该与datetime.datetime.fromisoformat一起使用。我确实使用Python 3.7.3测试了它,它似乎工作正常:

import datetime
dt_str ='2020-04-23T13:03:49.911533+00:00'
dt = datetime.datetime.fromisoformat(dt_str)
print(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second)

输出:

2020 4 23 13 3 49

你能在代码中测试它吗?

使用现有答案修复了该问题。这是我的服务器上运行的不同版本的Python的问题。

带冒号的时区偏移的Datetime strptime问题

相关内容

最新更新