Maison >développement back-end >Tutoriel Python >Comment vérifier si 24 heures se sont écoulées entre deux dates-heures en Python ?

Comment vérifier si 24 heures se sont écoulées entre deux dates-heures en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-02 15:16:12721parcourir

How to Check if 24 Hours Have Passed Between Two Datetimes in Python?

Comment déterminer si 24 heures se sont écoulées entre deux dates-heures en Python

Déterminer si 24 heures se sont écoulées entre deux dates-heures est une tâche courante dans programmation. La méthode fournie, time_diff, calcule la différence de temps entre la dernière heure d'exécution (last_updated) et une période de jour 24 heures plus tard. Cependant, pour vérifier si 24 heures se sont spécifiquement écoulées, des étapes supplémentaires sont nécessaires. Voici quelques approches :

1. Comparaison naïve de date et d'heure (UTC)

Si last_updated représente une date/heure naïve (sans informations de fuseau horaire) en UTC, vous pouvez utiliser le module datetime :

from datetime import datetime, timedelta

if (datetime.utcnow() - last_updated) > timedelta(hours=24):
    # More than 24 hours have passed

2. Comparaison naïve de date et d'heure (heure locale)

Si last_updated représente l'heure locale, vous pouvez utiliser le module d'heure :

import time

DAY = 86400
now = time.time()
then = time.mktime(last_updated.timetuple())
if (now - then) > DAY:
    # More than 24 hours have passed

3. Comparaison datetime consciente (Timezone-Aware)

Si last_updated est une datetime prenant en compte le fuseau horaire, vous pouvez la convertir en UTC et la comparer avec l'heure UTC actuelle :

from datetime import datetime, timedelta

last_updated_utc = last_updated.replace(tzinfo=None) - last_updated.utcoffset()
if (datetime.utcnow() - last_updated_utc) > timedelta(hours=24):
    # More than 24 hours have passed

4. Utilisation du module tzlocal

Le module tzlocal peut être utilisé pour gérer les conversions de fuseau horaire pour les dates/heures naïves :

from datetime import datetime, timedelta
from tzlocal import get_localzone

local_timezone = get_localzone()
last_updated_aware = local_timezone.localize(last_updated)
if (datetime.now(local_timezone) - last_updated_aware) > timedelta(hours=24):
    # More than 24 hours have passed

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
Article précédent:Automatisations avec Python.Article suivant:Automatisations avec Python.