datetime: Konvertierung von String mit Name der Zeitzone funktioniert nicht

8

Ich habe die folgende Zeichenfolge "2017-03-30 08:25:00CET" , die ich in ein datetime tz-aware-Objekt konvertieren möchte.

Nach diese SO Frage , ab Python 3.2 kann nur mit datetime module gearbeitet werden. Außerdem sehe ich in der Dokumentation

%Vor%

Also versuche ich folgendes

%Vor%

Ich bekomme keinen Fehler, aber das Objekt, das ich bekomme, ist nicht tz-aware

%Vor%

Andererseits, wenn ich meine Zeichenfolge in "2017-03-30 08:25:00+0200" umwandle und sie dann in ein Objekt mit

umwandle

datetime.strptime(dep_dt, '%Y-%m-%d %H:%M:%S%z')

Ich bekomme eine tz-aware Datetime:

%Vor%

Irgendwelche Ideen, warum es mit %z funktioniert, aber nicht mit %Z ? Was mache ich falsch?

    
J0ANMM 02.02.2017, 10:37
quelle

1 Antwort

4

Gemessen an den Informationen von tzinfo funktioniert %Z nicht Die Art, wie Sie eine Zeichenfolge wie "UTC" einspeisen und eine Datetime-Instanz mit der richtigen Zeitzone zurückgeben.

pytz bietet eine mögliche Lösung für Ihr Problem. Die Dokumentation besagt jedoch, dass es keine Garantie dafür gibt, dass Ihre Zeitzone von datetime erkannt wird, und empfiehlt, so lange wie möglich mit UTC zu arbeiten.

Lösung mit pytz :

%Vor%

Aus:

%Vor%     
UpSampler 02.02.2017 11:20
quelle