This is the default string representation of a datetime:
>>> from datetime import datetime, timezone
>>> dt = datetime(2017, 1, 1, tzinfo=ti
Note that str(d)
is documented as being equivalent to d.isoformat(' '). This starts with %Y-%m-%d %H:%M:%S
(2017-01-01 00:00:00
), but then:
.%f
for microseconds; and%z
..strptime
doesn't have support for optional parts, therefore there isn't a single format
parameter that can match all of these possible outputs, and doesn't support the colon in the offset, so some can't be handled at all.
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.