Décalage de fuseau horaire non conventionnel dans pytz
Dans pytz, créer un objet de fuseau horaire en utilisant le nom de fuseau horaire « Asie/Hong_Kong » semble inhabituel , car il renvoie un décalage de sept heures et 37 minutes. Ce comportement n'est pas unique.
La cause réside dans le fait que les fuseaux horaires et les décalages subissent des changements historiques. Pytz initialise les objets de fuseau horaire avec le nom et le décalage disponibles les plus anciens pour un fuseau donné. Par conséquent, le décalage par défaut peut parfois sembler étrange.
Pour résoudre ce problème, utilisez la méthode localize() au lieu du constructeur datetime lorsque vous attachez le fuseau horaire à une date. Cette méthode intègre le nom de zone et le décalage corrects à cette heure spécifique.
Par exemple :
>>> 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
L'utilisation de localize() garantit un ajustement correct du nom et du décalage du fuseau horaire.
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!