Wenn Sie nur Daten vergleichen möchten,
yourdatetime.date() < datetime.today().date()
Oder natürlich
yourdatetime.date() == datetime.today().date()
Wenn Sie überprüfen möchten, ob sie das gleiche Datum haben.
Die Dokumentation ist normalerweise hilfreich. Es ist normalerweise auch das erste Google-Ergebnis für python thing_i_have_a_question_about
. Es sei denn, Ihre Frage bezieht sich auf eine Funktion / ein Modul namens "Schlange".
Grundsätzlich verfügt das datetime
Modul über drei Typen zum Speichern eines Zeitpunkts:
date
für Jahr, Monat, Tag des Monats
time
für Stunden, Minuten, Sekunden, Mikrosekunden, Zeitzoneninformationen
datetime
kombiniert Datum und Uhrzeit. Es hat die Methoden date()
und time()
um die entsprechenden date
und time
Objekte zu erhalten, und es gibt eine praktische combine
Funktion zum Kombinieren date
und time
in eine datetime
.
Wenn Sie nur den Wert des Tages des Monats vergleichen müssen, können Sie den folgenden Code verwenden:
Wenn Sie überprüfen müssen, ob der Unterschied zwischen zwei Daten akzeptabel ist, können Sie timedelta verwenden :
Und wenn Sie nur den Datumsteil vergleichen möchten, können Sie einfach Folgendes verwenden:
Beachten Sie, dass timedelta das folgende Format hat:
So können Sie den Unterschied in Tagen, Sekunden, ms, Minuten usw. überprüfen, je nachdem, was Sie wirklich benötigen:
In Ihrem Fall, wenn Sie überprüfen müssen, ob zwei Daten genau gleich sind, können Sie timedelta (0) verwenden:
quelle
.day
ist der Tag des Monats. Der 12. August ist also "gleich" wie der 12. Dezember mit Ihrem ersten Codeausschnitt. Das ist wahrscheinlich nicht das Verhalten, das das OP will.Sie können die Stunden, Minuten, Sekunden und Mikrosekunden nach Belieben einstellen
Aber die Antwort der Wahrheit ist wahrscheinlich die beste, wenn sie alle Null sein sollen und man einfach die
.date()
s der Zeiten vergleichen kannVielleicht ist es jedoch schneller, wenn Sie Hunderte von Datenzeiten vergleichen müssen, da Sie nur
replace()
einmal oder Hunderte von Anrufen durchführen müssendate()
quelle
Man sollte mit vergleichen
.date()
, aber ich lasse diese Methode als Beispiel für den Fall, dass man zum Beispiel Dinge nach Monat oder nach Minute usw. vergleichen möchte.quelle