Saltar al contenido

Convertir fecha JSON string a Python datetime

Después de consultar especialistas en esta materia, programadores de varias ramas y maestros hemos dado con la solución al dilema y la compartimos en esta publicación.

Solución:

Pruebe el siguiente formato:

%Y-%m-%dT%H:%M:%S.%fZ

Por ejemplo:

>>> datetime.datetime.strptime('2012-05-29T19:30:03.283Z', '%Y-%m-%dT%H:%M:%S.%fZ')
datetime.datetime(2012, 5, 29, 19, 30, 3, 283000)

El Z en la fecha solo significa que debe interpretarse como una hora UTC, por lo que ignorarlo no causará ninguna pérdida de información. Puede encontrar esta información aquí: http://www.w3.org/TR/NOTE-datetime

Para proporcionar una alternativa, si no le importa instalar el python-dateutil paquete, puedes usar dateutil.parser.parse. Tenga en cuenta que el formato de la entrada se adivina mediante parse; una entrada no válida aún se puede interpretar, correctamente o de otra manera. Sin embargo, adivinar el formato será significativamente más lento que especificarlo explícitamente.

Sin zona horaria

Si prefiere no establecer la zona horaria, lo cual está perfectamente bien si representa todas las horas internamente solo como UTC, use:

>>> dateutil.parser.parse('2012-05-29T19:30:03.283Z', ignoretz=True)
datetime.datetime(2012, 5, 29, 19, 30, 3, 283000)

Con zona horaria

Tenga en cuenta que a diferencia de datetime.datetime.strptime, esta llamada predeterminada a parse conserva automáticamente la zona horaria UTC.

>>> import dateutil.parser
>>> dateutil.parser.parse('2012-05-29T19:30:03.283Z')
datetime.datetime(2012, 5, 29, 19, 30, 3, 283000, tzinfo=tzutc())

Si es necesario realizar una afirmación de prueba para la igualdad, el objeto esperado se puede construir como:

>>> import datetime
>>> datetime.datetime(2012, 5, 29, 19, 30, 3, 283000, tzinfo=dateutil.tz.tzutc())

Calificaciones y comentarios

Tienes la opción de animar nuestra publicación escribiendo un comentario o dejando una valoración te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *