Wie zu analysieren z.B. 2010-04-24T07: 47: 00.007 + 02: 00 mit Python strptime
Frage
Wer weiß, wie das Format zu analysieren, wie im Titel mit Pythons strptime Methode beschrieben?
Ich habe etwas Ähnliches wie folgt aus:
import datetime
date = datetime.datetime.strptime(entry.published.text, '%Y-%m-%dT%H:%M:%S.Z')
Ich kann nicht scheinen, um herauszufinden, was die Art timeformat dieser ist. By the way, ich bin ein Neuling in der Sprache Python (I bis C # gewohnt bin).
UPDATE
Dies ist, wie ich den Code geändert auf der Grundlage der Beratung (Antworten) unter:
from dateutil.parser import *
from datetime import *
date = parse(entry.published.text)
Lösung
Dieses Datum ist in ISO 8601, oder genauer gesagt RFC 3339 , Format.
Eine solche Termine können nicht mit strptime
analysiert werden. Es gibt eine Python Ausgabe dass bespricht dies.
dateutil.parser.parse
kann eine Vielzahl von Terminen behandeln, darunter der in Ihrem Beispiel.
Wenn Sie ein externes Modul für XML oder RSS-Analyse verwenden, gibt es wahrscheinlich eine Routine darin, dieses Datum zu analysieren.
Andere Tipps
Hier ist ein guter Weg, um die Antwort zu finden: mit strftime
, einen Format-String zu konstruieren, emittieren, was Sie sehen. Dieser String wird per Definition der String benötigt, um die Zeit mit strptime
parsen.
Wenn Sie versuchen, RSS- oder Atom-Feeds analysieren dann Universal-Feed-Parser verwenden. Es unterstützt viele Datums- / Zeitformate .
>>> 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)
Das ist das Standard-XML-datetime-Format ISO 8601. Wenn Sie bereits eine XML-Bibliothek, die meisten von ihnen haben Datetime-Parser eingebaut. xml.utils.iso8601
recht gut funktioniert.
import xml.utils.iso8601
date = xml.utils.iso8601.parse(entry.published.text)
Sie können auf einer Reihe von anderen Möglichkeiten suchen, mit dem beschäftigen hier: http://wiki.python.org/moin/WorkingWithTime