HOWTO · Python
Stunden und Minuten aus Datetime in Python abrufen
Dieses Tutorial demonstriert, wie man mit dem datetime-Modul in Python die Uhrzeit als Stunde und Minute erhält
Auf dieser Seite
Um in Python Stunden- und Minutenwerte zu erhalten, parsen Sie Datums- und Uhrzeittext in ein datetime-Objekt und lesen dessen Attribute .hour und .minute aus. Für die aktuelle Uhrzeit verwenden Sie datetime.now() und formatieren sie entweder mit strftime() oder extrahieren ihren Wert .time(). Verwenden Sie %H:%M oder eine zweistellige Formatierung, wenn Sie eine einheitliche Zeichenkette im 24-Stunden-Format HH:MM benötigen.
Stunde und Minute aus einem bestimmten datetime ermitteln
Verwenden Sie datetime.strptime(), um eine Zeichenkette zu parsen, wenn ihr Datums- und Uhrzeitformat bekannt ist. Die Formatzeichenfolge muss zur Eingabe passen: %d/%m/%y %H:%M steht für Tag, Monat, zweistelliges Jahr und anschließend eine Uhrzeit im 24-Stunden-Format. In diesem Beispiel ist 03/02/21 der 3. Februar 2021; das geparste Objekt enthält als Stunde den Wert 16 und als Minute den Wert 30.
Führen Sie dieses Beispiel aus:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
from datetime import datetime
specific_time = datetime.strptime("03/02/21 16:30", "%d/%m/%y %H:%M")
hour = specific_time.hour
minute = specific_time.minute
formatted_time = f"{hour:02d}:{minute:02d}"
print(formatted_time)
Die Attribute .hour und .minute sind Ganzzahlen. Verwenden Sie sie daher direkt für Berechnungen oder Vergleiche. Der Formatbezeichner :02d gibt jede Ganzzahl mit mindestens zwei Ziffern aus und fügt bei Bedarf eine führende Null hinzu. So bleiben Werte wie 8:05 im Format HH:MM. Die Jahresangabe %y mit zwei Ziffern interpretiert Python nach seinen Regeln für das Parsen von Datumsangaben. Für eine eindeutige Eingabe verwenden Sie vorzugsweise ein vierstelliges Jahr mit %Y, zum Beispiel %d/%m/%Y %H:%M.
Wählen Sie für jeden Teil der Eingabe die passende Formatangabe: %m/%d/%Y steht für Monat/Tag/vierstelliges Jahr, während %d/%m/%Y für Tag/Monat/vierstelliges Jahr steht. Schlägt das Parsen fehl, vergleichen Sie zunächst die Trennzeichen und die Reihenfolge in der Eingabe mit den Formatangaben. Ein datetime enthält weiterhin Datum und Sekunden; das Auslesen von .hour und .minute verändert das ursprüngliche Objekt nicht. Für diesen API-Link ist kein deutsches Ziel verfügbar; deshalb bleibt das vorhandene englische Linkziel erhalten.
Stunde und Minute der aktuellen Uhrzeit mit strftime() ermitteln
Rufen Sie datetime.now() auf, um ein datetime auf Grundlage der lokalen Systemuhr zu erhalten. Verwenden Sie anschließend strftime(), um Stunde und Minute in eine Zeichenkette zur Anzeige umzuwandeln. %H gibt eine mit Nullen aufgefüllte Stunde im 24-Stunden-Format von 00 bis 23 aus; %M gibt eine entsprechend aufgefüllte Minute von 00 bis 59 aus.
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
from datetime import datetime
current_time = datetime.now()
formatted_time = current_time.strftime("%H:%M")
print(formatted_time)
Der ausgegebene Wert ändert sich mit der Uhrzeit und ist daher keine feste Zeichenkette. Behalten Sie current_time, wenn der weitere Code auch das Datum oder andere Bestandteile benötigt. Für eine Anzeige im 12-Stunden-Format gibt %I eine Stunde von 01 bis 12 aus. Ergänzen Sie %p, um die in der jeweiligen Locale übliche AM- oder PM-Kennzeichnung einzufügen, zum Beispiel "%I:%M %p".
Stunde und Minute der aktuellen Uhrzeit mit .time() ermitteln
Verwenden Sie .time(), wenn Sie den Uhrzeitanteil als Objekt statt als formatierte Zeichenkette benötigen. Die Methode gibt ein time-Objekt zurück. Dessen Attribute .hour und .minute lassen sich auslesen und formatieren wie die entsprechenden Attribute eines datetime-Objekts.
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
from datetime import datetime
current_time = datetime.now().time()
hour = current_time.hour
minute = current_time.minute
print(f"{hour:02d}:{minute:02d}")
Dieser Ansatz eignet sich, wenn Sie die Zahlenwerte für weitere Logik benötigen; verwenden Sie strftime(), wenn das unmittelbare Ergebnis eine Zeichenkette sein soll. Beide Beispiele mit der aktuellen Uhrzeit hängen von der Systemuhr ab; während ihrer Ausführung kann eine neue Minute beginnen. datetime.now() verwendet standardmäßig die lokale Zeit. Benötigt eine Anwendung eine bestimmte Zeitzone, erstellen Sie vor dem Formatieren oder Extrahieren der Uhrzeit ein zeitzonenbewusstes datetime mit der passenden Zeitzone. Andernfalls entsprechen die Werte der lokalen Uhr möglicherweise nicht dem gewünschten Ort.