Unkonventioneller Zeitzonenversatz in Pytz
In Pytz erscheint das Erstellen eines Zeitzonenobjekts mit dem Zeitzonennamen „Asien/Hong_Kong“ ungewöhnlich , da ein Offset von sieben Stunden und 37 Minuten zurückgegeben wird. Dieses Verhalten ist nicht einzigartig.
Die Ursache liegt darin, dass Zeitzonen und Offsets historischen Veränderungen unterliegen. Pytz initialisiert Zeitzonenobjekte mit dem frühesten verfügbaren Namen und Offset für eine bestimmte Zone. Daher kann der Standardoffset manchmal seltsam erscheinen.
Um dieses Problem zu beheben, verwenden Sie die Methode localize() anstelle des datetime-Konstruktors, wenn Sie die Zeitzone einem Datum zuordnen. Diese Methode bezieht den korrekten Zonennamen und den richtigen Zeitzonenversatz zu diesem bestimmten Zeitpunkt ein.
Zum Beispiel:
>>> import pytz >>> from datetime import datetime >>> hk = pytz.timezone('Asia/Hong_Kong') >>> dt1 = datetime(2012,1,1,tzinfo=hk) >>> dt2 = hk.localize(datetime(2012,1,1)) >>> dt1 > dt2 False
Die Verwendung von localize() gewährleistet die korrekte Anpassung des Zeitzonennamens und des Zeitzonenversatzes.
Das obige ist der detaillierte Inhalt vonWarum zeigt pytz einen unkonventionellen Zeitzonenversatz für „Asien/Hong_Kong' an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!