Maison > développement back-end > Tutoriel Python > Pourquoi pytz attribue-t-il un décalage de 7 heures et 37 minutes à l'Asie/Hong_Kong ?

Pourquoi pytz attribue-t-il un décalage de 7 heures et 37 minutes à l'Asie/Hong_Kong ?

Susan Sarandon
Libérer: 2024-12-07 20:17:15
original
236 Les gens l'ont consulté

Why Does pytz Assign a 7-Hour, 37-Minute Offset to Asia/Hong_Kong?

Enigme du fuseau horaire Pytz : percer le mystère du décalage de 7 heures

Dans le domaine de la gestion des fuseaux horaires, pytz prend souvent les devants. Cependant, certains utilisateurs ont rencontré une anomalie inattendue lorsqu'ils travaillaient avec le fuseau horaire « Asie/Hong_Kong » : pourquoi pytz lui attribue-t-il un décalage inhabituel de 7 heures et 37 minutes ?

Une enquête plus approfondie révèle des observations intrigantes :

import pytz
pytz.timezone('Asia/Hong_Kong')
# Outputs: <DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD>
Copier après la connexion

Curieusement, ce décalage ne semble pas précis. Cependant, l'extrait de code suivant révèle une divergence plus déroutante :

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?"
Copier après la connexion

Ce code affiche étonnamment "Pourquoi ?", insinuant que dt1 est supérieur à dt2. Quelle pourrait être la cause sous-jacente de ces comportements particuliers ?

Décoder l’énigme : une tournure historique

Résoudre cette énigme du fuseau horaire nécessite un examen méticuleux de l’histoire du fuseau horaire. Le fuseau horaire par défaut et le décalage extraits par pytz sont basés sur les premiers enregistrements connus, qui peuvent parfois s'écarter des normes actuelles. Lorsqu'ils sont localisés via localiser, le nom et le décalage horaire appropriés sont attribués de manière appropriée.

Dans le cas de « Asie/Hong_Kong », son premier décalage enregistré était en effet de 7 heures et 37 minutes (LMT 7:37:00). . Cependant, ce décalage a été modifié depuis. La simple initialisation d'un objet datetime avec les informations de fuseau horaire (dt1) ne permet pas un ajustement automatique.

Résolution du comportement anormal :

Pour résoudre cet écart, il est recommandé s'appuyer sur la méthode localize pour attribuer correctement les informations de fuseau horaire aux objets datetime. En utilisant explicitement localiser, pytz garantit l'utilisation du nom et du décalage horaire appropriés, reflétant les conventions de chronométrage actuelles.

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