Analizar rfc3339 cadenas de fecha en Python?

Tengo un conjunto de datos donde todas las fechas tienen el siguiente formato:

2012-10-09T19:00:55Z 

Me gustaría poder usar métodos como .weekday en ellos. ¿Cómo los convierto al formato adecuado en Python?

Puede usar dateutil.parser.parse para analizar cadenas en objetos de fecha y hora.

dateutil.parser.parse intentará adivinar el formato de su cadena, si conoce el formato exacto de antemano, puede usar datetime.strptime que le proporciona una cadena de formato (consulte la respuesta de Brent Washburne).

 from dateutil.parser import parse a = "2012-10-09T19:00:55Z" b = parse(a) print(b.weekday()) # 1 (equal to a Tuesday) 

Esto ya se ha respondido aquí: ¿Cómo traduzco una cadena datetime ISO 8601 en un objeto datetime Python?

 d = datetime.datetime.strptime( "2012-10-09T19:00:55Z", "%Y-%m-%dT%H:%M:%SZ" ) d.weekday() 

Debes echarle un vistazo al moment que es un puerto Python de los excelentes js lib momentjs .

Una ventaja de esto es el soporte de ISO 8601 formatos de cadenas ISO 8601 , así como un “formato%” genérico:

 import moment time_string='2012-10-09T19:00:55Z' m = moment.date(time_string, '%Y-%m-%dT%H:%M:%SZ') print m.format('YYYY-MD H:M') print m.weekday 

Resultado:

 2012-10-09 19:10 2