2016-07-04 16 views
5

Ich versuche, einfach eine Datetime zu erstellen Objekt ab dem folgenden Datum: 'Fr Mar 11 15:59:57 EST 2016' im Format: '% a% b% d% H:% M:% S% Z% Y'.ValueError Zeitdaten 'Fr Mar 11 15:59:57 EST 2016' stimmt nicht mit Format '% a% b% d% H:% M:% S% Z% Y'

Hier ist der Code.

from datetime import datetime 
date = datetime.strptime('Fri Mar 11 15:59:57 EST 2016', '%a %b %d %H:%M:%S %Z %Y') 

Dies führt jedoch zu einem ValueError wie unten gezeigt.

Vielleicht fehlt mir etwas offensichtlich falsch mit meinem Format String, aber ich habe es immer wieder überprüft. Jede Hilfe wäre sehr dankbar, danke.

bearbeiten reflektieren Kommentare/Fragen für weitere Informationen:

Der Python-Version, die ich bin mit 2.7.6 ist.

Mit dem Befehl 'locale' auf Ubuntu 14.04 bekomme ich diese:

$ locale 
LANG=en_US.UTF-8 
LANGUAGE= 
LC_CTYPE="en_US.UTF-8" 
LC_NUMERIC="en_US.UTF-8" 
LC_TIME="en_US.UTF-8" 
LC_COLLATE="en_US.UTF-8" 
LC_MONETARY="en_US.UTF-8" 
LC_MESSAGES="en_US.UTF-8" 
LC_PAPER="en_US.UTF-8" 
LC_NAME="en_US.UTF-8" 
LC_ADDRESS="en_US.UTF-8" 
LC_TELEPHONE="en_US.UTF-8" 
LC_MEASUREMENT="en_US.UTF-8" 
LC_IDENTIFICATION="en_US.UTF-8" 
LC_ALL= 
+2

Ich habe versucht Ihren Code und es funktioniert für mich; Welche Version von Python verwendest du? –

+0

Ich benutze Python 2.7.6 –

+0

Sie verwenden zufällig einen Computer, der eine nicht englische Spracheinstellung verwendet? –

Antwort

8

Für die% Z-Spezifizierer, strptime erkennt nur "UTC", "GMT" und was auch immer in time.tzname ist (so, ob sie erkennt "EST" hängt von der Zeitzone Ihres Computers ab. Dies ist issue 22377.

Siehe auch: Python strptime() and timezones? und Parsing date/time string with timezone abbreviated name in Python?

Die beste Option Zeitzonen für die Analyse, die eine menschenlesbare Zeitzone enthalten ist immer noch die Drittanbieter python-dateutil Bibliothek zu verwenden:

import dateutil 
date = dateutil.parse('Fri Mar 11 15:59:57 EST 2016' 

Wenn Sie nicht Python installieren -dateutil, könnte man die Zeitzone strippen und manuell z. B. analysieren Verwenden einer Wörterbuchsuche.

+0

Das Problem passiert auch hier. In der Tat dachte ich, dass das Problem der "EST" Teilstring ist und Sie haben das Problem gerade bestätigt. Gibt es in diesem Fall eine sichere Möglichkeit, diese Zeichenfolgen zu analysieren und dieses Problem zu vermeiden? –

+1

@ JeandersonBarrosCândido die beste Option ist die Verwendung von Python-Dateutil. Ich habe meine Antwort aktualisiert, um das hinzuzufügen, danke. – ecatmur

+0

Das war es. Vielen Dank! –