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



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

>>> 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中提供。

相关内容

  • 没有找到相关文章

最新更新