Я пытаюсь выполнить аналогичный процесс, за исключением того, что у моей входной строки нет года, поэтому она выглядит как «2405». По умолчанию год принимается за 1900. Проблема возникает при разборе даты февраля, например «2902». Я получаю эту ошибку ValueError: day is out of range for month. Не уверен, как я могу установить год по умолчанию при разборе.
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 У меня есть такие данные. Как получить объект даты?
Хардик Гаджар
Используйте модуль re (регулярное выражение), чтобы изменить ваши данные с «2015-07-20 09: 46: 55 + 00: 00» на «2015-07-20T09: 46: 55-00: 00». Затем используйте dateutil.parse для получения объекта даты.
Шопенгауэр
1
Спасибо, на самом деле проблема была в объекте типа dict, и я просто получаю решение, используя dict.get, используя
Hardik Gajjar
2
Другая идея - прочитать руководство docs.python.org/3/library/… и заметить, что% B означает «Месяц как полное имя локали». который похож на "январь" или "декабрь", поэтому "02" не собирается анализировать.
Флип
1
Строка формата даты в этом является неправильной, это должен быть% m, а не% B
theannouncer
24
Если вы ленивы и не хотите бороться со строковыми литералами, вы можете просто пойти с parserмодулем.
1900
. Проблема возникает при разборе даты февраля, например «2902». Я получаю эту ошибкуValueError: day is out of range for month
. Не уверен, как я могу установить год по умолчанию при разборе.источник
Непосредственно связанный вопрос:
Что делать, если у вас есть
и вы получите:
и ты попробовал:
но вы все еще получаете трассировку выше.
Ответ:
источник
Если вы ленивы и не хотите бороться со строковыми литералами, вы можете просто пойти с
parser
модулем.Просто примечание стороны , мы пытаемся соответствовать
any
строковому представлению, это в 10 раз медленнее , чемstrptime
источник
Monday, June 03, 2019
у вас есть строка даты, как это, «24052010», и вы хотите объект даты для этого,
это cus_date даст вам объект даты.
вы можете получить строку даты из вашего объекта даты, используя это,
источник
Есть еще одна библиотека, которая
arrow
действительно отлично подходит для манипулирования датой Python.источник
Используйте временной модуль для преобразования данных.
Фрагмент кода:
источник