Próbuję podobnego procesu, z wyjątkiem tego, że mój ciąg wejściowy nie ma roku, więc wygląda jak „2405”. Domyślnie rok jest traktowany jako 1900. Problem występuje podczas analizowania daty lutowej, takiej jak „2902”. Otrzymuję ten błąd ValueError: day is out of range for month. Nie jestem pewien, jak mogę ustawić domyślny rok podczas analizowania.
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 Mam takie dane, jak uzyskać obiekt daty?
Hardik Gajjar
Użyj modułu re (wyrażenie regularne), aby zmienić dane z „2015-07-20 09: 46: 55 + 00: 00” na „2015-07-20T09: 46: 55-00: 00”. Następnie użyj dateutil.parse, aby uzyskać obiekt daty.
Schopenhauer
1
Dziękuję, właściwie problemem był obiekt typu dict, a ja po prostu dostaję rozwiązanie za pomocą dict.get using
Hardik Gajjar
2
Innym pomysłem jest przeczytanie podręcznika docs.python.org/3/library/... i zauważenie, że% B oznacza „Miesiąc jako pełną nazwę regionu”. który jest jak „styczeń” lub „grudzień”, więc „02” nie zostanie przeanalizowane.
Flip
1
Łańcuch formatu daty w tym jest niepoprawny, powinien być% m, a nie% B
theannouncer
24
Jeśli jesteś leniwy i nie chcesz walczyć z literałami łańcuchowymi, możesz po prostu przejść z parsermodułem.
1900
. Problem występuje podczas analizowania daty lutowej, takiej jak „2902”. Otrzymuję ten błądValueError: day is out of range for month
. Nie jestem pewien, jak mogę ustawić domyślny rok podczas analizowania.źródło
Bezpośrednio powiązane pytanie:
Co jeśli masz
i dostajesz:
i próbowałeś:
ale nadal pojawia się powyższy ślad.
Odpowiedź:
źródło
Jeśli jesteś leniwy i nie chcesz walczyć z literałami łańcuchowymi, możesz po prostu przejść z
parser
modułem.Na marginesie , ponieważ próbujemy dopasować
any
reprezentację ciągu, jest on 10 razy wolniejszy niżstrptime
źródło
Monday, June 03, 2019
masz ciąg daty „24052010” i chcesz do tego obiektu daty,
ta data_kusi da ci obiekt daty.
za pomocą tego możesz pobrać ciąg daty z obiektu daty,
źródło
Istnieje inna biblioteka, która nazywa się
arrow
naprawdę świetną do manipulacji datą Pythona.źródło
Użyj modułu czasu do konwersji danych.
Fragment kodu:
źródło