Zeit in Python datetime hinzufügen

PythonBeginner
Jetzt üben

Einführung

Das Python-Modul datetime ist ein leistungsstarkes Werkzeug für die Arbeit mit Datums- und Uhrzeitangaben. Dieses Tutorial führt Sie durch verschiedene Methoden zum Hinzufügen von Zeitangaben zu datetime-Objekten und hilft Ihnen, präzise und flexible Zeitberechnungen in Python durchzuführen. Sie lernen, wie Sie timedelta für einfache Additionen verwenden und praktische Beispiele für die Zeitmanipulation kennenlernen.

Verständnis von Python Datetime

Bevor Sie Zeit hinzufügen, ist es wichtig, die grundlegenden Komponenten des datetime-Moduls zu verstehen.

Kernkomponenten von Datetime

Das datetime-Modul stellt mehrere wichtige Klassen bereit:

Klasse Beschreibung
date Repräsentiert ein Datum (Jahr, Monat, Tag)
time Repräsentiert eine Uhrzeit (Stunde, Minute, Sekunde)
datetime Kombiniert Datum und Uhrzeit
timedelta Repräsentiert eine Zeitdauer

Erstellen von Datetime-Objekten

Sie können datetime-Objekte auf verschiedene Weise erstellen. Lassen Sie uns einen einfachen Python-Skript erstellen, um zu sehen, wie es geht.

Öffnen Sie das integrierte Terminal im WebIDE und navigieren Sie gegebenenfalls zum Projektverzeichnis.

cd ~/project

Erstellen Sie mit dem Datei-Explorer des WebIDE oder der Kommandozeile eine neue Datei namens datetime_basics.py im Verzeichnis ~/project.

touch datetime_basics.py

Öffnen Sie datetime_basics.py im WebIDE-Editor und fügen Sie den folgenden Code hinzu:

from datetime import date, time, datetime

## Erstellen eines Datumsobjekts
current_date = date.today()
print(f"Aktuelles Datum: {current_date}")

## Erstellen eines Zeitobjekts (aus aktuellem datetime)
current_time = datetime.now().time()
print(f"Aktuelle Uhrzeit: {current_time}")

## Erstellen eines datetime-Objekts
current_datetime = datetime.now()
print(f"Aktuelles Datum und Uhrzeit: {current_datetime}")

## Erstellen eines spezifischen datetime-Objekts
specific_datetime = datetime(2023, 6, 15, 14, 30, 45)
print(f"Spezifisches Datum und Uhrzeit: {specific_datetime}")

Speichern Sie die Datei. Führen Sie den Skript nun vom Terminal aus:

python datetime_basics.py

Sie erhalten eine Ausgabe ähnlich dieser:

Aktuelles Datum: YYYY-MM-TT
Aktuelle Uhrzeit: HH:MM:SS.Mikrosekunden
Aktuelles Datum und Uhrzeit: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Spezifisches Datum und Uhrzeit: 2023-06-15 14:30:45

Dies zeigt, wie Sie grundlegende date, time und datetime-Objekte erstellen.

Wichtige Datetime-Attribute

datetime-Objekte verfügen über Attribute wie year, month, day, hour, minute und second, auf die Sie zugreifen können.

Fügen wir unserem datetime_basics.py-Skript hinzu, um den Zugriff auf diese Attribute zu demonstrieren.

Öffnen Sie datetime_basics.py erneut und fügen Sie die folgenden Zeilen am Ende hinzu:

print(f"Jahr: {specific_datetime.year}")
print(f"Monat: {specific_datetime.month}")
print(f"Tag: {specific_datetime.day}")
print(f"Stunde: {specific_datetime.hour}")
print(f"Minute: {specific_datetime.minute}")
print(f"Sekunde: {specific_datetime.second}")

Speichern Sie die Datei und führen Sie sie erneut aus:

python datetime_basics.py

Die Ausgabe enthält nun die einzelnen Komponenten des specific_datetime:

Aktuelles Datum: YYYY-MM-TT
Aktuelle Uhrzeit: HH:MM:SS.Mikrosekunden
Aktuelles Datum und Uhrzeit: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Spezifisches Datum und Uhrzeit: 2023-06-15 14:30:45
Jahr: 2023
Monat: 6
Tag: 15
Stunde: 14
Minute: 30
Sekunde: 45

Das Verständnis dieser Grundlagen ist der erste Schritt zur Durchführung von Zeitadditionen.

Zeit hinzufügen mit timedelta

Die häufigste Methode, um einer datetime-Variable in Python Zeit hinzuzufügen, ist die Verwendung der Klasse timedelta. Ein timedelta-Objekt repräsentiert eine Zeitdauer.

Erstellen von timedelta-Objekten

Sie können timedelta-Objekte mit verschiedenen Zeiteinheiten wie days, hours, minutes, seconds, milliseconds und microseconds erstellen.

Lassen Sie uns einen neuen Python-Skript erstellen, um timedelta zu erkunden.

Erstellen Sie eine neue Datei namens time_addition.py im Verzeichnis ~/project.

touch time_addition.py

Öffnen Sie time_addition.py und fügen Sie den folgenden Code hinzu:

from datetime import datetime, timedelta

## Aktuelles Datum und Uhrzeit abrufen
current_datetime = datetime.now()
print(f"Aktuelles Datum und Uhrzeit: {current_datetime}")

## timedelta von 5 Tagen erstellen
five_days = timedelta(days=5)
print(f"Timedelta von 5 Tagen: {five_days}")

## timedelta von 3 Stunden und 30 Minuten erstellen
three_hours_thirty_minutes = timedelta(hours=3, minutes=30)
print(f"Timedelta von 3 Stunden 30 Minuten: {three_hours_thirty_minutes}")

## timedelta von 1 Woche und 2 Tagen erstellen
one_week_two_days = timedelta(weeks=1, days=2)
print(f"Timedelta von 1 Woche 2 Tagen: {one_week_two_days}")

Speichern Sie die Datei und führen Sie sie aus:

python time_addition.py

Die Ausgabe zeigt das aktuelle Datum und die Uhrzeit sowie die erstellten timedelta-Objekte:

Aktuelles Datum und Uhrzeit: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Timedelta von 5 Tagen: 5 Tage, 0:00:00
Timedelta von 3 Stunden 30 Minuten: 3:30:00
Timedelta von 1 Woche 2 Tagen: 9 Tage, 0:00:00

Beachten Sie, dass timedelta(weeks=1, days=2) als 9 Tage dargestellt wird. timedelta normalisiert die Dauer in Tage, Sekunden und Mikrosekunden.

Hinzufügen von timedelta zu datetime

Sie können ein timedelta-Objekt zu einem datetime-Objekt hinzufügen, um ein neues datetime-Objekt zu erhalten, das einen zukünftigen Zeitpunkt darstellt.

Fügen wir dem time_addition.py-Skript Code hinzu, um die Zeitaddition durchzuführen.

Öffnen Sie time_addition.py und fügen Sie die folgenden Zeilen am Ende hinzu:

## 5 Tage zum aktuellen Datum und Uhrzeit hinzufügen
future_datetime_days = current_datetime + five_days
print(f"Datum und Uhrzeit nach 5 Tagen: {future_datetime_days}")

## 3 Stunden und 30 Minuten zum aktuellen Datum und Uhrzeit hinzufügen
future_datetime_hours_minutes = current_datetime + three_hours_thirty_minutes
print(f"Datum und Uhrzeit nach 3 Stunden 30 Minuten: {future_datetime_hours_minutes}")

## 1 Woche und 2 Tage zum aktuellen Datum und Uhrzeit hinzufügen
future_datetime_weeks_days = current_datetime + one_week_two_days
print(f"Datum und Uhrzeit nach 1 Woche 2 Tagen: {future_datetime_weeks_days}")

Speichern Sie die Datei und führen Sie sie aus:

python time_addition.py

Die Ausgabe zeigt nun das ursprüngliche Datum und die Uhrzeit sowie die resultierenden Datums- und Uhrzeitwerte nach dem Hinzufügen der timedelta-Objekte:

Aktuelles Datum und Uhrzeit: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Timedelta von 5 Tagen: 5 Tage, 0:00:00
Timedelta von 3 Stunden 30 Minuten: 3:30:00
Timedelta von 1 Woche 2 Tagen: 9 Tage, 0:00:00
Datum und Uhrzeit nach 5 Tagen: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Datum und Uhrzeit nach 3 Stunden 30 Minuten: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Datum und Uhrzeit nach 1 Woche 2 Tagen: YYYY-MM-TT HH:MM:SS.Mikrosekunden

Die Ausgabe zeigt die neuen Datums- und Uhrzeitwerte nach den Additionen. Dies demonstriert die grundlegende Verwendung von timedelta zum Hinzufügen von Zeit.

Praktische Zeitberechnungen

timedelta ist sehr nützlich für praktische Zeitberechnungen, wie z. B. das Ermitteln eines Datums in der Zukunft oder die Berechnung der Dauer zwischen zwei Zeitpunkten.

Berechnen zukünftiger Daten

Sie können leicht ein Datum um eine bestimmte Anzahl von Tagen, Wochen oder sogar Jahren in die Zukunft berechnen (indem Sie Jahre in Tage umrechnen).

Fügen wir time_addition.py eine Funktion hinzu, um ein zukünftiges Datum zu berechnen.

Öffnen Sie time_addition.py und fügen Sie die folgende Funktionsdefinition und -nutzung am Ende hinzu:

def get_future_date(start_date, days_to_add):
    """Berechnet ein zukünftiges Datum, indem eine Anzahl von Tagen hinzugefügt wird."""
    future_date = start_date + timedelta(days=days_to_add)
    return future_date

## Beispiel: Ermitteln Sie das Datum in 30 Tagen
thirty_days_from_now = get_future_date(datetime.now(), 30)
print(f"Datum in 30 Tagen: {thirty_days_from_now}")

Speichern Sie die Datei und führen Sie sie aus:

python time_addition.py

Die Ausgabe enthält nun das Datum in 30 Tagen ab dem aktuellen Datum:

Aktuelles Datum und Uhrzeit: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Timedelta von 5 Tagen: 5 Tage, 0:00:00
Timedelta von 3 Stunden 30 Minuten: 3:30:00
Timedelta von 1 Woche 2 Tagen: 9 Tage, 0:00:00
Datum und Uhrzeit nach 5 Tagen: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Datum und Uhrzeit nach 3 Stunden 30 Minuten: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Datum und Uhrzeit nach 1 Woche 2 Tagen: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Datum in 30 Tagen: YYYY-MM-TT HH:MM:SS.Mikrosekunden

Berechnen von Zeitdifferenzen

Sie können auch ein datetime-Objekt von einem anderen subtrahieren, um ein timedelta-Objekt zu erhalten, das die Dauer zwischen ihnen darstellt.

Fügen wir time_addition.py Code hinzu, um die Differenz zwischen zwei Daten zu berechnen.

Öffnen Sie time_addition.py und fügen Sie den folgenden Code am Ende hinzu:

## Berechnen Sie die Differenz zwischen zwei spezifischen Datums- und Uhrzeiten
date1 = datetime(2023, 1, 1)
date2 = datetime(2023, 12, 31)

time_difference = date2 - date1
print(f"Differenz zwischen {date1} und {date2}: {time_difference}")

## Zugriff auf Komponenten der timedelta-Differenz
print(f"Tage Differenz: {time_difference.days}")
print(f"Gesamte Sekunden Differenz: {time_difference.total_seconds()}")

Speichern Sie die Datei und führen Sie sie aus:

python time_addition.py

Die Ausgabe zeigt die Differenz zwischen den beiden Daten:

Aktuelles Datum und Uhrzeit: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Timedelta von 5 Tagen: 5 Tage, 0:00:00
Timedelta von 3 Stunden 30 Minuten: 3:30:00
Timedelta von 1 Woche 2 Tagen: 9 Tage, 0:00:00
Datum und Uhrzeit nach 5 Tagen: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Datum und Uhrzeit nach 3 Stunden 30 Minuten: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Datum und Uhrzeit nach 1 Woche 2 Tagen: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Datum in 30 Tagen: YYYY-MM-TT HH:MM:SS.Mikrosekunden
Differenz zwischen 2023-01-01 00:00:00 und 2023-12-31 00:00:00: 364 Tage, 0:00:00
Tage Differenz: 364
Gesamte Sekunden Differenz: 31449600.0

Dies zeigt, wie timedelta sowohl zum Hinzufügen von Zeit als auch zur Berechnung der Dauer zwischen zwei Zeitpunkten verwendet wird. Dies sind grundlegende Operationen für viele zeitbasierte Anwendungen.

Zusammenfassung

In diesem Labor haben Sie die Grundlagen des Python-Moduls datetime kennengelernt, einschließlich der Erstellung von date, time und datetime-Objekten. Sie haben erforscht, wie die Klasse timedelta verwendet wird, um Zeitdauern darzustellen, und wie timedelta-Objekte zu datetime-Objekten hinzugefügt werden, um Zeitadditionen durchzuführen. Sie haben auch praktische Zeitberechnungen geübt, wie z. B. das Finden zukünftiger Daten und die Berechnung der Differenz zwischen zwei Datums- und Uhrzeiten. Diese Fähigkeiten sind unerlässlich für die Handhabung zeitbasierter Operationen in Ihren Python-Programmen.