Parsing Datum / Uhrzeit String mit Zeitzone abgekürzter Name in Python?
Ich versuche zu analysieren, timestamp Zeichenfolgen wie "Sat, 11/01/09 8:00PM EST"
in Python, aber ich habe Schwierigkeiten, eine Lösung zu finden, die sich um die gekürzte Zeitzone.
Ich bin mit dateutil
's parse()
Funktion, aber Sie analysieren nicht die Zeitzone. Gibt es eine einfache Möglichkeit, dies zu tun?
InformationsquelleAutor der Frage Sean McAllister | 2009-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das wird wahrscheinlich nicht funktionieren, weil diese Abkürzungen sind nicht eindeutig. Sehen auf dieser Seite für details. Sie könnte wind-up nur manuell handle es sich, wenn Sie arbeiten mit einem bekannten Satz von Eingängen.
InformationsquelleAutor der Antwort Hank Gay
dateutil
'sparser.parse()
akzeptiert als keyword-argumenttzinfos
ein Wörterbuch von der Art{'EST': -5*3600}
(,, matching den Namen der zone GMT-offset in Sekunden). Vorausgesetzt, wir haben das, was wir tun können:Bezug auf den Inhalt
tzinfos
, hier ist, wie ich aufgefüllt mine:ps. pro @Hank Gay Zeitzone Namensgebung ist nicht eindeutig definiert. Auf meinem Tisch, die ich verwendet http://www.timeanddate.com/library/abbreviations/timezones/ und http://en.wikipedia.org/wiki/List_of_time_zone_abbreviations . Ich schaute auf, jeder Konflikt gelöst und Konflikte zwischen dunklen und beliebten Namen in Richtung der beliebten (mehr). Es war eine TRITT - das war nicht so eindeutig (es kann bedeuten Indian Standard Time, Iran Standard Time, Irish Standard Time oder Israel Standard Time), so ließ ich es aus der Tabelle ist - müssen Sie möglicherweise zu wählen, was Sie für Sie basierend auf Ihrem Standort. Oh - und ich verließ die Republik Kiribati mit Ihrem absurden "Sieh mich an, ich bin der erste, um zu Feiern Neue Jahr" GMT+13 und GMT+14 Zeitzonen.
InformationsquelleAutor der Antwort Nas Banov
Könnten Sie versuchen, pytz Modul: http://pytz.sourceforge.net/
InformationsquelleAutor der Antwort Drake Guan
Die parse () - Funktion in dateutil nicht umgehen kann, Zeitzonen. Das Ding habe ich mit der %Z-Formatierer und der Zeit.strptime () - Funktion. Ich habe keine Ahnung, wie es sich mit der Ambiguität in den Zeitzonen, aber es scheint zu sagen, der Unterschied zwischen CDT und der CST, das ist alles, was ich brauchte.
Hintergrund: ich habe die backup-Bilder in Verzeichnissen, deren Namen Zeitstempel mit der lokalen Zeit, da habe ich nicht das GMT-Uhren zu Hause. Also ich benutze Zeit.strptime(d, r"%Y-%m-%dT%H:%M:%S_%Z"), um eine Analyse der Verzeichnis-Namen zurück in eine tatsächliche Zeit für die Alters-Analyse.
InformationsquelleAutor der Antwort Mike DeSimone
Ich verwendet
pytz
zu generierenTZINFOS
mapping:TZINFOS
Nutzungparser
NutzungDie UTC-Konvertierung erforderlich ist, da gibt es viele Zeitzonen verfügbar für jede Abkürzung. Da
TZINFOS
ist eindict
, es hat nur die Letzte Zeitzone pro Abkürzung. Und Sie erhalten möglicherweise nicht die, die Sie erwartet hatten, vor der Konvertierung.InformationsquelleAutor der Antwort reubano