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)
War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top