Maison >développement back-end >Tutoriel Python >Pourquoi pytz affiche-t-il initialement des décalages de fuseau horaire inattendus ?
Différence de fuseau horaire avec pytz
Certains fuseaux horaires présentent des décalages particuliers lorsqu'ils sont initialement obtenus à partir de pytz. Par exemple, Asia/Hong_Kong affiche initialement un décalage de sept heures et 37 minutes :
<br>import pytz<br>pytz.timezone('Asia/Hong_Kong')<br><DstTzInfo 'Asie/Hong_Kong' LMT 7:37:00 STD><br>
Source de divergence
Les fuseaux horaires et les décalages fluctuent au cours de l'histoire. Le nom et le décalage horaire par défaut fournis par pytz représentent les premiers disponibles pour ce fuseau, ce qui peut sembler inhabituel.
Lorsque vous utilisez localiser pour attribuer le fuseau horaire à une date, le nom et le décalage horaires appropriés sont utilisé. Cependant, utiliser directement le constructeur datetime pour attribuer le fuseau horaire ne permet pas un ajustement approprié.
Exemple
Considérez le code suivant :
< ;pre>
importer pytz
from datetime importer datetime
hk = pytz.timezone('Asia/Hong_Kong')
dt1 = datetime(2012,1,1,tzinfo=hk)
dt2 = hk.localize(datetime(2012,1,1))
si dt1 > dt2 :
print "Pourquoi ?"
Dans cet exemple, dt1 sera supérieur à dt2 en raison de l'écart de décalage initial. En utilisant localiser, dt2 obtient le décalage précis, ce qui entraîne une comparaison logique entre les deux dates.
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!