如何使用 strptime 解析 str(my_datetime)?
How to parse str(my_datetime) using strptime?
这是日期时间的default string representation:
>>> 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
to parse datetime.isoformat
output. Contributed by Paul Ganssle in issue15873.
这是日期时间的default string representation:
>>> 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
to parse datetime.isoformat
output. Contributed by Paul Ganssle in issue15873.