Maison > développement back-end > Tutoriel Python > Comment puis-je déterminer efficacement si 24 heures se sont écoulées entre deux objets Python « datetime » ?

Comment puis-je déterminer efficacement si 24 heures se sont écoulées entre deux objets Python « datetime » ?

Mary-Kate Olsen
Libérer: 2024-12-06 17:20:14
original
1081 Les gens l'ont consulté

How Can I Efficiently Determine if 24 Hours Have Passed Between Two Python `datetime` Objects?

Calcul du décalage horaire pour déterminer si 24 heures se sont écoulées

La tâche consiste à déterminer si 24 heures se sont écoulées entre deux dates ou heures stockées dans un objet datetime. Voici une solution en Python :

Utilisation d'objets datetime naïfs

Si l'objet datetime représente une heure naïve (sans informations de fuseau horaire) :

from datetime import datetime, timedelta

if (datetime.utcnow() - last_updated) > timedelta(hours=24):
    # More than 24 hours passed since last_updated
Copier après la connexion

Utilisation d'objets d'heure locale

Si last_updated représente local time :

import time

DAY = 86400
now = time.time()
then = time.mktime(last_updated.timetuple())
if (now - then) > DAY:
    # More than 24 hours passed since last_updated
Copier après la connexion

Utilisation du module tzlocal (recommandé)

from datetime import datetime, timedelta
from tzlocal import get_localzone

tz = get_localzone()
then = tz.normalize(tz.localize(last_updated))
now = datetime.now(tz)
if (now - then) > timedelta(hours=24):
    # More than 24 hours passed since last_updated
Copier après la connexion

Cette méthode gère les cas où les fuseaux horaires peuvent avoir changé ou où les décalages de l'heure d'été (DST) ont a été ajusté.

Remarques :

  • Si last_updated est un objet datetime conscient (avec des informations de fuseau horaire), soustrayez le décalage UTC avant de comparer.
  • Travailler avec l'heure UTC minimise les problèmes de fuseau horaire et est généralement recommandé.

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 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