Domanda

Qualcuno sa come analizzare il formato come descritto nel titolo utilizzando il metodo strptime Pythons?

Ho qualcosa di simile a questo:

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

Non riesco a capire che tipo di timeformat questo è. A proposito, io sono un novizio al linguaggio Python (mi sono abituato a C #).

UPDATE

Ecco come ho cambiato il codice in base alle Advise (risposte) di seguito:

from dateutil.parser import *
from datetime import *
date = parse(entry.published.text)
È stato utile?

Soluzione

Questa data è nella norma ISO 8601, o più specificamente RFC 3339 , formato.

Queste date non possono essere analizzati con strptime. C'è un Python problema che lo discute.

dateutil.parser.parse in grado di gestire una vasta gamma di date, tra cui quella nel tuo esempio.

Se si sta utilizzando un modulo esterno per XML o RSS analisi, v'è probabilmente una routine in là per analizzare tale data.

Altri suggerimenti

Ecco un buon modo per trovare la risposta: utilizzando strftime, costruire una stringa di formato che emetterà ciò che si vede. Tale stringa sarà, per definizione, essere la stringa necessaria per analizzare il tempo con strptime.

Se si sta tentando di analizzare feed RSS o Atom quindi utilizzare universale feed Parser . Supporta molti data / formati di ora .

>>> 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)

Questo è il formato datetime XML standard, ISO 8601. Se si sta già utilizzando una libreria XML, la maggior parte di loro hanno datetime parser costruito. xml.utils.iso8601 funziona ragionevolmente bene.

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

Si può guardare un sacco di altri modi per affrontare questo qui: http://wiki.python.org/moin/WorkingWithTime

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top