In diesem Artikel lernen Sie, ein datetime-Objekt aus einer Zeichenfolge zu erstellen (anhand von Beispielen).
Die strptime()
Methode erstellt aus der angegebenen Zeichenfolge ein Datum / Uhrzeit-Objekt.
Hinweis: Sie können nicht datetime
aus jeder Zeichenfolge ein Objekt erstellen . Die Zeichenfolge muss in einem bestimmten Format vorliegen.
Beispiel 1: Zeichenfolge zum Datum / Uhrzeit-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 wie folgt:
date_string = 21. Juni 2018 Typ von date_string = date_object = 2018-06-21 00:00:00 Typ von date_object =
Wie funktioniert strptime ()?
Die strptime()
Klassenmethode akzeptiert zwei Argumente:
- Zeichenfolge (die in datetime konvertiert werden soll)
- Formatcode
Basierend auf der verwendeten Zeichenfolge und dem verwendeten Formatcode gibt die Methode das entsprechende datetime
Objekt zurück.
Im obigen Beispiel:
Hier,
%d
- Repräsentiert den Tag des Monats. Beispiel: 01, 02,…, 31%B
- Name des Monats vollständig. Beispiel: Januar, Februar usw.%Y
- Jahr in vier Ziffern. Beispiel: 2018, 2019 usw.
Beispiel 2: Zeichenfolge zum Datum / Uhrzeit-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 wie folgt:
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 Wochentagsname. | So, Mo,… |
%A | Voller Wochentagsname. | Sonntag Montag,… |
%w | Wochentag als Dezimalzahl. | 0, 1,…, 6 |
%d | Tag des Monats als null aufgefüllte Dezimalstelle. | 01, 02,…, 31 |
%-d | Tag des Monats als Dezimalzahl. | 1, 2,…, 30 |
%b | Kurzname des Monats. | Jan, Feb,…, Dez. |
%B | Voller 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 null 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-Uhr) als mit Nullen aufgefüllte Dezimalzahl. | 00, 01,…, 23 |
%-H | Stunde (24-Stunden-Uhr) 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 | Zweitens als mit Nullen aufgefüllte Dezimalzahl. | 00, 01,…, 59 |
%-S | Zweitens 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 null aufgefüllte Dezimalzahl. | 001, 002,…, 366 |
%-j | Tag des Jahres als Dezimalzahl. | 1, 2,…, 366 |
%U | Wochennummer des Jahres (Sonntag als erster Tag der Woche). Alle Tage in einem neuen Jahr vor dem ersten Sonntag gelten als Woche 0. | 00, 01,…, 53 |
%W | Wochennummer des Jahres (Montag als erster Wochentag). Alle Tage in einem neuen Jahr vor dem ersten Montag gelten als Woche 0. | 00, 01,…, 53 |
%c | Die entsprechende Datums- und Uhrzeitdarstellung des Gebietsschemas. | Montag, 30. September, 07:06:05 Uhr 2013 |
%x | Die entsprechende Datumsdarstellung des Gebietsschemas. | 30.09.13 |
%X | Die entsprechende Zeitdarstellung des Gebietsschemas. | 07:06:05 |
%% | Ein wörtliches '%' Zeichen. | %. |
ValueError in strptime ()
Wenn die Zeichenfolge (erstes Argument) und der Formatcode (zweites Argument), die an übergeben werden, strptime()
nicht übereinstimmen, erhalten Sie ValueError
. Beispielsweise:
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, wird eine Fehlermeldung angezeigt.
ValueError: Zeitdaten '12 / 11/2018 'stimmen nicht mit Format'% d% m% Y 'überein
Empfohlene Lektüre : Python strftime ()