Maison > développement back-end > Tutoriel Python > Pourquoi le fuseau horaire « Asie/Hong_Kong » de Pytz affiche-t-il des décalages incohérents ?

Pourquoi le fuseau horaire « Asie/Hong_Kong » de Pytz affiche-t-il des décalages incohérents ?

Linda Hamilton
Libérer: 2024-12-06 15:56:10
original
1053 Les gens l'ont consulté

Why Does Pytz's `Asia/Hong_Kong` Timezone Show Inconsistent Offsets?

Anomalies datetime avec les fuseaux horaires Pytz

Pytz, une bibliothèque Python répandue pour la gestion des fuseaux horaires, présente parfois un comportement de décalage inhabituel. Notamment, lors de la demande du fuseau horaire « Asie/Hong_Kong », pytz peut renvoyer un décalage de 7:37:00, ce qui semble incohérent.

Pour illustrer, considérons le code suivant :

import pytz
pytz.timezone('Asia/Hong_Kong')
Copier après la connexion

La sortie affiche les informations de fuseau horaire comme :

<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD>
Copier après la connexion

De manière incohérente, en utilisant la méthode de localisation pour attacher le fuseau horaire de Hong Kong à une instance datetime donne des résultats différents :

hk = pytz.timezone('Asia/Hong_Kong')
hk_dt = hk.localize(datetime(2012, 1, 1))
Copier après la connexion

La comparaison des dates et heures révèle :

dt1 = datetime(2012,1,1,tzinfo=hk)
if dt1 > hk_dt:
    print "Why?"
Copier après la connexion

De façon inattendue, dt1 est évalué comme supérieur à hk_dt.

Explication

Cette anomalie survient en raison des changements de fuseaux horaires et des décalages dans le temps. Pytz attribue le nom et le décalage disponibles les plus anciens à chaque objet de fuseau horaire qu'il crée. Cependant, lorsque vous utilisez la méthode de localisation pour attacher la zone à une date, elle intègre le nom précis et le décalage correspondant à l'heure spécifiée.

En conclusion, le simple fait d'utiliser le constructeur datetime pour attribuer un fuseau horaire à une date exclut il ne s'ajuste pas correctement, conduisant à l'incohérence observée.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal