Datums-/Uhrzeitanomalien mit Pytz-Zeitzonen
Pytz, eine weit verbreitete Python-Bibliothek zum Umgang mit Zeitzonen, zeigt manchmal ungewöhnliches Offset-Verhalten. Insbesondere beim Anfordern der Zeitzone „Asien/Hong_Kong“ gibt pytz möglicherweise einen Offset von 7:37:00 zurück, was inkonsistent erscheint.
Betrachten Sie zur Veranschaulichung den folgenden Code:
import pytz pytz.timezone('Asia/Hong_Kong')
Die Ausgabe zeigt die Zeitzoneninformationen wie folgt an:
<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD>
Inkonsistent, Verwendung der Lokalisierungsmethode zum Anhängen des Hong Die Kong-Zeitzone mit einer Datetime-Instanz liefert unterschiedliche Ergebnisse:
hk = pytz.timezone('Asia/Hong_Kong') hk_dt = hk.localize(datetime(2012, 1, 1))
Der Vergleich der Datetimes zeigt:
dt1 = datetime(2012,1,1,tzinfo=hk) if dt1 > hk_dt: print "Why?"
Unerwarteterweise wird dt1 als größer als hk_dt ausgewertet.
Erklärung
Diese Anomalie entsteht aufgrund von Änderungen in Zeitzonen und Zeitversätzen. Pytz weist jedem erstellten Zeitzonenobjekt den ältesten verfügbaren Namen und Offset zu. Wenn Sie jedoch die Methode „localize“ verwenden, um die Zone einem Datum zuzuordnen, werden der genaue Name und der Offset entsprechend der angegebenen Zeit berücksichtigt.
Zusammenfassend lässt sich sagen, dass die einfache Verwendung des datetime-Konstruktors zum Zuweisen einer Zeitzone zu einem Datum ausgeschlossen ist es kann nicht richtig eingestellt werden, was zu der beobachteten Inkonsistenz führt.
Das obige ist der detaillierte Inhalt vonWarum zeigt die Zeitzone „Asien/Hong_Kong' von Pytz inkonsistente Offsets?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!