Mit Python datetime.datetime.strptime auf Fenster mit BST Zeitzone

stimmen
2

Ich muss viele verschiedene Termine in vielen verschiedenen Formaten analysieren. Ich habe Probleme mit dem folgenden und fragte sich, ob anyopne erklären könnte, warum;

Die folgenden Arbeiten auf einem Linux-System:

from datetime import datetime
datetime.strptime('Tue 23 Aug 2011 09:00:07 PM BST','%a %d %b %Y %H:%M:%S %p %Z')

Aber unter Windows läuft es wirft

Valueerror: Zeitdaten nicht mit Format

Allerdings, wenn ich GMT nicht BST auf Windows versuchen, es funktioniert gut;

from datetime import datetime
datetime.strptime('Tue 23 Aug 2011 09:00:07 PM GMT','%a %d %b %Y %H:%M:%S %p %Z')

Gibt es einen Grund Python die BST Zeitzone unter Windows nicht verstehen, aber es funktioniert gut unter Linux?

Vielen Dank,

Matt.

Veröffentlicht am 24/08/2011 um 16:13
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Meiner Meinung nach ist ein Parsen Drei-Buchstaben-Zeitzone Code wie diesen ist keine gute Praxis (es sei denn natürlich haben Sie keine andere Wahl). Zum Beispiel: „EST“ wird in den USA für UTC-4/5 und wird auch häufig verwendet in Australien verwendet. So eine Unterstützung für „EST“ muss daher auf locale abhängig sein. Es würde mich nicht überraschen, wenn „BST“ ähnlich zweideutig ist.

Ich empfehle die Verwendung von pytzModul , in der britischen Zivil Zeit gegeben wird , um die Zeichenfolge Kennung Europe/Londonund UTC genannt Etc/UTC. Die pytzAPI wird konsistente Ergebnisse geben , unabhängig von dem Ort des Benutzers oder das System der Anwendung ausgeführt wird .

Wenn Sie auf einer Benutzeroberfläche arbeiten, die locale gebunden werden müssen, oder Parsing - Eingänge mit Formaten , die Sie nicht ändern können, dann erwägen , ein Wörterbuch der Abkürzungen zu verwenden pytzZeitzone Objekte. Zum Beispiel: {'BST': 'Europe/London'}. Dann können Sie Ihre Bewerbung mit UTC Termine und Uhrzeiten arbeiten einheitlich, die stark die Möglichkeit von Fehlern reduzieren.

Beantwortet am 24/08/2011 um 16:50
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more