Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Pythons strptime() meistern: Präzises Parsen von Datumsstrings

Python strptime(): Strings in Datetime-Objekte konvertieren

Dieser Leitfaden zeigt, wie Sie mit Pythons datetime.strptime()-Methode Datetime-Objekte aus Strings erstellen – mit praktischen Beispielen und einer umfassenden Formatcode-Referenz.

Video: Daten und Zeiten in Python

Sehen Sie sich das offizielle Python-Tutorial an, um Ihr Verständnis der Datetime-Verarbeitung zu vertiefen.

Die strptime()-Methode erstellt ein datetime-Objekt aus einem String, der einem angegebenen Format folgt.

Hinweis: Nicht jeder String kann geparst werden; die Eingabe muss exakt dem Formatcode entsprechen.


Beispiel 1: Einfaches Datumsstring konvertieren

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))

Bei der Ausgabe erhalten Sie:

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 Klassenmethode strptime() akzeptiert zwei Argumente:

Basierend auf diesen Eingaben gibt die Methode ein datetime-Objekt zurück, das denselben Zeitpunkt repräsentiert.

Im obigen Beispiel bedeutet der Formatcode %d %B, %Y:


Beispiel 2: Mehrdeutige Daten parsen

from datetime import datetime

dt_string = "12/11/2018 09:15:32"
# Annahme: Tag/Monat/Jahr-Format
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1 =", dt_object1)
# Annahme: Monat/Tag/Jahr-Format
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2 =", dt_object2)

Das Programm erzeugt:

dt_object1 = 2018-11-12 09:15:32
dt_object2 = 2018-12-11 09:15:32

Vollständige Liste der Formatcodes

Die folgende Tabelle fasst alle Direktiven zusammen, die Sie mit strptime() verwenden können. Für die vollständige Dokumentation verweisen Sie auf Pythons offiziellen datetime-Modul-Leitfaden.

DirektiveBedeutungBeispiel
%aAbgekürzter Wochentagsname.So, Mo, ...
%AVollständiger Wochentagsname.Sonntag, Montag, ...
%wWochentag als Dezimalzahl.0, 1, ..., 6
%dTag des Monats (null-gefüllt).01, 02, ..., 31
%-dTag des Monats (keine Füllung).1, 2, ..., 30
%bAbgekürzter Monatsname.Jan, Feb, ..., Dez
%BVollständiger Monatsname.Januar, Februar, ...
%mMonatsnummer (null-gefüllt).01, 02, ..., 12
%-mMonatsnummer (keine Füllung).1, 2, ..., 12
%yJahr ohne Jahrhundert (null-gefüllt).00, 01, ..., 99
%-yJahr ohne Jahrhundert (keine Füllung).0, 1, ..., 99
%YJahr mit Jahrhundert.2013, 2019, ...
%HStunde (24-Stunden-Uhr, null-gefüllt).00, 01, ..., 23
%-HStunde (24-Stunden-Uhr, keine Füllung).0, 1, ..., 23
%IStunde (12-Stunden-Uhr, null-gefüllt).01, 02, ..., 12
%-IStunde (12-Stunden-Uhr, keine Füllung).1, 2, ..., 12
%pLokale AM- oder PM-Bezeichnung.AM, PM
%MMinute (null-gefüllt).00, 01, ..., 59
%-MMinute (keine Füllung).0, 1, ..., 59
%SSekunde (null-gefüllt).00, 01, ..., 59
%-SSekunde (keine Füllung).0, 1, ..., 59
%fMikrosekunde (null-gefüllt).000000 – 999999
%zUTC-Offset (+HHMM oder –HHMM).
%ZZeitzonenname.
%jTag des Jahres (null-gefüllt).001, 002, ..., 366
%-jTag des Jahres (keine Füllung).1, 2, ..., 366
%UWochennummer (Sonntag zuerst).00, 01, ..., 53
%WWochennummer (Montag zuerst).00, 01, ..., 53
%cLokales Datum & Uhrzeit.Mon Sep 30 07:06:05 2013
%xLokales Datum.09/30/13
%XLokale Uhrzeit.07:06:05
%%Ein wörtliches Prozentzeichen.%

Häufiger Fehler: ValueError

Wenn String und Formatcode nicht übereinstimmen, löst strptime() einen ValueError aus. Zum Beispiel:

from datetime import datetime

date_string = "12/11/2018"  # Falsches Format – erwartet Tag Monat Jahr
date_object = datetime.strptime(date_string, "%d %m %Y")
print("date_object =", date_object)

Die Ausführung dieses Codes erzeugt:

ValueError: time data '12/11/2018' does not match format '%d %m %Y'

Empfohlene Weiterlektüre: Python strftime()

Python

  1. Python-Schlüsselwörter & Bezeichner: Reservierte Wörter & Benennungskonventionen meistern
  2. Python-Datentypen meistern: Praxisleitfaden
  3. Python-Operatoren meistern: Umfassender Leitfaden
  4. Python pass-Statement meistern: Praxisleitfaden
  5. Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
  6. Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
  7. Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
  8. Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
  9. Python Reguläre Ausdrücke (re Modul) – Ein praktischer Leitfaden
  10. Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen