Python bietet leistungsstarke Werkzeuge für die Arbeit mit Datums- und Zeitangaben. Oftmals müssen Datums- und Zeitangaben in Zeichenketten in datetime
-Objekte konvertiert werden, um die Manipulation und Analyse zu vereinfachen. Dieser Artikel untersucht verschiedene Methoden zur Durchführung dieser Konvertierung mit Fokus auf Flexibilität und Fehlerbehandlung.
Inhaltsverzeichnis
- Verwendung von
datetime.strptime()
- Alternative Konvertierungsmethoden
- Robuste Fehlerbehandlung
- Handhabung verschiedener Datums- und Zeitformate
Verwendung von datetime.strptime()
Die Funktion datetime.strptime()
ist eine gängige Wahl für die Konvertierung von Zeichenketten in datetime
-Objekte. Sie benötigt zwei Argumente:
date_string
: Die Zeichenkette, die die Datums- und/oder Zeitinformationen enthält.format
: Eine Formatzeichenkette, die angibt, wie Datum und Zeit indate_string
dargestellt werden.
Die Formatzeichenkette verwendet Direktiven, um verschiedene Teile des Datums und der Zeit darzustellen. Hier sind einige wichtige Direktiven:
Direktive | Bedeutung | Beispiel |
---|---|---|
%Y |
Jahr mit Jahrhundert | 2024 |
%y |
Jahr ohne Jahrhundert | 24 |
%m |
Monat (01-12) | 03 |
%d |
Tag des Monats (01-31) | 15 |
%H |
Stunde (24-Stunden-Uhr, 00-23) | 14 |
%I |
Stunde (12-Stunden-Uhr, 01-12) | 02 |
%p |
AM/PM | PM |
%M |
Minute (00-59) | 30 |
%S |
Sekunde (00-59) | 00 |
%f |
Mikrosekunde (000000-999999) | 123456 |
%A |
Wochentag (vollständig) | Montag |
%a |
Wochentag (abgekürzt) | Mon |
%B |
Monatsname (vollständig) | März |
%b |
Monatsname (abgekürzt) | Mär |
Die Reihenfolge der Direktiven in der Formatzeichenkette muss mit der Reihenfolge in der Datumszeichenkette übereinstimmen.
from datetime import datetime
date_string = "2024-03-15 14:30:00"
format = "%Y-%m-%d %H:%M:%S"
datetime_object = datetime.strptime(date_string, format)
print(datetime_object) # Ausgabe: 2024-03-15 14:30:00
Alternative Konvertierungsmethoden
Für komplexere oder weniger Standard-Datumsformate sollten Bibliotheken wie dateutil
verwendet werden:
from dateutil import parser
date_string = "March 15th, 2024 2:30 PM"
datetime_object = parser.parse(date_string)
print(datetime_object)
Robuste Fehlerbehandlung
strptime
sollte immer in einen try-except
-Block eingebunden werden, um mögliche ValueError
-Ausnahmen zu behandeln:
try:
datetime_object = datetime.strptime(date_string, format)
except ValueError as e:
print(f"Fehler beim Konvertieren der Datumszeichenkette: {e}")
Handhabung verschiedener Datums- und Zeitformate
Bei unterschiedlichen Eingabeformaten muss die Zeichenkette möglicherweise vorverarbeitet oder reguläre Ausdrücke verwendet werden, um die Datumsbestandteile zu extrahieren, bevor strptime
oder dateutil.parser
angewendet werden.