Analysieren von Daten und Zeiten aus Zeichenfolgen
Das datetime
-Modul bietet auch die Klassenmethode strptime()
, die verwendet werden kann, um eine Zeichenfolge zu analysieren und ein datetime
-Objekt zu erstellen. Diese Methode nimmt zwei Argumente entgegen: die zu analysierende Zeichenfolge und eine Formatzeichenfolge, die das erwartete Format der Eingabezeichenfolge angibt. Beispielsweise analysiert der folgende Code eine Zeichenfolge im Format "YYYY-MM-DD HH:MM:SS" und erstellt ein datetime
-Objekt:
s = '2021-12-31 12:30:15'
dt = datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
print(dt)
Es wird "2021-12-31 12:30:15" ausgegeben.
Die Formatzeichenfolge ist eine Zeichenfolge von Zeichen, die den verschiedenen Teilen eines Datums und einer Zeit entsprechen, wie das Jahr, der Monat, der Tag, die Stunde, die Minute und die Sekunde.
Hier sind einige der am häufigsten verwendeten Zeichen in der Formatzeichenfolge:
%Y
: Jahr mit Jahrhundert als Dezimalzahl. Beispielsweise "2022"
%m
: Monat als nullaufgefüllte Dezimalzahl. Beispielsweise "01" für Januar, "12" für Dezember
%d
: Tag des Monats als nullaufgefüllte Dezimalzahl. Beispielsweise "01" für den ersten Tag des Monats, "31" für den letzten Tag des Monats
%H
: Stunde (24-Stunden-Uhr) als nullaufgefüllte Dezimalzahl. Beispielsweise "00" für Mitternacht, "12" für Mittag, "23" für 11 Uhr abends
%M
: Minute als nullaufgefüllte Dezimalzahl. Beispielsweise "00" für den Beginn der Stunde, "30" für halb vor der Stunde
%S
: Sekunde als nullaufgefüllte Dezimalzahl. Beispielsweise "00" für den Beginn der Minute, "59" für das Ende der Minute
Neben diesen Zeichen kann die Formatzeichenfolge auch literale Zeichen enthalten, die mit der Eingabezeichenfolge übereinstimmen müssen. Beispielsweise wird die folgende Formatzeichenfolge ein Datum im Format "YYYY-MM-DD" entsprechen:
fmt = '%Y-%m-%d'
Die strptime()
-Methode wird dann diese Formatzeichenfolge verwenden, um die Eingabezeichenfolge zu analysieren und das Jahr, Monat und Tag daraus zu extrahieren.
Es ist wichtig zu beachten, dass die Formatzeichenfolge genau mit der Eingabezeichenfolge übereinstimmen muss, andernfalls wird eine Ausnahme ausgelöst. Wenn Sie sich nicht sicher sind, über das Format der Eingabezeichenfolge, können Sie die try
- und except
-Anweisungen verwenden, um alle potenziellen Ausnahmen zu behandeln, die auftreten können.
Außerdem wird die strptime()
-Methode aufgrund einiger Probleme wie dass sie nicht Thread-sicher ist und langsam ist, nicht allgemein empfohlen. Es wird empfohlen, die dateutil.parser.parse()
-Funktion zu verwenden, die flexibler und effizienter ist.