So berechnen Sie den Zeitunterschied in Python

Wenn Sie in Python mit Datums- und Uhrzeitangaben arbeiten, müssen Sie häufig die Zeitdifferenz berechnen. In diesem Lernprogramm erfahren Sie, wie Sie die Differenz zwischen zwei Zeitstempeln in Stunden, Minuten und Sekunden berechnen.

Am Ende dieses Tutorials haben Sie Folgendes gelernt:

  • wie man das datetime-Modul von Python verwendet, um mit Datum und Uhrzeit zu arbeiten,
  • was timedelta-Objekte sind und wie sie nützlich sind, und
  • Berechnen Sie den Zeitunterschied zwischen zwei beliebigen Zeitstempeln – in Stunden, Minuten und Sekunden.

Lass uns anfangen.

So verwenden Sie das Datetime-Modul von Python

Um mit Datums- und Zeitangaben in Python zu arbeiten, verwenden Sie das datetime-Modul. Das datetime-Modul ist Teil der Python-Standardbibliothek. Sie können es also sofort in Ihre Arbeitsumgebung importieren, wie folgt:

import datetime

Um die Zeitdifferenz zu berechnen, müssen Sie zwei verschiedene Zeitstempel erstellen. Sie können Folgendes erstellen:

  • zwei Datumsobjekte,
  • zwei Zeitobjekte, bzw
  • eine Kombination aus Datum und Uhrzeit – datetime-Objekte.

So erstellen Sie ein Datumsobjekt in Python

Lassen Sie uns die Datumsklasse aus dem datetime-Modul importieren. Um ein Datumsobjekt in Python zu erstellen, können Sie die allgemeine Syntax datetime.date(,,) verwenden. Hier ist ein Beispiel für die Erstellung eines Datumsobjekts date1:

from datetime import date
date1 = datetime.date(2022,3,27)
print(date1)

# Output: 2022-03-27

Sie können den Code auf dem wdzwdz-Python-Compiler testen. Oder installieren Sie Python auf Ihrem Computer.

Wie oben gezeigt, wird das Datum beim Drucken im Format JJJJ-MM-TT für Datumsangaben formatiert.

Hinweis: Stellen Sie sicher, dass Sie den Monat als Ganzzahl ohne führende Nullen angeben. Es ist wahrscheinlich, dass Sie es gewohnt sind, dem Monat eine führende Null hinzuzufügen, wenn Sie Datumsangaben notieren.

Um beispielsweise ein Datum im Juni, dem 6. Monat des Jahres, anzugeben: Verwenden Sie 6 und nicht 06.

Versuchen Sie beispielsweise, das folgende Code-Snippet auszuführen – wobei der Monat als 03 statt nur als 3 erwähnt wurde. Sie werden sehen, dass es einen Syntaxfehler wie gezeigt auslöst:

date1 = datetime.date(2022,03,27)

print(date1)

# Error Message
File "<ipython-input-12-6eb72084e6ce>", line 1
    date1 = datetime.date(2022,03,27)
                                ^
SyntaxError: invalid token

Sehen wir uns nun an, wie man ein Zeitobjekt in Python erstellt.

  Wie deaktiviere ich AWS EC2-Metadaten?

So erstellen Sie ein Zeitobjekt in Python

Um ein Zeitobjekt zu erstellen, importieren wir die Zeitklasse. Jedes Python-Zeitobjekt kann mit der Zeitklasse erstellt werden, indem die folgenden Klassenattribute angegeben werden: Stunde, Minute, Sekunde und Mikrosekunde.

Alle diese Attribute sind jedoch optional. Wenn Sie beispielsweise ein bestimmtes Attribut nicht angeben, wird es standardmäßig auf 0 gesetzt.

Das folgende Code-Snippet zeigt, wie Sie ein Zeitobjekt time1 erstellen können. Wie beim Datumsobjekt können Sie das Zeitobjekt ausdrucken, um die formatierte Zeit anzuzeigen.

from datetime import time
time1 = datetime.time(13,27,45,4600)
print(time1)

# Output: 13:27:45.004600

So erstellen Sie ein Datetime-Objekt in Python

Wie Sie sehen können, enthält das Datumsobjekt keine Zeitinformationen. Und das Zeitobjekt enthält keine Informationen über das Datum.

In der Praxis benötigen Sie jedoch sowohl die Datums- als auch die Uhrzeitinformationen. Daher wird empfohlen, stattdessen die datetime-Klasse zu verwenden.

Sie können auf die datetime-Klasse zugreifen und datetime-Objekte in Python erstellen, wie unten gezeigt:

dt1 = datetime.datetime(2022,3,27,13,27,45,46000)
print(dt1)

# Output: 2022-03-27 13:27:45.046000

Lassen Sie uns nun ein weiteres datetime-Objekt dt2 ohne das zweite Attribut erstellen. Sie können sehen, dass es auf 0 gesetzt ist – der Standardwert.

dt2 = datetime.datetime(2022,6,30,14,28)
print(dt2)

# Output: 2022-06-30 14:28:00

Bisher haben Sie gelernt, wie Sie Zeitstempel in Python erstellen – als Datum, Uhrzeit und Datumszeit. Jetzt ist es an der Zeit zu sehen, wie Sie die Differenz zwischen zwei beliebigen Zeitstempeln berechnen können.

Gehen Sie zum nächsten Abschnitt, um es herauszufinden.

So verwenden Sie das Timedelta-Objekt in Python

In Python bezeichnet timedelta eine Zeitspanne. Es ist der Unterschied zwischen zwei date-, time- oder datetime-Objekten.

Wenn Sie zwei date-, time- oder datetime-Objekte addieren oder subtrahieren, erhalten Sie ein timedelta-Objekt. Dieses timedelta-Objekt verfügt über nützliche Attribute und Methoden, die bei der Berechnung des Zeitunterschieds helfen können.

Lassen Sie uns fortfahren und die Differenz zwischen den beiden Datetime-Objekten dt1 und dt2 berechnen.

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)) 

# Output 
95 days, 1:00:14.954000 
<class 'datetime.timedelta'>

Aus dem obigen Codeausschnitt können Sie sehen, dass die Variable tdelta die Zeitdifferenz zwischen dt1 und dt2 enthält. Und der Typ von tdelta wird mithilfe von Pythons eingebautem Code als der Klasse timedelta verifiziert Typ() Funktion.

  So richten Sie eine intelligente Garage ein

Lassen Sie uns nun ein weiteres Beispiel codieren.

So finden Sie den Zeitunterschied zwischen zwei Daten

Nehmen wir ein einfaches, aber interessantes Beispiel.

Problem: Um die Zeitdifferenz zwischen dem aktuellen Datum (heute) und Ihrem Geburtstag zu berechnen.
Legen Sie dazu als ersten Zeitstempel heute und als zweiten Zeitstempel Ihren Geburtstag fest.

Als ersten Schritt erstellen wir zwei datetime-Objekte:

  • eine für heute, nennen wir es heute, und
  • noch eins für deinen Geburtstag, nennen wir es Bday

Die datetime-Klasse hat die now()-Methode, die Ihnen das aktuelle lokale Datum und die aktuelle Uhrzeit liefert. Verwenden wir es also heute – unser Referenzdatum.

today = datetime.datetime.now()
print(today)

# Sample Output: 2022-01-22 09:10:18.489538

Ersetzen Sie im folgenden Code bday durch Ihren Geburtstag, um die verbleibende Zeit für Ihren Geburtstag in diesem Jahr zu berechnen.

Wenn Sie dies nach Ihrem Geburtstag lesen, können Sie bday gerne auf Ihren nächsten Geburtstag setzen.

bday = datetime.datetime(2022,8,30,11,59)
print(bday)

# Sample Output: 2022-08-30 11:59:00

Der nächste Schritt besteht darin, time_diff zu berechnen, bei dem es sich um ein Timedleta-Objekt handelt, wie zuvor erläutert. Subtrahieren Sie einfach heute von Ihrem bday, und Sie haben die Zeitverschiebung.

time_diff = bday - today
print(f"Your birthday is in {time_diff}")

# Output
Your birthday is in 220 days, 2:46:00.127416

Um die Anzahl der verbleibenden Tage zu erfahren, verwenden Sie das Attribut days für time_diff wie gezeigt:

tdays = time_diff.days
print(f"Your birthday is in {tdays} days.")

# Output
Your birthday is in 220 days.

So finden Sie den Zeitunterschied in Sekunden

Lassen Sie uns jetzt berechnen, wie viele Sekunden Ihr Geburtstag entfernt ist.

Um die Gesamtzeitdifferenz in Sekunden zu berechnen, verwenden Sie die Methode total_seconds() für das timedelta-Objekt time_diff.

tsecs = time_diff.total_seconds()
print(f"Your birthday is {tsecs} seconds away.")

# Output
Your birthday is 19017960.127416 seconds away.

Nun, das ist zu lange warten!

  So deinstallieren Sie Boxbe

Allerdings wissen Sie jetzt, wie Sie die Zeitdifferenz zwischen zwei beliebigen Zeitstempeln in Sekunden berechnen.

Lassen Sie uns nun einige Grundlagen wiederholen und das Folgende aufschreiben. Ein Tag besteht aus 24 Stunden, eine Stunde ist 60 Minuten lang und 60 Sekunden ergeben eine Minute.

Dies ist im folgenden Bild zusammengefasst:

Stunden, Minuten und Sekunden

Um also von Sekunden in Minuten, Stunden und Tage umzurechnen, können Sie die folgende Tabelle verwenden und durch den entsprechenden Umrechnungsfaktor dividieren.

Zeitumrechnungstabelle

In den nächsten Abschnitten konvertieren wir den Zeitunterschied in Sekunden in Minuten und Stunden.

So finden Sie den Zeitunterschied in Minuten

Um den Zeitunterschied in Minuten zu erhalten, müssen Sie nur die Gesamtsekunden durch 60 teilen.

Teilen wir tsecs durch 60 und speichern es in einer Variablen namens tmins, wie folgt:

tmins = tsecs/60
print(f"Your birthday is {tmins} minutes away.")

# Output
Your birthday is 316966.0021236 minutes away.

So finden Sie den Zeitunterschied in Stunden

Nachdem Sie nun die Zeitdifferenz in Minuten berechnet haben, können Sie diese durch den Faktor 60 dividieren, um die Differenz in Stunden zu erhalten. Oder Sie könnten die Gesamtsekunden durch 60*60 = 3600 teilen.

thrs = tsecs/(60*60)
print(f"Your birthday is {thrs} hours away.")

# Output
Your birthday is 5282.76670206 hours away.

Sie haben jetzt also gelernt, wie Sie den Zeitunterschied in einer beliebigen Einheit Ihrer Wahl berechnen können.

Fazit

In diesem Tutorial haben Sie gelernt, wie Sie:

  • erstellen und arbeiten Sie mit Datums- und Uhrzeitangaben mit dem Datetime-Modul von Python,
  • Verwenden Sie timedelta-Objekte, um eine Zeitspanne oder einen Zeitunterschied zu erhalten, und
  • Berechnen Sie die Zeitdifferenz in Sekunden, Minuten und Stunden.

Ich hoffe, Sie fanden dieses Tutorial hilfreich. Jetzt, da Sie alles über die Berechnung des Zeitunterschieds in Python wissen, ist es an der Zeit, Ihre Fähigkeiten in die Praxis umzusetzen.

Viel Spaß beim Lernen und Programmieren!

Erfahren Sie hier, wie Sie gleich oder ungleich Code schreiben oder ein Schlangenspiel in Python erstellen.