2010-12-16 36 views
31

En Python, ¿cómo puedo convertir una cadena como esta:Python - Convierte fecha de la norma ISO 8601

Jue 16 Dic 2010 12:14:05 +0000

al formato ISO 8601 , mientras se mantiene la zona horaria?

Tenga en cuenta que la fecha original es cadena, y la salida también debe ser cadena, no datetime o algo así.

No tengo problemas para utilizar bibliotecas de terceros.

+0

¿Cuál es la fuente de la cadena? – dheerosaur

Respuesta

58

Usando dateutil:

import dateutil.parser as parser 
text = 'Thu, 16 Dec 2010 12:14:05 +0000' 
date = parser.parse(text) 
print(date.isoformat()) 
# 2010-12-16T12:14:05+00:00 
11

Python incorporada datetime paquete tiene construir en el método para convertir un objeto de fecha y hora a isoformat. He aquí un ejemplo:

>>>from datetime import datetime 
>>>date = datetime.strptime('Thu, 16 Dec 2010 12:14:05', '%a, %d %b %Y %H:%M:%S') 
>>>date.isoformat() 

salida es

'2010-12-16T12:14:05' 
+1

¿Dónde está el calificador de zona horaria (Z en este caso)? – jtlz2

Cuestiones relacionadas