为什么Python3会发现这个ISO8601日期;2019-04-05T16:55:26Z“;无效的

为什么Python3会发现这个ISO8601日期;2019-04-05T16:55:26Z“;无效的,python,python-3.x,python-3.7,iso8601,Python,Python 3.x,Python 3.7,Iso8601,我将“2019-04-05T16:55:26Z”提供给Python3的datetime.datetime.fromisoformat并获取无效的isoformat字符串,尽管同一字符串在没有Z的情况下工作。ISO8601允许Z- $python3 Python 3.7.2(默认值,2019年2月12日,08:15:36) >>>datetime.fromisoformat(“2019-04-05T16:55:26Z”) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 ValueError:

我将
“2019-04-05T16:55:26Z”
提供给Python3的
datetime.datetime.fromisoformat
并获取
无效的isoformat字符串
,尽管同一字符串在没有Z的情况下工作。ISO8601允许Z-

$python3
Python 3.7.2(默认值,2019年2月12日,08:15:36)
>>>datetime.fromisoformat(“2019-04-05T16:55:26Z”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:无效的异构格式字符串:“2019-04-05T16:55:26Z”
>>>日期时间。从isoformat(“2019-04-05T16:55:26”)
日期时间。日期时间(2019、4、5、16、55、26)
我刚检查过,它不打算解析任意ISO8601格式字符串:

注意:这不支持解析任意ISO 8601字符串-它仅用于
datetime.isoformat()
的反向操作


这很简单。去掉最后一个字母Z

>>> from datetime import datetime; datetime.fromisoformat("2019-04-05T16:55:26")
datetime.datetime(2019, 4, 5, 16, 55, 26)

可能的副本清楚地说明了支持的内容。是的,它们确实支持,但由于它们不适用于实际的ISO格式,因此名称可能会产生误导!好的,那么什么才是解析这个字符串的合适函数呢?@BarnabasSzabolcs,我的观点是准确的-我在上面回答jonrsharpe时说“这个名称是误导性的,因为它们与实际的ISO格式不兼容”
>>> from datetime import datetime; datetime.fromisoformat("2019-04-05T16:55:26")
datetime.datetime(2019, 4, 5, 16, 55, 26)