2010-10-08 14 views
13

ich dieses Datum Zeitangabe zu einem Unix-Zeitstempel konvertieren mit:python - strtotime äquivalent?

str(int(time.mktime(time.strptime(date,"%d %b %Y %H:%M:%S %Z")))) 

jedoch oft die Datumsstruktur ist nicht das gleiche, so halte ich die folgende Fehlermeldung erhalten:

Zeit Daten haben Format nicht überein: data = Di, 26. Mai 2009 19.58.20 -0500 fmt =% d% b% Y% H:% M:% S% Z

Kennt jemand jeder einfach Funktion zum Konvertieren einer String-Darstellung eines Datums/einer Uhrzeit in einen Unix-Zeitstempel in Pytho n? Ich möchte wirklich nicht, einen Prozess zu öffnen, um eine PHP-Skript aufrufen, den Zeitstempel jedes Mal Zeit in einer Schleife echo :)

+0

Sie sagen uns, dass das Format der Zeichenfolge Aufruf unterscheidet sich Aufruf? Und möchten Sie, dass diese Funktion das Format Ihrer Zeichenfolge für Sie erkennt? – Ray

+0

Ja, das sagt er. Der Asker wird verwendet, um PHPs strtotime zu verwenden, das solche automatischen heat- –

+1

Warum die str (int (...)) um den Ausdruck? Unix-Zeitstempel in Python werden normalerweise als Fließkommazahlen weitergegeben, die Sekundenbruchteile zulassen. Sie sollten wahrscheinlich nicht in eine Zeichenkette konvertieren, es sei denn, Sie müssen den Zeitstempel aus irgendeinem Grund direkt ausdrucken. –

Antwort

27
from dateutil.parser import parse 

parse('Tue, 26 May 2009 19:58:20 -0500').strftime('%s') 

# returns '1243364300' 
+12

Dies scheint ein Verweis auf das Modul des Drittanbieters zu sein: http://labix.org/python-dateutil. Soweit ich weiß, gibt es keine einfache Möglichkeit, Datumszeichenfolgen unbekannten Formats in der Python-Standardbibliothek zu analysieren. –

+0

, die mein Problem beantwortet haben, ist es in Ordnung mit Drittanbieter-Modulen für mich. – Joe

+0

das ist süß. Danke, dass du mich darauf aufmerksam gemacht hast! – Andbdrew