Heim >Backend-Entwicklung >Python-Tutorial >Warum zeigt pytz zunächst unerwartete Zeitzonenversätze an?
Zeitzonendiskrepanz mit pytz
Bestimmte Zeitzonen weisen besondere Abweichungen auf, wenn sie ursprünglich von pytz bezogen wurden. Beispielsweise zeigt Asien/Hong_Kong zunächst einen Versatz von sieben Stunden und 37 Minuten an:
<br>import pytz<br>pytz.timezone('Asia/Hong_Kong')<br><DstTzInfo „Asien/Hong_Kong“ LMT 7:37:00 STD><br>
Diskrepanzquelle
Zeitzonen und Zeitverschiebungen schwanken im Laufe der Geschichte. Der von pytz bereitgestellte Standardzeitzonenname und -versatz stellen die frühesten für diese Zone verfügbaren Zeitzonen dar, was ungewöhnlich erscheinen kann.
Wenn Sie „localize“ verwenden, um die Zeitzone einem Datum zuzuweisen, werden der entsprechende Zeitzonenname und der entsprechende Zeitzonenversatz verwendet gebraucht. Die direkte Verwendung des datetime-Konstruktors zum Zuweisen der Zeitzone ermöglicht jedoch keine ordnungsgemäße Anpassung.
Beispiel
Bedenken Sie den folgenden Code:
< ;pre>
pytz importieren
von datetime import datetime
hk = pytz.timezone('Asien/Hong_Kong')
dt1 = datetime(2012,1,1,tzinfo=hk)
dt2 = hk.localize(datetime(2012,1,1))
wenn dt1 > dt2:
print „Warum?“
In diesem Beispiel ist dt1 aufgrund der anfänglichen Offset-Diskrepanz größer als dt2. Durch die Verwendung von „localize“ erhält dt2 den genauen Offset, was zu einem logischen Vergleich zwischen den beiden Daten führt.
Das obige ist der detaillierte Inhalt vonWarum zeigt pytz zunächst unerwartete Zeitzonenversätze an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!