So analysieren Sie einen String in eine Datums- und Uhrzeitangabe in Python (strptime)

Erfahren Sie, wie Sie in Python Zeichenfolgen in Datetime-Objekte konvertieren. Beherrschen Sie die strptime-Methode, analysieren Sie Datumszeichenfolgen, verarbeiten Sie Zeitzonen und verhindern Sie Formatfehler.

Probieren Sie diese Lösung im Editor aus

Übersicht

Wenn Sie Anwendungen erstellen, die Benutzerformularübermittlungen verarbeiten, Webdatenbanken durchsuchen, Serverprotokolle analysieren oder CSV-Tabellen importieren, erhalten Sie häufig Datums- und Uhrzeitinformationen als Rohtextzeichenfolgen (z. B. „2026-05-25 15:45““). Da Sie keine Berechnungen, Datumsarithmetik oder Sortierung für Zeichenfolgen durchführen können, müssen Sie diese in Python-Datetime-Objekte analysieren.

Die primäre Methode für diese Konvertierung ist „datetime.strptime(date_string, format_string)“. Der Name steht für „String Parse Time“. Die Funktion verwendet die rohe Datumszeichenfolge und eine Formatvorlage mit Anweisungen (wie „%Y“ für Jahr, „%m“ für Monat und „%d“ für Tag) und gibt ein entsprechendes Datum/Uhrzeit-Objekt zurück.

Wenn die Eingabezeichenfolge nicht genau mit der bereitgestellten Formatvorlage übereinstimmt, löst Python einen „ValueError“ aus. Um Abstürze zu vermeiden, schließen Sie „strptime()“-Vorgänge immer in einen „try-exclusive“-Block ein. Für Anwendungen, die verschiedene, unstrukturierte Datumseingaben analysieren, können externe Bibliotheken wie „python-dateutil“ dabei helfen, die Parser-Erkennung zu automatisieren.

Code- und Ausführungsausgabe

Dieses Skript demonstriert das Parsen von Datumszeichenfolgen mithilfe von datetime.strptime, die Behandlung ungültiger Eingaben und die Berechnung von Datumsunterschieden.

from datetime import datetime

# 1. Basic parsing using strptime
date_str = "2026-05-25 18:30:00"
format_template = "%Y-%m-%d %H:%M:%S"

parsed_date = datetime.strptime(date_str, format_template)
print("Parsed DateTime:", parsed_date)
print("Month parsed:", parsed_date.month)
print("Hour parsed:", parsed_date.hour)

# 2. Handling parse errors safely
bad_date_str = "25/05/2026"
try:
    datetime.strptime(bad_date_str, "%Y-%m-%d")
except ValueError as e:
    print(f"\nParse Error: {e}")

# Correcting the format
corrected_date = datetime.strptime(bad_date_str, "%d/%m/%Y")
print("Corrected Parse:", corrected_date.date())
Terminal-Ausgabe
Parsed DateTime: 2026-05-25 18:30:00
Month parsed: 5
Hour parsed: 18

Parse Error: time data '25/05/2026' does not match format '%Y-%m-%d'
Corrected Parse: 2026-05-25

Schrittweise Umsetzung

  • Importieren Sie die Datetime-Klasse aus dem Datetime-Modul.
  • Identifizieren Sie die genaue Struktur Ihrer Datumszeichenfolge (z. B. Tag, Monat, Trennzeichen).
  • Rufen Sie datetime.strptime(date_string, format_pattern) mit entsprechenden Anweisungen auf (wie %Y, %m, %d).
  • Schließen Sie die Parsing-Anweisung in einen Try-Exception-ValueError-Block ein, um fehlerhafte Zeichenfolgen ordnungsgemäß zu behandeln.

Häufig gestellte Fragen

Was ist der Unterschied zwischen strftime und strptime?

strptime (String-Parse-Zeit) analysiert einen String, um ein Datetime-Objekt zu erstellen. strftime (String-Format-Zeit) formatiert ein Datetime-Objekt in eine lesbare String-Darstellung.

Wie analysiere ich ISO 8601-Datumszeichenfolgen (z. B. „2026-05-25T18:30:00Z“)?

InPython 3.7+ können Sie die integrierte Funktion datetime.fromisoformat(string) verwenden, die ISO-Strings effizient verarbeitet, ohne dass eine manuelle Formatvorlage erforderlich ist.

Verwandte Themen

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.