Итак, в Python 3 вы можете создать дату ISO 8601 с .isoformat(), но вы не можете преобразовать строку, созданную isoformat(), обратно в объект datetime, потому что собственные директивы datetime для pythons не соответствуют должным образом. т.е.:% z = 0500 вместо 05:00 (которое производится с помощью .isoformat()). Например:
>>> strDate = d.isoformat()
>>> strDate
'2015-02-04T20:55:08.914461+00:00'
>>> objDate = datetime.strptime(strDate,"%Y-%m-%dT%H:%M:%S.%f%z")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python34\Lib\_strptime.py", line 500, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "C:\Python34\Lib\_strptime.py", line 337, in _strptime
(data_string, format))
ValueError: time data '2015-02-04T20:55:08.914461+00:00' does not match format '%Y-%m-%dT%H:%M:%S.%f%z'
Из документации Python strptime: (https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior)
% z UTC offset в форме + HHMM или -HHMM (пустая строка, если объект наивен). (пустой), +0000, -0400, +1030
Итак, короче говоря, Python даже не придерживается собственных директив строкового форматирования.
Я знаю, что datetime уже ужасно в питоне, но это действительно выходит за рамки необоснованного в землю простой глупости.
Скажи мне, что это неправда.