运行Python 3.8.10,今天遇到这个:
from datetime import datetime, time
time.fromisoformat(datetime.now().isoformat())
结果:
Traceback(最近一次调用):ValueError: Invalid isoformat string: '2021-09-02T17:16:49.330690'
为什么是由datetime创建的isoformat字符串。Datetime模块被认为无效。时间模块?
您使用的是time.fromisoformat
,它只处理时间字符串。要解析完整的日期时间,使用datetime.fromisoformat
:
>>> from datetime import datetime, time
# Bad
>>> time.fromisoformat(datetime.now().isoformat())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Invalid isoformat string: '2021-09-02T17:31:25.857666'
# Good
>>> datetime.fromisoformat(datetime.now().isoformat())
datetime.datetime(2021, 9, 2, 17, 31, 43, 685120)
因为datetime.now
给你一个日期和一个时间,而time.fromisoformat
只需要一个时间字符串。
来自time.fromisoformat
文档:
不支持解析任意ISO 8601字符串。它只是作为
time.isoformat()
的逆操作。
再试一次
datetime.now().time()
代替。