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
Mary-Kate Olsenoriginal
2024-12-06 17:20:141031parcourir

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

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

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

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