Seltsames .astimezone-Verhalten

8

Ich mache einige Zeitzonen-Conversions, und ich bekomme wirklich seltsame Ergebnisse. Im Grunde konvertiere ich zwischen Zeitzonen, die sich nur um ganze Stunden unterscheiden, bekomme aber immer noch nicht vollständige Ergebnisse. Zum Beispiel:

%Vor%

gibt mir

%Vor%

(Zeitunterschied zwischen Bukarest und Berlin ist 1 Stunde, also sollte ich 19:00 bekommen - stattdessen bekomme ich 19:16)

Ich vermisse wahrscheinlich etwas wirklich Offensichtliches, aber ich kann es nicht herausfinden. Was mache ich falsch?

    
ibz 27.12.2013, 17:14
quelle

2 Antworten

7

Wie in der pytz-Dokumentation angegeben:

  

Leider funktioniert das Verwenden des TZInfo-Arguments der Standard-datetime-Konstruktoren nicht mit pytz für viele Zeitzonen.

Tatsächlich ist das nicht das erwartete Ergebnis, die Zeitzone ist falsch:

%Vor%

Dies wird erklärt der pytz -Konstruktor gegeben die timezone('Europe/Bucharest') Zeitzone überprüft nicht wenn die Zeitzone Offset berücksichtigt werden sollte, und diese Dinge neigen dazu, sich im Laufe der Zeit zu ändern. pytz verwendet nur die frühere bekannte Definition, die oft falsch ist:

%Vor%

Es sieht so aus, als ob diese Zeitzone bis 1931 verwendet wurde .

>

Es gibt kein Problem, wenn Sie mit UTC-Zeiten arbeiten und diese mit astimezone konvertieren (nur zu Anzeigezwecken wie empfohlen):

%Vor%

Dann erhalten Sie das erwartete Ergebnis:

%Vor%     
Nicolas Cortot 27.12.2013, 17:45
quelle
0

Ich bin heute auf dasselbe Problem gestoßen und habe es schließlich mit der Antwort @jfs gelöst, die in den Kommentar der aktuell akzeptierten Antwort eingefügt wurde. Um anderen zu helfen, dies in der Zukunft zu finden, ist hier ein kurzes Beispiel dafür, was funktioniert und was nicht:

%Vor%     
Chris 25.08.2017 23:26
quelle

Tags und Links