Zeitdifferenzen in Python berechnen: Eine ausführliche Anleitung
Bei der Arbeit mit Datums- und Uhrzeitangaben in Python ist es oft erforderlich, die Zeitdifferenz zwischen zwei Zeitpunkten zu ermitteln. In dieser Anleitung erfahren Sie detailliert, wie Sie diese Differenz in Stunden, Minuten und Sekunden präzise berechnen können.
Nach Durcharbeitung dieses Tutorials werden Sie:
- Den Umgang mit dem Python
datetime
-Modul zur Manipulation von Datum und Uhrzeit verstehen. - Die Natur von
timedelta
-Objekten und deren praktische Anwendungen kennenlernen. - Fähig sein, Zeitdifferenzen zwischen zwei Zeitstempeln in Stunden, Minuten und Sekunden zu berechnen.
Lassen Sie uns direkt beginnen.
Das Python datetime
-Modul: Eine Einführung
Das datetime
-Modul in Python ist Ihr Werkzeug für die Arbeit mit Datum und Uhrzeit. Da es zur Standardbibliothek gehört, kann es ohne zusätzliche Installation importiert werden:
import datetime
Um eine Zeitdifferenz zu berechnen, benötigen Sie zwei verschiedene Zeitstempel. Diese können sein:
- Zwei separate Datumsobjekte,
- Zwei separate Zeitobjekte oder
- Eine Kombination aus beidem – sogenannte
datetime
-Objekte.
Erstellung eines Datumsobjekts
Zuerst importieren wir die date
-Klasse aus dem datetime
-Modul. Ein Datumsobjekt wird mit der Syntax datetime.date(Jahr, Monat, Tag)
erzeugt. Hier ein Beispiel:
from datetime import date date1 = datetime.date(2022, 3, 27) print(date1) # Ausgabe: 2022-03-27
Sie können diesen Code in einem Online-Python-Compiler testen oder Python lokal installieren. Beachten Sie, dass das Datum standardmäßig im Format JJJJ-MM-TT ausgegeben wird.
Wichtig: Monatsangaben müssen als Ganzzahlen ohne führende Nullen erfolgen. Verwenden Sie also für Juni (den 6. Monat) einfach 6 und nicht 06.
Wenn Sie versuchen, den Monat mit einer führenden Null anzugeben, führt dies zu einem Syntaxfehler:
date1 = datetime.date(2022, 03, 27) print(date1) # Fehlermeldung File "<ipython-input-12-6eb72084e6ce>", line 1 date1 = datetime.date(2022,03,27) ^ SyntaxError: invalid token
Als Nächstes sehen wir uns die Erstellung eines Zeitobjekts an.
Erstellung eines Zeitobjekts
Um ein Zeitobjekt zu erzeugen, importieren wir die time
-Klasse. Die Attribute sind optional: Stunde, Minute, Sekunde und Mikrosekunde, wobei fehlende Werte standardmäßig 0 sind. Hier ist ein Beispiel:
from datetime import time time1 = datetime.time(13, 27, 45, 4600) print(time1) # Ausgabe: 13:27:45.004600
Erstellung eines datetime
-Objekts
Während Datumsobjekte keine Zeit- und Zeitobjekte keine Datumsangaben beinhalten, bietet die datetime
-Klasse die perfekte Lösung für die kombinierte Speicherung. Hier ist ein Beispiel:
dt1 = datetime.datetime(2022, 3, 27, 13, 27, 45, 46000) print(dt1) # Ausgabe: 2022-03-27 13:27:45.046000
Erstellen wir nun ein weiteres datetime
-Objekt ohne die Sekundenangabe, die standardmäßig auf 0 gesetzt wird:
dt2 = datetime.datetime(2022, 6, 30, 14, 28) print(dt2) # Ausgabe: 2022-06-30 14:28:00
Sie haben nun gelernt, wie man Zeitstempel als Datum, Zeit und Datum/Zeit in Python erstellt. Betrachten wir nun, wie man die Differenz zwischen diesen Zeitstempeln berechnet.
timedelta
-Objekte in Python
Ein timedelta
-Objekt in Python repräsentiert eine Zeitspanne, d.h. die Differenz zwischen zwei Datum-, Zeit- oder datetime
-Objekten.
Wenn Sie zwei solche Objekte subtrahieren oder addieren, ist das Ergebnis immer ein timedelta
-Objekt. Dieses Objekt besitzt nützliche Attribute und Methoden zur Berechnung von Zeitunterschieden.
Berechnen wir nun die Differenz zwischen dt1
und dt2
:
dt1 = datetime.datetime(2022, 3, 27, 13, 27, 45, 46000) dt2 = datetime.datetime(2022, 6, 30, 14, 28) tdelta = dt2 - dt1 print(tdelta) print(type(tdelta)) # Ausgabe 95 days, 1:00:14.954000 <class 'datetime.timedelta'>
Die Variable tdelta
enthält nun die Zeitdifferenz, wie der Typ datetime.timedelta
bestätigt.
Zeitunterschied zwischen zwei Daten ermitteln
Betrachten wir ein konkretes Beispiel: Die Zeitdifferenz zwischen dem heutigen Datum und Ihrem Geburtstag.
Dazu definieren wir zwei datetime
-Objekte: today
und bday
.
Die datetime
-Klasse bietet die now()
-Methode, um das aktuelle lokale Datum und die aktuelle Uhrzeit zu ermitteln:
today = datetime.datetime.now() print(today) # Beispielausgabe: 2022-01-22 09:10:18.489538
Ersetzen Sie im folgenden Code bday
durch Ihren Geburtstag, um die verbleibende Zeit bis zu Ihrem Geburtstag in diesem Jahr zu berechnen:
bday = datetime.datetime(2022, 8, 30, 11, 59) print(bday) # Beispielausgabe: 2022-08-30 11:59:00
Die Zeitdifferenz time_diff
, ein timedelta
-Objekt, wird berechnet, indem today
von bday
subtrahiert wird:
time_diff = bday - today print(f"Ihr Geburtstag ist in {time_diff}") # Ausgabe Ihr Geburtstag ist in 220 days, 2:46:00.127416
Um die Anzahl der verbleibenden Tage zu erfahren, nutzen Sie das days
-Attribut von time_diff
:
tdays = time_diff.days print(f"Ihr Geburtstag ist in {tdays} Tagen.") # Ausgabe Ihr Geburtstag ist in 220 Tagen.
Zeitunterschied in Sekunden ermitteln
Um die Zeitdifferenz in Sekunden zu berechnen, verwenden wir die total_seconds()
-Methode des timedelta
-Objekts time_diff
:
tsecs = time_diff.total_seconds() print(f"Ihr Geburtstag ist noch {tsecs} Sekunden entfernt.") # Ausgabe Ihr Geburtstag ist noch 19017960.127416 Sekunden entfernt.
Sie wissen nun, wie Sie Zeitdifferenzen in Sekunden berechnen können.
Zur Erinnerung: Ein Tag hat 24 Stunden, eine Stunde hat 60 Minuten und eine Minute hat 60 Sekunden. Dies ist in folgender Tabelle zusammengefasst:
1 Tag | 24 Stunden |
1 Stunde | 60 Minuten |
1 Minute | 60 Sekunden |
Um von Sekunden in Minuten, Stunden und Tage umzurechnen, können Sie durch den entsprechenden Umrechnungsfaktor dividieren.
In den folgenden Abschnitten konvertieren wir die Zeitdifferenz in Sekunden in Minuten und Stunden.
Zeitunterschied in Minuten ermitteln
Um die Zeitdifferenz in Minuten zu erhalten, dividieren Sie die Gesamtsekunden durch 60:
tmins = tsecs / 60 print(f"Ihr Geburtstag ist noch {tmins} Minuten entfernt.") # Ausgabe Ihr Geburtstag ist noch 316966.0021236 Minuten entfernt.
Zeitunterschied in Stunden ermitteln
Um die Zeitdifferenz in Stunden zu erhalten, dividieren Sie die Minuten durch 60 oder die Sekunden durch 3600:
thrs = tsecs / (60 * 60) print(f"Ihr Geburtstag ist noch {thrs} Stunden entfernt.") # Ausgabe Ihr Geburtstag ist noch 5282.76670206 Stunden entfernt.
Sie haben nun gelernt, wie Sie Zeitdifferenzen in jeder gewünschten Einheit berechnen können.
Zusammenfassung
In dieser Anleitung haben Sie gelernt, wie man:
- Mit Datum- und Uhrzeitangaben mit dem Python
datetime
-Modul arbeitet. timedelta
-Objekte zur Darstellung von Zeitspannen verwendet.- Zeitdifferenzen in Sekunden, Minuten und Stunden berechnet.
Ich hoffe, diese Anleitung war hilfreich. Sie sind nun bereit, diese Fähigkeiten in der Praxis anzuwenden.
Viel Spaß beim Lernen und Programmieren!
Erfahren Sie hier, wie Sie Code für Gleichheit oder Ungleichheit schreiben oder ein Schlangenspiel in Python erstellen.