Différences de fuseau horaire avec pytz
En utilisant la bibliothèque pytz, vous pouvez rencontrer des décalages de fuseau horaire apparemment particuliers, tels que sept heures et 37 décalage minute pour 'Asia/Hong_Kong'. Cette disparité résulte de la nature dynamique des fuseaux horaires et de leurs décalages dans le temps.
Le nom de zone par défaut et le décalage fournis par pytz lors de la création d'un objet fuseau horaire représentent les premières informations disponibles pour ce fuseau. Ces valeurs peuvent paraître inhabituelles. Pour résoudre ce problème, utilisez la méthode localiser pour associer la zone à une date spécifique. Cela garantit que le nom de zone et le décalage appropriés sont utilisés.
À titre d'exemple, considérons le code suivant :
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)) if dt1 > dt2: print "Why?"
Dans ce cas, la comparaison entre « dt1 » et « dt2 » peut donner des résultats inattendus en raison de l’écart de compensation susmentionné. Pour obtenir la comparaison correcte, il faut toujours utiliser la méthode localize pour attacher le fuseau horaire à la date, plutôt que d'utiliser le constructeur datetime, qui peut ne pas effectuer les ajustements nécessaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!