Como converter a string .isoformat () do Python novamente em objeto datetime [duplicado]

Esta pergunta já tem uma resposta aqui:

Convert timestamps com deslocamento para obj datetime usando strptime 4 respostasComo analiso uma data no formato ISO 8601? 24 respostas

Então, no Python 3, você pode gerar uma data ISO 8601 com .isoformat (), mas não pode converter uma string criada por isoformat () em um objeto de data e hora porque as próprias diretivas de data e hora do Python não correspondem corretamente. Ou seja,% z = 0500 em vez de 05:00 (produzido por .isoformat ()).

Por exemplo

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

Da documentação do strptime do Python: https: //docs.python.org/2/library/datetime.html#strftime-strptime-behavio)

% z Deslocamento UTC no formato + HHMM ou -HHMM (string vazia se o objeto for ingênuo). (vazio), +0000, -0400, + 1030

ntão, em resumo, o Python nem adere às suas próprias diretivas de formatação de strin

ei que o datetime já é terrível em Python, mas isso realmente vai além da irracionalidade na terra da pura estupide

Diga-me que isso não é verdad

questionAnswers(2)

yourAnswerToTheQuestion