Berechnen Sie das Datum mit Python Timedelta Months
In dieser Anleitung lernen wir die Verwendung von datetime
in Python mit dem timedelta
. Wir werden sehen, wie wir das Datum sechs Monate nach dem aktuellen Datum oder einem anderen Datum berechnen können.
Tauchen wir ein!
Python-Funktion datetime
Nun, zuerst schauen wir uns an, wie die Funktion datetime
funktioniert und was der Nachteil ist, der die Funktionalitäten für uns einschränkt. Das erste, was Sie wissen müssen, ist, die datetime
in Ihren Code zu importieren.
import datetime
Danach erstellen Sie die Instanz von datetime
. Nachdem Sie die Instanz erstellt haben, können Sie ihre arithmetischen Funktionen verwenden.
Sie können einen Tag und einen Monat abziehen. Sehen Sie sich den folgenden Code an.
# instance of datetime
date = datetime.datetime(2022, 2, 1)
# subtracting 1 from the month
date = date.replace(month=date.month - 1)
print(date)
Ausgang:
2022-01-01 00:00:00
Wie Sie im obigen Code sehen können, haben wir mit Hilfe einer arithmetischen Funktion einen Monat von dem zuvor festgelegten Datum abgezogen. Aber hier ist ein Haken, was ist, wenn wir versuchen, einen Monat vom obigen Ergebnis abzuziehen?
Der Code gibt uns einen Fehler. Schau mal.
date = date.replace(month=date.month - 1)
Ausgang:
date = date.replace(month=date.month-1)
ValueError: month must be in 1..12
Die Funktion datetime
erlaubt es uns nicht, arithmetische Funktionen zu verwenden und ein ganzes Jahr abzuziehen, weil sie dies nicht unterstützt. Wenn wir 1 oder 2 hinzufügen würden, während das aktuelle Datum in den letzten Dezembertagen liegt, würde es den gleichen Fehler geben.
# if you add 1 in date, it will throw an error because it doesn't support it
date = datetime.datetime(2022, 12, 1)
date_ = date.replace(month=date_1.month + 1)
Ausgang:
date = date.replace(month=date.month+1)
ValueError: month must be in 1..12
Um auf die Frage zurückzukommen, wie können wir das Datum sechs Monate nach dem aktuellen Datum oder einem anderen Datum berechnen? Die Antwort liegt in der Verwendung von relativedelta
.
Verwenden Sie relativedelta()
, um das Datum mit Python zu berechnen
Bevor wir fortfahren und relativedelta
in unserem Python-Code verwenden, müssen wir dateutil
installieren, um das relativedelta
daraus zu importieren. Führen Sie Folgendes in Ihrer Eingabeaufforderung aus, um das dateutil
zu installieren.
pip install python-dateutil
Nach der Installation müssen Sie das relativedelta
daraus importieren.
from dateutil import relativedelta
Danach müssen wir sowohl datetime
als auch relativedelta
verwenden, um das aktuelle Problem zu lösen. Sehen Sie sich den folgenden Code an.
date = datetime.datetime(2022, 1, 1)
# created the instance of the datetime and set the current date as 2022,1,1
Jetzt erstellen wir die Instanz von relativedelta
und setzen den Wert des Monats auf 1
.
r_date = relativedelta.relativedelta(months=1)
Jetzt müssen wir nur noch die Instanz von relativedelta
von der Instanz von datetime
subtrahieren. Es wird uns unsere gewünschte Antwort geben.
# if you subtract the relativedelta variable with the date instance, it will work correctly and change the year too.
new_date = date - r_date
print(new_date)
Ausgang:
2021-12-01 00:00:00
Ähnlich, wenn wir 1 zum Datum hinzufügen würden, würden wir die gewünschte Ausgabe erhalten.
Jetzt können wir diese Technik verwenden, um ein beliebiges Datum aus dem aktuellen Datum zu berechnen. Das beantwortet, wie wir das Datum von sechs Monaten ab dem aktuellen Datum berechnen können.
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn