Ich versuche einen ähnlichen Prozess, außer dass meine Eingabezeichenfolge nicht das Jahr hat, also sieht es aus wie '2405'. Standardmäßig wird das Jahr als angenommen 1900. Das Problem tritt auf, wenn das Februar-Datum wie '2902' analysiert wird. Ich bekomme diesen Fehler ValueError: day is out of range for month. Ich bin mir nicht sicher, wie ich das Standardjahr beim Parsen festlegen kann.
Traceback(most recent call last):File"<stdin>", line 1,in<module>File"/usr/local/lib/python2.7/_strptime.py", line 308,in _strptime
format_regex =_TimeRE_cache.compile(format)File"/usr/local/lib/python2.7/_strptime.py", line 265,in compile
return re_compile(self.pattern(format), IGNORECASE)File"/usr/local/lib/python2.7/re.py", line 194,in compile
return _compile(pattern, flags)File"/usr/local/lib/python2.7/re.py", line 251,in _compile
raise error, v # invalid expression
sre_constants.error: redefinition of group name 'H'as group 7; was group 4
2015-07-20 09: 46: 55 + 00: 00 Ich habe diese Art von Daten. Wie erhalte ich ein Datumsobjekt?
Hardik Gajjar
Verwenden Sie das Modul re (regulärer Ausdruck), um Ihre Daten von "2015-07-20 09: 46: 55 + 00: 00" in "2015-07-20T09: 46: 55-00: 00" zu ändern. Verwenden Sie dann dateutil.parse, um ein Datumsobjekt zu erhalten.
Schopenhauer
1
Vielen Dank, tatsächlich war das Problem ein Objekt vom Typ Diktat und ich bekomme nur eine Lösung mit dict.get mit
Hardik Gajjar
2
Eine andere Idee ist, das Handbuch docs.python.org/3/library/… zu lesen und zu beachten, dass% B für "Monat als vollständiger Name des Gebietsschemas" steht. Das ist wie "Januar" oder "Dezember", also wird "02" nicht analysiert.
Flip
1
Die Datumsformatzeichenfolge in dieser ist falsch, es sollte ein% m sein, kein% B
Ansager
24
Wenn Sie faul sind und nicht mit String-Literalen kämpfen möchten, können Sie einfach mit dem parserModul gehen.
1900
. Das Problem tritt auf, wenn das Februar-Datum wie '2902' analysiert wird. Ich bekomme diesen FehlerValueError: day is out of range for month
. Ich bin mir nicht sicher, wie ich das Standardjahr beim Parsen festlegen kann.quelle
Direkt verwandte Frage:
Was ist, wenn Sie haben
und du bekommst:
und du hast versucht:
aber Sie erhalten immer noch den Traceback oben.
Antworten:
quelle
Wenn Sie faul sind und nicht mit String-Literalen kämpfen möchten, können Sie einfach mit dem
parser
Modul gehen.Nur eine Randnotiz , da wir versuchen, die
any
Zeichenfolgendarstellung abzugleichen, ist sie 10x langsamer alsstrptime
quelle
Monday, June 03, 2019
Sie haben eine Datumszeichenfolge wie diese, "24052010", und Sie möchten ein Datumsobjekt dafür.
Dieses cus_date gibt Ihnen ein Datumsobjekt.
Mit dieser Option können Sie eine Datumszeichenfolge von Ihrem Datumsobjekt abrufen.
quelle
Es gibt eine andere Bibliothek, die
arrow
wirklich großartig ist, um Manipulationen am Python-Datum vorzunehmen.quelle
Verwenden Sie das Zeitmodul, um Daten zu konvertieren.
Code-Auszug:
quelle