Ich sehe, dass Datumsvergleiche durchgeführt werden können und es gibt auch datetime.timedelta()
, aber ich habe Schwierigkeiten herauszufinden, wie ich überprüfen kann, ob die aktuelle Zeit ( datetime.datetime.now()
) früher, später oder gleich einer bestimmten Zeit (z. B. 8 Uhr morgens) ist, unabhängig vom Datum.
python
time
comparison
Steve Jay
quelle
quelle
'23:23:00' > '23:59:00'
oder akzeptiert'23:23:00' > '23:09:22'
, genau wie Sie es zwischen zweidatetime.datetime.now().strftime('%H:%M')
Werten tun würden . Ist es der beste Weg, um einen Vergleich zwischen den Zeiten zu erreichen? Ich weiß es nicht. Funktioniert es? Soweit ich getestet habe, hat es gut funktioniert. Aber definitiv (und natürlich): keine Chance, dies mit einer Datums- / Uhrzeitzeichenfolge zu verwenden, die Monat und Wochentage hat.Antworten:
Das kannst du nicht einen bestimmten Zeitpunkt (z. B. "gerade jetzt") nicht mit einem nicht festgelegten, wiederkehrenden Ereignis vergleichen (jeden Tag um 8 Uhr morgens).
Sie können überprüfen, ob jetzt vor oder nach dem heutigen 8 Uhr morgens ist:
quelle
Sie können die Verwendung
time()
Methode derdatetime
Objekte die Tageszeit zu erhalten, die Sie für den Vergleich , ohne das Datum berücksichtigt verwenden können:quelle
datetime.datetime.now().time()
, vergessen Sie nicht die Klammern innow()
!Sie können datetime.datetime-Objekte direkt vergleichen
Z.B:
quelle
Inspiriert von Roger Pate:
quelle
Eine andere Möglichkeit, dies zu tun, ohne Abhängigkeiten hinzuzufügen oder datetime zu verwenden, besteht darin, einfach die Attribute des Zeitobjekts zu berechnen. Es hat Stunden, Minuten, Sekunden, Millisekunden und eine Zeitzone. Für sehr einfache Vergleiche sollten Stunden und Minuten ausreichen.
Ich empfehle dies nur, wenn Sie einen unglaublich einfachen Anwendungsfall haben. Für alles, was Zeitzonen- oder Datumserkennung erfordert, sollten Sie datetime verwenden.
quelle
datetime haben Vergleichsmöglichkeiten
quelle
Überrascht habe ich diesen einen Liner hier nicht gesehen:
quelle
Sie können die Timedelta-Funktion für den Vergleich der x-Zeiterhöhung verwenden.
Nur eine Kombination dieser Antworten dies und Roger
quelle