Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich in Python genau feststellen, ob zwischen zwei Datums- und Uhrzeitangaben 24 Stunden vergangen sind?

Wie kann ich in Python genau feststellen, ob zwischen zwei Datums- und Uhrzeitangaben 24 Stunden vergangen sind?

Susan Sarandon
Freigeben: 2024-12-03 02:35:14
Original
511 Leute haben es durchsucht

How Can I Accurately Determine if 24 Hours Have Passed Between Two Datetimes in Python?

Bestimmen, ob 24 Stunden zwischen Datums- und Uhrzeitangaben verstrichen sind, mit Python

In Python können Sie den Zeitunterschied zwischen zwei Datums- und Uhrzeitangaben bequem mithilfe der Datums- und Uhrzeitangabe ermitteln Modul. Dies ist besonders nützlich in Szenarien, in denen Sie überprüfen müssen, ob ein bestimmter Zeitraum, z. B. 24 Stunden, vergangen ist.

Betrachten Sie die folgende Methode:

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")
Nach dem Login kopieren

Diese Methode berechnet den Zeitunterschied zwischen der aktuellen Zeit und last_updated, einem bestimmten Datum/Uhrzeit-Objekt. Wenn 24 Stunden vergangen sind, wird „Hallo“ ausgegeben. andernfalls wird „nichts tun“ ausgegeben.

Allerdings reicht die Methode nicht aus, um den 24-Stunden-Zeitunterschied genau zu bestimmen. Hier sind genauere Lösungen:

UTC-Zeit

Wenn last_updated ein naives Datetime-Objekt (ohne Zeitzoneninformationen) ist, das die UTC-Zeit darstellt:

from datetime import datetime, timedelta

if (datetime.utcnow() - last_updated) > timedelta(hours=24):
    # More than 24 hours passed
Nach dem Login kopieren

Ortszeit

Wenn last_updated ein naives Datetime-Objekt ist (ohne Zeitzoneninformationen), die die Ortszeit darstellen:

import time

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

Zeitzonen und mehrdeutige Zeiten

Wenn last_updated eine mehrdeutige Zeit ist (z. B. während eines DST-Übergangs), Sie Sie können das Pytz-Modul verwenden, um die Genauigkeit sicherzustellen:

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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich in Python genau feststellen, ob zwischen zwei Datums- und Uhrzeitangaben 24 Stunden vergangen sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage