So konvertieren Sie String in Datetime in Python

Das Konvertieren von einem Datentyp in einen anderen Datentyp ist in jeder Programmiersprache von entscheidender Bedeutung. Fast alle Programmiersprachen unterstützen Typkonvertierungen für eingebaute Datentypen.

Benutzerdefinierte Datentypen wie datetime benötigen zusätzliche Module für Konvertierungen. Wir brauchen Module, besonders für Datetime-Konvertierungen, da es für Programmierer nie einfach war, sie zu bearbeiten. Glücklicherweise hat Python eingebaute Module, um mit datetime zu arbeiten.

Wir werden lernen, wie man einen Datetime-String in Python mit verschiedenen Modulen in ein Datetime-Objekt umwandelt. Bevor wir uns damit befassen, wollen wir sehen, warum wir es überhaupt konvertieren müssen.

Warum müssen wir eine Datetime-Zeichenfolge in ein Datetime-Objekt konvertieren?

Wenn wir mit Daten arbeiten müssen, ist es nicht einfach, wenn sie im String-Format vorliegen. Die Konvertierung in das Datetime-Format macht die Arbeit mit ihnen sehr einfach. Daten in Strings sind wie normale Strings. Es wird keine speziellen Methoden geben, um mit Datumsangaben zu arbeiten. Es wird allgemeine String-Methoden haben, die wir bei der Arbeit mit Datumsangaben nicht benötigen.

Nehmen wir an, wir müssen zwei Daten vergleichen. Wenn sie im String-Format vorliegen, können wir sie korrekt vergleichen. Wenn sie im datetime-Format vorliegen, können wir die Vergleichsoperatoren wie Zahlen verwenden.

Dies ist nur ein Szenario, in dem die Konvertierung in das Datetime-Format die Dinge vereinfacht. Es gibt viele Szenarien wie das Hinzufügen von Datumsangaben, Subtrahieren, Umgang mit Zeitzonen usw., bei denen die Konvertierung von Datetime-Strings in Datetime-Objekte unser Leben einfacher denn je macht.

Sehen wir uns nun verschiedene Möglichkeiten zum Konvertieren einer Datetime-Zeichenfolge in ein Datetime-Objekt an. Wir werden integrierte datetime- und dateutil-Module von Drittanbietern verwenden, um die datetime-Zeichenfolge in ein datetime-Objekt zu konvertieren. Beginnen wir mit dem datetime-Modul

Datumszeit verwenden

datetime ist ein eingebautes Modul von Python, das verwendet wird, um mit Datums- und Zeitangaben zu arbeiten. Es gibt viele Klassen in diesem Modul, die uns helfen, mit Datum und Uhrzeit zu arbeiten. Wir werden die Klasse datetime.datetime für die Konvertierung verwenden.

  So beheben Sie, dass Google Fotos nicht ordnungsgemäß gesichert werden

Die datetime.datetime hat viele Methoden. Uns interessiert die Methode strptime, die uns bei der Konvertierung helfen wird. Lass es uns überprüfen.

datetime.strptime

Die datetime.strptime-Methode wird verwendet, um eine datetime-Zeichenfolge in ein datetime-Objekt zu konvertieren. Es werden zwei Strings benötigt, einer ist der Datetime-String und der andere ist das Format dieses Datetime-Strings. Und es gibt das datetime-Objekt zurück.

Sehen wir uns ein Beispiel an

from datetime import datetime

string = "19-12-2022 09:37:56 PM"
formatting = "%d-%m-%Y %I:%M:%S %p"
print(datetime.strptime(string, formatting))

Wenn Sie den obigen Code ausführen, sehen Sie die folgende Ausgabe.

2022-12-19 21:37:56

Wir haben eine Datetime-Zeichenfolge genommen und sie mit der datetime.strptime-Methode in ein datetime-Objekt konvertiert. Stellen Sie sicher, dass das Format, das Sie der Methode bereitstellen, genau mit der datetime-Zeichenfolge übereinstimmt. Wenn sie nicht übereinstimmen, erhalten Sie möglicherweise einen Fehler oder eine falsche Ausgabe.

Wir haben einige Formatierungscodes für das datetime-Format verwendet. Sie können auf alle Formatcodes in den Dokumenten verweisen.

Die Methode datetime.strptime gibt die vollständige datetime zurück. Wenn Sie das Datum und die Uhrzeit separat erhalten möchten, können wir die datetime-Methoden des datetime-Objekts verwenden. Sehen wir uns den Code an.

from datetime import datetime

string = "19-12-2022 09:37:56 PM"
formatting = "%d-%m-%Y %I:%M:%S %p"

## getting date separately
print("Date:", datetime.strptime(string, formatting).date())

## getting time separately
print("Time:", datetime.strptime(string, formatting).time())

Führen Sie den obigen Code aus und Sie sehen die folgende Ausgabe.

Date: 2022-12-19
Time: 21:37:56

Die Methoden date und time geben jeweils ihre Objekte zurück. Sie werden wieder ihre jeweiligen Methoden für Daten und Zeiten haben.

  Ist uTorrent sicher?

Wir haben die korrekten Zeichenfolgen und Formate für die Methode datetime.strptime bereitgestellt, die wir oben gesehen haben. Wenn wir sie nicht korrekt angegeben haben, erhalten wir Fehler. Mal sehen, wie man mit diesen Fehlern umgeht. Führen Sie den folgenden Code aus.

from datetime import datetime

string = "19:12:2022 09:37:56 PM"
formatting = "%d-%m-%Y %I:%M:%S %p"
print(datetime.strptime(string, formatting))

Der obige Code löst einen Fehler aus, da die Formatierung nicht mit der datetime-Zeichenfolge übereinstimmt. Um diese Art von Fehlern zu behandeln, können wir Pythons try-außer verwenden. Lassen Sie es uns hinzufügen.

from datetime import datetime

try:
    string = "19:12:2022 09:37:56 PM"
    formatting = "%d-%m-%Y %I:%M:%S %p"
    print(datetime.strptime(string, formatting))
except ValueError as error:
    print(error)

Führen Sie den Code jetzt erneut aus. Sie werden die folgende Fehlermeldung sehen, ohne den Code zu brechen.

time data '19:12:2022 09:37:56 PM' does not match format '%d-%m-%Y %I:%M:%S %p'

In ähnlicher Weise können wir die Methode try-außer auch für die kommende Methode parser.parse hinzufügen. Es hilft uns zu vermeiden, den Code mittendrin zu brechen. Dies bezieht sich nicht speziell auf diesen Lernprogrammkontext, erinnert Sie jedoch daran, es in Ihrem Code zu verwenden.

Das war’s für das datetime-Modul. Kommen wir zum nächsten Modul dateutil.

Verwendung von dateutil

Das Modul dateutil bietet Erweiterungen zum datetime-Modul. Es macht das Arbeiten mit Datum und Uhrzeit viel einfacher mit vielen Methoden mit einfacher Verwendung. Lassen Sie uns das Modul mit dem folgenden Befehl installieren.

pip install python-dateutil

Die Methode, an der wir interessiert sind, ist dateutil.parser.parse. Sehen wir uns an, wie man eine Datetime-Zeichenfolge in ein Datetime-Objekt konvertiert.

parser.parse

Die Methode parser.parse nimmt einen datetime-String und wandelt ihn in ein entsprechendes datetime-Objektformat um. Wir müssen für diese Methode keine Formatierung bereitstellen. Es konvertiert automatisch die angegebene Datetime-Zeichenfolge in ein Datetime-Objekt. Sehen wir uns ein Beispiel an.

from dateutil import parser

string = "19-12-2022 09:37:56 PM"
print(parser.parse(string))

Wenn Sie den obigen Code ausführen, sehen Sie die folgende Ausgabe.

2022-12-19 21:37:56

Die datetime-Zeichenfolge muss in einem bestimmten Format vorliegen, das die parser.parse-Methode akzeptiert. Es wird ein Fehler ausgegeben, wenn das datetime-String-Format nicht dem gewünschten Format entspricht. Sie können alle Datetime-String-Formate überprüfen, die es für automatische Konvertierungen akzeptiert.

  So verwenden Sie Text in Spalten wie ein Excel-Profi

Da die parser.parse-Methode das datetime-Objekt zurückgibt, können wir separat auf die Datums- und Zeitobjekte zugreifen, wie wir es beim datetime-Modul gesehen haben. Sehen wir uns den Code an.

from dateutil import parser

string = "19-12-2022 09:37:56 PM"
print("Date:", parser.parse(string).date())
print("Time:", parser.parse(string).time())

Sie können die folgende Ausgabe sehen, wenn Sie den obigen Code ausführen.

Date: 2022-12-19
Time: 21:37:56

Wie Sie sehen können, erleichtert dateutil die Arbeit mit Datum und Uhrzeit vergleichsweise. Sie können das Modul in den Dokumenten erkunden.

Fazit

Wir haben ein integriertes Modul und ein Modul eines Drittanbieters verwendet, um die Datetime-Zeichenfolge in ein DateTime-Objekt zu konvertieren. Es gibt ein weiteres eingebautes Modul namens time, mit dem wir den datetime-String in ein DateTime-Objekt umwandeln können, ähnlich den datetime- und dateutil-Modulen. Versuch es selber. Es wird nicht schwer sein, da Sie ähnliches bereits mit anderen Modulen gemacht haben.

Es könnte noch mehr Bibliotheken geben, mit denen wir dasselbe erreichen können. Die Module, die wir im Thing-Tutorial verwendet haben, sind Standard und weit verbreitet. Sie können mehr über andere Module erfahren und das für Sie am besten geeignete auswählen.

Sie können auch untersuchen, wie Sie den Zeitunterschied in Python berechnen.

Viel Spaß beim Programmieren 🙂