Comment convertir un objet Datetime naïf en un objet Datetime conscient en Python ?

DDD
Libérer: 2024-11-24 22:59:11
original
964 Les gens l'ont consulté

How to Convert a Naive Datetime Object to an Aware Datetime Object in Python?

Comment rendre un objet datetime conscient (non naïf)

En Python, les objets datetime peuvent être naïfs ou conscients. Un objet naïf n’est pas associé à un fuseau horaire, contrairement à un objet conscient. Cela peut entraîner des problèmes lors de la comparaison d'objets datetime, car les objets naïfs ne peuvent pas être comparés à des objets conscients.

Il existe plusieurs façons de rendre un objet datetime naïf conscient. Une solution consiste à utiliser la méthode de localisation. La méthode localize prend un objet fuseau horaire pytz comme argument et renvoie un nouvel objet datetime qui connaît le fuseau horaire spécifié.

Par exemple :

import datetime
import pytz

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

Cela créera un nouvel objet datetime qui connaît le fuseau horaire UTC.

Une autre façon de rendre un objet datetime naïf conscient est d'utiliser la méthode de remplacement. La méthode replace prend un certain nombre d'arguments de mots-clés, dont un pour l'attribut tzinfo. L'attribut tzinfo peut être défini sur un objet fuseau horaire pytz pour rendre l'objet datetime conscient.

Par exemple :

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

Cela créera également un nouvel objet datetime qui connaît l'UTC. fuseau horaire.

Une fois qu'un objet datetime est conscient, il peut être comparé à d'autres objets datetime conscients. Par exemple :

import datetime
import pytz

aware_1 = pytz.utc.localize(datetime.datetime(2011, 8, 15, 8, 15, 12, 0))
aware_2 = pytz.utc.localize(datetime.datetime(2011, 8, 15, 8, 15, 12, 0))

if aware_1 == aware_2:
    print("The two datetime objects are equal.")
Copier après la connexion

Cela affichera "Les deux objets datetime sont égaux."

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal