Déterminer si 24 heures se sont écoulées entre les dates-heures à l'aide de Python
En Python, vous pouvez facilement déterminer le décalage horaire entre deux dates-heures à l'aide de la datetime module. Ceci est particulièrement utile dans les scénarios où vous devez vérifier si une période spécifique, telle que 24 heures, s'est écoulée.
Considérez la méthode suivante :
def time_diff(last_updated): day_period = last_updated.replace(day=last_updated.day + 1, hour=1, minute=0, second=0, microsecond=0) delta_time = day_period - last_updated hours = delta_time.seconds // 3600 # Check if 24 hours have passed if hours >= 24: print("hello") else: print("do nothing")
Cette méthode calcule le décalage horaire entre l'heure actuelle et last_updated, un objet datetime donné. Si 24 heures se sont écoulées, il affiche « bonjour » ; sinon, il affiche « ne rien faire ».
Cependant, la méthode ne parvient pas à déterminer avec précision le décalage horaire de 24 heures. Voici des solutions plus précises :
Heure UTC
Si last_updated est un objet datetime naïf (sans informations de fuseau horaire) représentant l'heure UTC :
from datetime import datetime, timedelta if (datetime.utcnow() - last_updated) > timedelta(hours=24): # More than 24 hours passed
Heure locale
Si last_updated est un objet datetime naïf (sans informations de fuseau horaire) représentant l'heure locale :
import time DAY = 86400 now = time.time() then = time.mktime(last_updated.timetuple()) if (now - then) > DAY: # More than 24 hours passed
Fuseau horaires et heures ambiguës
Si last_updated est une heure ambiguë (par exemple, lors d'une transition DST), vous peut utiliser le module pytz pour garantir l'exactitude :
from datetime import datetime, timedelta from tzlocal import get_localzone # pip install tzlocal 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
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!