Python strptime()
Python strptime()
In diesem Artikel lernen Sie (anhand von Beispielen), wie Sie ein datetime-Objekt aus einem String erstellen.
Video:Datum und Uhrzeit in Python
Der strptime()
-Methode erstellt ein datetime-Objekt aus der angegebenen Zeichenfolge.
Hinweis: Sie können datetime
nicht erstellen Objekt aus jeder Zeichenfolge. Der String muss ein bestimmtes Format haben.
Beispiel 1:Zeichenfolge zu datetime-Objekt
from datetime import datetime
date_string = "21 June, 2018"
print("date_string =", date_string)
print("type of date_string =", type(date_string))
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)
print("type of date_object =", type(date_object))
Wenn Sie das Programm ausführen, lautet die Ausgabe:
date_string = 21 June, 2018 type of date_string = <class 'str'> date_object = 2018-06-21 00:00:00 type of date_object = <class 'datetime.datetime'>
Wie funktioniert strptime()?
Die strptime()
Die Klassenmethode akzeptiert zwei Argumente:
- String (der in datetime umgewandelt wird)
- Code formatieren
Basierend auf der verwendeten Zeichenfolge und dem verwendeten Formatcode gibt die Methode ihr Äquivalent datetime
zurück Objekt.
Im obigen Beispiel:
Hier,
%d
- Stellt den Tag des Monats dar. Beispiel: 01, 02, ..., 31%B
- Vollständiger Monatsname. Beispiel: Januar, Februar usw.%Y
- Jahr in vier Ziffern. Beispiel: 2018, 2019 usw.
Beispiel 2:Zeichenfolge zu datetime-Objekt
from datetime import datetime
dt_string = "12/11/2018 09:15:32"
# Considering date is in dd/mm/yyyy format
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1 =", dt_object1)
# Considering date is in mm/dd/yyyy format
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2 =", dt_object2)
Wenn Sie das Programm ausführen, lautet die Ausgabe:
dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32
Codeliste formatieren
Die folgende Tabelle zeigt alle Formatcodes, die Sie verwenden können.
Richtlinie | Bedeutung | Beispiel |
%a | Abgekürzter Name des Wochentags. | So, Mo, ... |
%A | Vollständiger Name des Wochentags. | Sonntag, Montag, ... |
%w | Wochentag als Dezimalzahl. | 0, 1, ..., 6 |
%d | Tag des Monats als mit Nullen aufgefüllte Dezimalzahl. | 01, 02, ..., 31 |
%-d | Tag des Monats als Dezimalzahl. | 1, 2, ..., 30 |
%b | Abgekürzter Monatsname. | Jan, Feb, ..., Dez |
%B | Vollständiger Monatsname. | Januar, Februar, ... |
%m | Monat als mit Nullen aufgefüllte Dezimalzahl. | 01, 02, ..., 12 |
%-m | Monat als Dezimalzahl. | 1, 2, ..., 12 |
%y | Jahr ohne Jahrhundert als mit Nullen aufgefüllte Dezimalzahl. | 00, 01, ..., 99 |
%-y | Jahr ohne Jahrhundert als Dezimalzahl. | 0, 1, ..., 99 |
%Y | Jahr mit Jahrhundert als Dezimalzahl. | 2013, 2019 usw. |
%H | Stunde (24-Stunden-Format) als mit Nullen aufgefüllte Dezimalzahl. | 00, 01, ..., 23 |
%-H | Stunde (24-Stunden-Format) als Dezimalzahl. | 0, 1, ..., 23 |
%I | Stunde (12-Stunden-Uhr) als mit Nullen aufgefüllte Dezimalzahl. | 01, 02, ..., 12 |
%-I | Stunde (12-Stunden-Uhr) als Dezimalzahl. | 1, 2, ... 12 |
%p | AM oder PM des Gebietsschemas. | AM, PM |
%M | Minute als mit Nullen aufgefüllte Dezimalzahl. | 00, 01, ..., 59 |
%-M | Minute als Dezimalzahl. | 0, 1, ..., 59 |
%S | Sekunde als mit Nullen aufgefüllte Dezimalzahl. | 00, 01, ..., 59 |
%-S | Sekunde als Dezimalzahl. | 0, 1, ..., 59 |
%f | Mikrosekunde als Dezimalzahl, links mit Nullen aufgefüllt. | 000000 - 999999 |
%z | UTC-Offset in der Form +HHMM oder -HHMM. | |
%Z | Name der Zeitzone. | |
%j | Tag des Jahres als mit Nullen aufgefüllte Dezimalzahl. | 001, 002, ..., 366 |
%-j | Tag des Jahres als Dezimalzahl. | 1, 2, ..., 366 |
%U | Wochennummer des Jahres (Sonntag als erster Wochentag). Alle Tage in einem neuen Jahr, die dem ersten Sonntag vorausgehen, werden als in Woche 0 liegend angesehen. | 00, 01, ..., 53 |
%W | Wochennummer des Jahres (Montag als erster Tag der Woche). Alle Tage in einem neuen Jahr, die dem ersten Montag vorangehen, gelten als in Woche 0 liegend. | 00, 01, ..., 53 |
%c | Geeignete Datums- und Zeitdarstellung des Gebietsschemas. | Montag 30. September 07:06:05 2013 |
%x | Geeignete Datumsdarstellung des Gebietsschemas. | 30.09.13 |
%X | Geeignete Zeitdarstellung des Gebietsschemas. | 07:06:05 |
%% | Ein wörtliches '%'-Zeichen. | % |
ValueError in strptime()
Wenn der String (erstes Argument) und der Formatcode (zweites Argument) an strptime()
übergeben werden nicht übereinstimmt, erhalten Sie ValueError
. Zum Beispiel:
from datetime import datetime
date_string = "12/11/2018"
date_object = datetime.strptime(date_string, "%d %m %Y")
print("date_object =", date_object)
Wenn Sie dieses Programm ausführen, erhalten Sie eine Fehlermeldung.
ValueError: time data '12/11/2018' does not match format '%d %m %Y'
Empfohlene Lektüre: Python strftime()
Python