Ich habe ein Python- datetime.datetime
Objekt. Was ist der beste Weg, um einen Tag zu subtrahieren?
762
Ich habe ein Python- datetime.datetime
Objekt. Was ist der beste Weg, um einen Tag zu subtrahieren?
Antworten:
Sie können ein Timedelta- Objekt verwenden:
quelle
timedelta(minutes=12)
zum Beispiel mit verwendet.import datetime as DT; DT.datetime.today()
sowohl auf Python 2 als auch auf Python 3 funktionierenDT.datetime.now()
.Subtrahieren
datetime.timedelta(days=1)
quelle
Wenn Ihr Python-Datum / Uhrzeit-Objekt zeitzonenabhängig ist, sollten Sie darauf achten, Fehler bei Sommerzeitübergängen (oder Änderungen des UTC-Versatzes aus anderen Gründen) zu vermeiden:
Im Allgemeinen
day_ago
undyesterday
kann abweichen, wenn sich der UTC-Offset für die lokale Zeitzone am letzten Tag geändert hat.Beispielsweise endet die Sommerzeit / Sommerzeit am 2. November 2014 um 02:00:00 Uhr in der Zeitzone America / Los_Angeles, wenn:
dann
day_ago
undyesterday
unterscheiden:day_ago
ist genau vor 24 Stunden (relativ zunow
) aber um 11 Uhr, nicht um 10 Uhr alsnow
yesterday
ist gestern um 10 Uhr, aber es ist 25 Stunden her (relativ zunow
), nicht 24 Stunden.pendulum
Modul behandelt es automatisch:quelle
Nur um eine alternative Methode und einen Anwendungsfall zu erarbeiten, für die es hilfreich ist:
Es kann in ähnlicher Weise mit anderen Parametern verwendet werden, z. B. Sekunden, Wochen usw.
quelle
Auch nur eine weitere nette Funktion, die ich gerne benutze, wenn ich den ersten / letzten Tag des letzten Monats oder andere relative Zeitpläne usw. berechnen möchte ... ...
Die relativedelta-Funktion von dateutil (eine leistungsstarke Erweiterung der datetime lib)
quelle
Geniales Pfeilmodul existiert
Ausgabe:
quelle