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

Comment puis-je convertir un objet Datetime naïf en un objet prenant en compte le fuseau horaire en Python ?

Mary-Kate Olsen
Libérer: 2024-11-25 20:18:11
original
273 Les gens l'ont consulté

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

Conversion d'un objet datetime naïf en fuseau horaire sensible

En Python, les objets datetime peuvent être soit sensibles au fuseau horaire, soit naïfs du fuseau horaire. Un objet datetime prenant en compte le fuseau horaire inclut une référence à un fuseau horaire spécifique, contrairement à un objet datetime naïf de fuseau horaire.

Lorsque vous comparez des objets datetime prenant en compte le fuseau horaire et naïfs de fuseau horaire, il est important de comprendre ce qui suit :

  1. astimezone() : Cette méthode tente de convertir un objet datetime naïf de fuseau horaire en un Objet datetime prenant en compte le fuseau horaire. Cependant, elle ne peut pas être appliquée aux objets datetime naïfs, comme le montre l'extrait de code fourni.
  2. replace() : La méthode replace prend des arguments pour remplacer les valeurs dans un objet datetime, y compris le champ tzinfo. En utilisant cette méthode, on peut définir le champ tzinfo sur le fuseau horaire souhaité. Cependant, comme indiqué dans le bloc de code, le remplacement ne rend pas automatiquement l'objet datetime sensible au fuseau horaire.

Pour convertir correctement un objet datetime naïf en un objet prenant en compte le fuseau horaire, utilisez localize () méthode :

import datetime
import pytz

unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0)
aware = pytz.utc.localize(unaware)
Copier après la connexion

La méthode localize prend un objet datetime naïf et un fuseau horaire spécifique comme arguments. Il renvoie un nouvel objet datetime qui prend en compte le fuseau horaire, préservant les valeurs datetime d'origine.

Pour les fuseaux horaires spécifiques qui n'impliquent pas de calculs d'heure d'été, tels que UTC, l'approche suivante peut également être utilisée :

import datetime
import pytz

unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0)
aware = unaware.replace(tzinfo=pytz.UTC)
Copier après la connexion

Dans ce cas, replace définit directement le champ tzinfo sur le fuseau horaire spécifié, ce qui donne lieu à un objet datetime prenant en compte le 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!

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