如何使用strptime解析str(my_datetime)?

wim*_*wim 5 python timezone datetime strptime

这是日期时间的默认字符串表示形式

>>> from datetime import datetime, timezone
>>> dt = datetime(2017, 1, 1, tzinfo=timezone.utc)
>>> print(dt)
2017-01-01 00:00:00+00:00
Run Code Online (Sandbox Code Playgroud)

用它解析的正确格式字符串是datetime.strptime什么?也就是说,用什么代替“ ???” 查看以下结果:

>>> from dateutil.parser import parse
>>> parse(date_str) == datetime.strptime('???', date_str)
True
Run Code Online (Sandbox Code Playgroud)

jon*_*rpe 4

请注意,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 期中贡献。