2009-07-23 10 views
6

Ich kann mich nicht erinnern, welche Anwendung ich verwendete, aber ich erinnere mich, dass es wirklich ordentlich Datum Parsing/Interpretation.Smart date interpretation

Zum Beispiel könnten Sie in Typ ‚vor zwei Tagen‘ oder ‚morgen‘ und es würde verstehen.

Alle Bibliotheken vorschlagen? Bonuspunkte, wenn sie von Python aus verwendet werden können.

+0

http://www.rememberthemilk.com/ und GNU * at * "erlauben ziemlich komplexe Zeitangaben" – Utaal

Antwort

6

Meine SO answer für Links zu drei Daten Parsen Bibliotheken Python. Die am häufigsten verwendete ist python-dateutils, aber leider kann nicht alle Formate behandelt werden.

8

Vielleicht denken an Sie PHP strtotime() Funktion, die Swiss Army Knife of date parsing:

Mann, was habe ich vor strtotime() tun. Oh, ich weiß, ich hatte eine 482 Zeilenfunktion, um Datumsformate zu analysieren und Zeitstempel zurückzugeben. Und ich konnte immer noch nicht wirklich cooles Zeug machen. Wie heute Abend musste ich herausfinden, wann Thanksgiving in den USA war. Ich wusste, es war der 4. Donnerstag im November. Also begann ich mit Mathe-Sachen und überprüfte, welcher Tag der Woche am 1. November stattfinden würde. All das machte mir den Kopf weh. Also habe ich das nur zum Spaß ausprobiert.

strtotime("thursday, november ".date("Y")." + 3 weeks") 

Das hat mich Danksagung gibt. Genial.

Leider scheint es kein Python-Äquivalent zu geben. Das nächste, was ich finden konnte, ist das dateutil.parser Modul.

+0

Sie könnten etwas wie folgt in Python ausführen: [Element für Element in Liste (rulle.rrule (rulle.MONTHLY , count = 12, byweekday = Rule.TH (4), dtstart = datetime.date.today())) if item.month == 11] [0] .strftime ('% Y-% m-% d') . Dies würde die Daten für den 4. Donnerstag jedes Monats für ein Jahr berechnen. Sie wählen dann den Monat, in dem der Monat November ist, und Sie haben das Datum für das nächste Erntedankfest. – user2694306

2

Die einfache, den ich für Python ist here gesehen haben.

Es nutzt pyparsing und nur ein kleines Skript, aber es tut, was Sie fragen. Der Vorteil ist jedoch, dass es bei Bedarf leicht erweitert und verbessert werden kann. Pyparsing ist relativ einfach zu lernen, wie Parsing geht.