Maison >développement back-end >Tutoriel Python >Comment puis-je créer un objet datetime naïf prenant en compte le fuseau horaire en Python ?

Comment puis-je créer un objet datetime naïf prenant en compte le fuseau horaire en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-29 08:34:10666parcourir

How Can I Make a Naive Datetime Object Timezone-Aware in Python?

Rendre un objet datetime conscient (pas naïf)

Comprendre le problème

Lorsque vous traitez des objets datetime, il est crucial de gérer les fuseaux horaires pour faciliter comparaisons et éviter les divergences. Si vous rencontrez un objet datetime qui ne dispose pas d'informations sur le fuseau horaire (appelé objet naïf), vous devrez peut-être l'ajouter pour permettre la comparaison avec d'autres objets prenant en compte le fuseau horaire.

Résoudre le problème

Le L'approche préférée pour rendre un objet datetime naïf conscient est d'utiliser la méthode localize :

import datetime
import pytz

unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0)
aware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0, pytz.UTC)

now_aware = pytz.utc.localize(unaware)
assert aware == now_aware

Pour le fuseau horaire UTC, où l'heure d'été n'est pas un souci, vous pouvez également utiliser la méthode replace, qui renvoie un nouvel objet datetime :

now_aware = unaware.replace(tzinfo=pytz.UTC)

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!

Déclaration:
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