Pregunta

¿alguien sabe cómo analizar el formato como se describe en el título utilizando el método strptime pitones?

Tengo algo similar a esto:

import datetime    
date = datetime.datetime.strptime(entry.published.text, '%Y-%m-%dT%H:%M:%S.Z')

Me parece que no puede averiguar qué tipo de timeformat esto es. Por cierto, soy un novato en el lenguaje Python (estoy acostumbrado a C #).

Actualizar

Así es como he cambiado el código basado en el consejo (respuestas) a continuación:

from dateutil.parser import *
from datetime import *
date = parse(entry.published.text)
¿Fue útil?

Solución

Esa fecha es en la norma ISO 8601, o más específicamente RFC 3339 , formato.

Estas fechas no pueden ser analizados con strptime. Hay una Python tema que trata este .

dateutil.parser.parse puede manejar una amplia variedad de fechas, incluyendo la que en su ejemplo.

Si está utilizando un módulo externo para XML o RSS análisis, es probable que haya una rutina en la que hay que analizar esa fecha.

Otros consejos

Aquí está una manera buena para encontrar la respuesta: el uso de strftime, construir una cadena de formato que emitirá lo que se ve. Esa cadena será, por definición, ser la cadena necesaria para analizar el tiempo con strptime.

Si usted está tratando de analizar RSS o Atom a continuación, utilizar universal RSS Analizador . Es compatible con muchos fecha / formatos de hora .

>>> import feedparser                 # parse feed
>>> d = feedparser.parse("http://stackoverflow.com/feeds/question/3946689")
>>> t = d.entries[0].published_parsed # get date of the first entry as a time tuple
>>> import datetime
>>> datetime.datetime(*t[:6])         # convert time tuple to datetime object
datetime.datetime(2010, 10, 15, 22, 46, 56)

Ese es el formato de fecha y hora estándar XML, ISO 8601. Si ya está utilizando una biblioteca de XML, la mayoría de ellos han construido en analizadores de fecha y hora. xml.utils.iso8601 funciona razonablemente bien.

import xml.utils.iso8601
date = xml.utils.iso8601.parse(entry.published.text)

Se puede mirar a un montón de otras maneras de lidiar con eso aquí: http://wiki.python.org/moin/WorkingWithTime

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top