Python-Zeitzonen-Direktive '% z' für datetime.strptime () nicht verfügbar
Ich habe einen Zeichenfolgentext, der ein Datum darstellt, und ich bin perfekt in der Lage, ihn zu analysieren und in ein sauberes datetime-Objekt umzuwandeln:
date = "[24/Aug/2014:17:57:26"
dt = datetime.strptime(date, "[%d/%b/%Y:%H:%M:%S")
Außer, dass ich mit @ nicht den gesamten Datumsstring abfangen kadie Zeitzone Verwendung der% z Muster wie angegebenHie
date_tz = 24/Aug/2014:17:57:26 +0200
dt = datetime.strptime(date, "[%d/%b/%Y:%H:%M:%S %z]")
>>> ValueError: 'z' is a bad directive in format '[%d/%b/%Y:%H:%M:%S %z]'
Weil alsdieser Fehlerbericht sagt
strftime () ist implementiertpro Plattform
Ich weiß genau, dass es mit der naiven tzinfo-Direktive '% Z' kein solches Problem gibt
Abhilfe: tzinfo-String in tzinfo-Objekt @ umwandeIch kann die folgende Problemumgehung perfekt durchführen, indem ich die Zeichenfolge im GST-Zeitformat mit @ in ein tzinfo-Objekt [wie hier vorgeschlagen] [4] umwandl dateutil Modul und dann @ einfügtzinfo in datetime Objekt
Frage:% z für meine Druckform verfügbar machen?Aber da ich natürlich% z-Muster für ein weiteres Projekt benötige, möchte ich eine Lösung finden, um diese Problemumgehung zu vermeiden und ein externes Modul für diese einfache Aufgabe zu verwenden. Können Sie mir eine Lektüre vorschlagen? Ich nahm an, dass die neuere Version von Python (ich bin auf 2.7) damit umgehen kann, aber ich möchte meine Version jetzt lieber nicht für dieses kleine, aber wichtige Detail ändern.
[BEARBEITENNun, wenn ich Kommentare sehe, habe ich meine Frage, wie der Zeitzonenindikator für E-Mails mit strptime () analysiert werden soll, umformuliert, ohne die Ortszeit zu kennen?