这是日期时间的默认字符串表示形式:
>>> from datetime import datetime, timezone
>>> dt = datetime(2017, 1, 1, tzinfo=timezone.utc)
>>> print(dt)
2017-01-01 00:00:00+00:00
使用datetime.strptime
解析它的正确格式字符串是什么? 也就是说,什么格式代替了"???"以始终具有以下不变量:
>>> dt == datetime.strptime(str(dt), "???")
True
请注意,str(d)
被记录为等效于d.isoformat(' ')
。这从%Y-%m-%d %H:%M:%S
(2017-01-01 00:00:00
) 开始,但随后:
- 没有,要么
.%f
,这取决于微秒部分是否为非零。
要么 - 什么都没有,要么像
+HH:MM
一样有偏移量,这取决于实例是否能够识别时区。
datetime.strptime
不支持可选部件,因此没有一个format
参数可以匹配所有可能的输出。
在 Python 3.7+ 中,您可以使用datetime.fromisoformat
来解析datetime.isoformat
输出。由Paul Ganssle在问题15873中提供。