So konvertieren Sie String in Datetime in Python
Veröffentlicht: 2022-12-20Das 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 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.
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 vollständige datetime
zurück. Wenn Sie das Datum und die time
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.
Wir haben die korrekten Zeichenfolgen und Formate für die Methode datetime.strptime
, 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 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.
Da die parser.parse
Methode das datetime
Objekt zurückgibt, können wir separat auf die date
und time
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 Codieren