So konvertieren Sie einen String in DateZeit 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.
Custom data types like datetime need extra modules for conversions. We need modules, especially for datetime
conversions as working them was never been easy for programmers. Luckily, python has built-in modules to work with dateZeit.
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.
Why do we need to convert a dateZeitzeichenfolge für die Anzeigeatetime object?
When we have to work with dates, it’s not easy to work if they are in the string format. Converting them to datetime format makes working with them very easy. Dates in strings are like normal strings. It won’t have any special methods to work with dates. It will have general string methods, which we won’t be needing while working with dates.
Let’s say we have to compare two dates. If they are in string format, we can compare them correctly. If they are in datetime
Format können wir die Vergleichsoperatoren wie Zahlen verwenden.
Dies ist nur ein Szenario, in dem die Konvertierung zu datetime
format makes things easy. There are plenty of scenarios like adding dates, subtracting, handling timezones, etc., where converting 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 third-Party dateutil
Module zum Konvertieren der datetime
Zeichenfolge an datetime
object. Let’s start with the dateZeitmodul
Verwendung von dateZeit
Der datetime
is a built-in module of Python which is used to work with dates and times. There are a lot of classes in this module that helps us to work with dates and time. We will be using datetime.datetime
Klasse für die Konvertierung.
Der 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
Der 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.
Der datetime.strptime
Methode gibt abgeschlossen zurück datetime
. If you want to get the date and time separately, we can use the date 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
und time
will return their objects respectively. They will again have their respective methods for dates und Zeiten.
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
method as well. It helps us to avoid breaking the code in the middle. This is not specially related to this tutorial context, but it will remind you to use it in your code.
Das war's für die datetime
Modul. Kommen wir zum nächsten Modul dateutil
.
Verwendung von datenützlich
Das Modul dateutil
bietet Erweiterungen für die datetime
module. It makes working with dates and times a lot easier with a lot of methods with easy usage. Let’s install the module with the following command.
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
object format. We don’t need to provide any formatting for this method. It will automatically convert the given datetime
String hinein 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
Der 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 can check all the datetime string formats die es für automatische Konvertierungen akzeptiert.
Da die parser.parse
Methode gibt zurück datetime
Objekt können wir auf das zugreifen date
und time
objects separately as we have seen with the 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
makes it easier to work with the dates and times comparatively. You can explore the module in the docs.
Schlussfolgerung
We have used one built-in module and one third-party module to convert the datetime
string to a DateTime object. There is another built-in module called time
womit wir das umwandeln können datetime
string to a DateTime object similar to datetime
und dateutil
modules. Try it yourself. It won’t be hard as you have already done a similar thing with other modules.
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 calculate Zeitunterschied bei Python.
Viel Spaß beim Codieren 🙂