将 2021-01-18T11:18:10.833876+00:00 转换为日期时间 python

时间:2021-01-18 11:25:03

标签: python date datetime datetime-format python-datetime

我正在尝试将以下字符串转换为 python 中的日期时间。参考 datetime.strptime(‘2017-01-12T14:12:06.000-0500’,'%Y-%m-%dT%H:%M:%S.%f%Z') 后,我正在尝试下面提到的格式。

config_current_ts = datetime.strptime(internal_config["timestamp_str"], "%Y:%m:%dT%H:%M:%S.%f%z")

但是我收到一个错误说明:

<块引用>

ValueError: 时间数据 '2021-01-18T11:18:10.833876+00:00' 没有 匹配格式 '%Y:%m:%dT%H:%M:%S.%f%z'

我使用的是 python3.7.4。有人可以告诉我如何将其转换为日期时间吗?我想基本上比较字符串和当前时间,看看哪个在前面。

2 个答案:

答案 0 :(得分:1)

使用 fromisoformat - 因为您拥有 ISO 8601 格式,所以它是合适的,并且作为好处也是 more efficient。例如:

from datetime import datetime
s = '2021-01-18T11:18:10.833876+00:00'
dt = datetime.fromisoformat(s)

print(dt)
# 2021-01-18 11:18:10.833876+00:00
print(repr(dt))
# datetime.datetime(2021, 1, 18, 11, 18, 10, 833876, tzinfo=datetime.timezone.utc)

答案 1 :(得分:0)

格式字符串应该是 '%Y-%m-%dT%H:%M:%S.%f%z'

>>> from datetime import datetime
>>> d = '2021-01-18T11:18:10.833876+00:00'
>>> datetime.strptime(d, '%Y-%m-%dT%H:%M:%S.%f%z')
datetime.datetime(2021, 1, 18, 11, 18, 10, 833876, tzinfo=datetime.timezone.utc)