如何使用strptime解析str(my_datetime)?(How to parse str(my_datetime) using strptime ?)
这是日期时间的默认字符串表示形式 :
>>> 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解析它的正确格式字符串是什么? 也就是说,代替'???'的是什么 看到以下结果:
>>> from dateutil.parser import parse >>> parse(date_str) == datetime.strptime('???', date_str) TrueThis is the default string representation of a datetime:
>>> from datetime import datetime, timezone >>> dt = datetime(2017, 1, 1, tzinfo=timezone.utc) >>> print(dt) 2017-01-01 00:00:00+00:00What is the correct format string to parse that with datetime.strptime? That is, what goes in place of the '???' to see the following result:
>>> from dateutil.parser import parse >>> parse(date_str) == datetime.strptime('???', date_str) True最满意答案
请注意, str(d)被记录为等同于d.isoformat(' ') 。 这从%Y-%m-%d %H:%M:%S ( 2017-01-01 00:00:00 )开始,但随后:
要么没有,要么.%f为微秒; 和 要么没有任何内容,要么使用冒号进行偏移,这与%z不匹配。.strptime不支持可选部分,因此没有一个format参数可以匹配所有这些可能的输出,并且不支持偏移中的冒号,因此有些部分根本无法处理。
It is not possible using strptime, as has been explained here.
Upgrade to Python 3.7, and use the datetime.fromisoformat method.
Contributed by Paul Ganssle in issue15873.
更多推荐
发布评论