Cómo convertir la cadena .isoformat () de Python nuevamente en un objeto datetime [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Convertir marcas de tiempo con desplazamiento a obj de fecha y hora usando strptime 4 respuestas¿Cómo analizo una fecha con formato ISO 8601? 24 respuestas

Así que en Python 3, puede generar una fecha ISO 8601 con .isoformat (), pero no puede convertir una cadena creada por isoformat () en un objeto datetime porque las directivas de fecha y hora de Python no coinciden correctamente. Es decir,% z = 0500 en lugar de 05:00 (que es producido por .isoformat ()).

Por ejemplo

>>> 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'

De la documentación de strptime de Python: https: //docs.python.org/2/library/datetime.html#strftime-strptime-behavio)

% z UTC offset en la forma + HHMM o -HHMM (cadena vacía si el objeto es ingenuo). (vacío), +0000, -0400, + 1030

n resumen, Python ni siquiera se adhiere a sus propias directivas de formato de cadenas.

Sé que la fecha y hora ya es terrible en Python, pero esto realmente va más allá de lo irrazonable en la tierra de la estupidez simple.

Dime que esto no es cierto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta