我已经阅读了很多关于在Python中解析ISO8601的问题,但其中大多数使用了外部依赖关系。 然后我碰到了这个问题,
How to parse an ISO 8601-formatted date?
它说明python不支持iso8601格式,但是答案已经3岁了。
我需要在不使用任何外部依赖项的情况下解析该日期,
from datetime import datetime
app_login = "1996-12-19T16:39:57+08:00"
parse_app_login = datetime.strptime(x,"%Y-%m-%dT%H:%M:%S%z")
print(parse_app_login)
我收到错误消息:
ValueError: time data '1996-12-19T16:39:57+08:00' does not match format '%Y-%m-%dT%H:%M:%S%z'
我想知道为什么python不支持iso8601格式吗?
答案 0 :(得分:0)
请注意,Python 3.7
支持ISO8601
UTC偏移量格式,
版本3.7中的更改:将%z指令提供给 strptime()方法,UTC偏移量可以使用冒号作为分隔符 在几小时,几分钟和几秒钟之间。例如,“ + 01:00:00”将是 解析为一个小时的偏移量。另外,提供“ Z”是 等同于“ +00:00”。
使用Python 3.7.0(v3.7.0:1bf9cc5093,Jun 27 2018,04:06:47),
>>> from datetime import datetime
>>> x = "2018-10-18T16:39:57+08:00"
>>> y = datetime.strptime(x,"%Y-%m-%dT%H:%M:%S%z")
>>> print(y)
输出
2018-10-18 16:39:57+08:00