Die Python-dateutil
Bibliothek ist dafür (und mehr) konzipiert. Es konvertiert dies automatisch in ein datetime
Objekt für Sie und löst ein aus, ValueError
wenn dies nicht möglich ist.
Als Beispiel:
>>> from dateutil.parser import parse
>>> parse("2003-09-25")
datetime.datetime(2003, 9, 25, 0, 0)
Dies löst ein aus, ValueError
wenn das Datum nicht richtig formatiert ist:
>>> parse("2003-09-251")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
return DEFAULTPARSER.parse(timestr, **kwargs)
File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
ret = default.replace(**repl)
ValueError: day is out of range for month
dateutil
Dies ist auch äußerst nützlich, wenn Sie in Zukunft andere Formate analysieren müssen, da es die meisten bekannten Formate intelligent verarbeiten kann und Sie Ihre Spezifikation ändern können: dateutil
Analysebeispiele .
Es behandelt auch Zeitzonen, wenn Sie das brauchen.
Aktualisierung basierend auf Kommentaren : parse
Akzeptiert auch das Schlüsselwortargument, dayfirst
das steuert, ob der Tag oder der Monat an erster Stelle stehen soll, wenn ein Datum nicht eindeutig ist. Dies ist standardmäßig False. Z.B
>>> parse('11/12/2001')
>>> datetime.datetime(2001, 11, 12, 0, 0) # Nov 12
>>> parse('11/12/2001', dayfirst=True)
>>> datetime.datetime(2001, 12, 11, 0, 0) # Dec 11