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, vor allem 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 a umwandelt datetime
string zu a datetime
Objekt in Python mit different Module. 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 drin sind datetime
Format können wir die Vergleichsoperatoren wie Zahlen verwenden.
Dies ist nur ein Szenario, in dem die Konvertierung zu datetime
Format macht die Sache einfach. Es gibt viele Szenarien wie das Hinzufügen von Datumsangaben, Subtrahieren, Umgang mit Zeitzonen usw., in denen konvertiert wird datetime
Zeichenfolge an datetime
Objekt macht unser Leben einfacher denn je.
Sehen wir uns nun verschiedene Möglichkeiten zum Konvertieren von a an datetime
string zu a datetime
Objekt. Wir werden eingebaute verwenden datetime
und Drittanbieter dateutil
Module zum Konvertieren der datetime
Zeichenfolge an datetime
Objekt. Beginnen wir mit dem datetime-Modul
Using datetime
Das 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 verwenden datetime.datetime
Klasse für den Umbau.
Das datetime.datetime
hat viele Methoden. Wir interessieren uns für die strptime
Methode, die uns bei der Konvertierung helfen wird. Lass es uns überprüfen.
datetime.strptime
Das datetime.strptime
Methode wird zum Konvertieren verwendet datetime
string zu a datetime
Objekt. Es braucht zwei Saiten, eine ist datetime
string und das andere ist das Format davon datetime
Schnur. Und es gibt die zurück datetime
Objekt.
Lass uns ein Beispiel sehen
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 ein genommen datetime
string und umgewandelt in datetime
Objekt mit datetime.strptime
Methode. Stellen Sie sicher, dass das Format, das Sie der Methode bereitstellen, genau mit dem übereinstimmt datetime
Schnur. Wenn sie nicht übereinstimmen, erhalten Sie möglicherweise einen Fehler oder eine falsche Ausgabe.
Wir haben einige Formatierungscodes für die verwendet datetime
Format. Sie können sich auf alle beziehen Formatcodes in den Dokumenten.
Das datetime.strptime
Methode gibt abgeschlossen zurück datetime
. Wenn Sie Datum und Uhrzeit separat erhalten möchten, können wir das Datum verwenden time
Methoden von datetime
Objekt. 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
funktioniert time
werden ihre Objekte entsprechend zurückgeben. Sie werden wieder ihre jeweiligen Methoden für Daten und Zeiten haben.
Wir haben die richtigen Zeichenfolgen und Formate für die bereitgestellt datetime.strptime
Methode, 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 übereinstimmt datetime
Schnur. 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 das Try-außer für das Kommende hinzufügen parser.parse
Methode ebenso. 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 die datetime
Modul. Kommen wir zum nächsten Modul dateutil
.
Using dateutil
Das Modul dateutil
bietet Erweiterungen für die 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, die uns interessiert, ist dateutil.parser.parse
. Mal sehen, wie man umwandelt datetime
Zeichenfolge an datetime
Objekt.
parser.parse
Das Verfahren parser.parse
wird ein nehmen datetime
string und wandelt sie in eine entsprechende um datetime
Objektformat. Wir müssen für diese Methode keine Formatierung bereitstellen. Es konvertiert automatisch die angegebenen datetime
String 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
Das datetime
Zeichenfolge muss in einem bestimmten Format vorliegen, das die parser.parse
Methode akzeptiert. Es wird einen Fehler auslösen, wenn die datetime
Das Zeichenfolgenformat entspricht nicht dem gewünschten Format. Du kann alle Datetime-String-Formate überprüfen die es für automatische Konvertierungen akzeptiert.
Da die parser.parse
Methode gibt zurück datetime
Objekt können wir auf das zugreifen date
funktioniert time
Objekte getrennt, wie wir bei der gesehen haben datetime
Modul. 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 dateutil
erleichtert vergleichsweise die Arbeit mit Datum und Uhrzeit. Sie können das Modul im erkunden docs.
Fazit
Wir haben ein eingebautes Modul und ein Modul eines Drittanbieters verwendet, um die zu konvertieren datetime
string zu einem DateTime-Objekt. Es gibt ein weiteres eingebautes Modul namens time
womit wir das umwandeln können datetime
string zu einem DateTime-Objekt ähnlich wie datetime
funktioniert dateutil
Module. 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 erkunden, wie es geht Zeitunterschied berechnen bei Python.
Viel Spaß beim Codieren 🙂