Usando strptime para obter o deslocamento UTC com separação entre horas e minutos

Eu tenho uma string como esta 2018-04-03 02:59:59+00:00 e eu preciso usar strptime para convertê-lo em datetime.

No entanto, olhando para os documentos , a diretiva %z (deslocamento UTC) é +HHMM , mas eu preciso de +HH:MM . Como posso conseguir isso?

Atualmente, não é possível usar datetime.strptime , devido ao caractere de dois pontos no deslocamento. Então, esqueça o strptime e escolha uma das opções abaixo:

  • Pré-processe a cadeia para remover o cólon do deslocamento
  • Use um dateutil.parser vez de strptime
  • Atualize para o Python 3.7

Em relação à última opção: há um novo recurso fornecido em 3.7, adicionado especificamente para resolver o problema que você está vendo . É um novo método datetime, que pode analisar corretamente sua string:

 # Python 3.7.0b1 >>> from datetime import datetime >>> datetime.fromisoformat('2018-04-03 02:59:59+00:00') datetime.datetime(2018, 4, 3, 2, 59, 59, tzinfo=datetime.timezone.utc)