Я пытаюсь преобразовать список дат (где каждая запись представляет собой строку) в объект datetime.
Даты имеют следующий формат: 2018-09-10 24:11
Код, который я использовал:
dateTime = []
def makeDateTime(date):
for entry in date[1:]:
dateTime.append(datetime.strptime(entry, "%Y-%m-%d %H%M"))
return dateTime
dt = makeDateTime(date)
и я получаю следующее сообщение об ошибке:
ValueError Traceback (most recent call last)
<ipython-input-91-5ac073b0f75a> in <module>()
----> 1 dt = datetime.strptime(date[1], "%Y-%m-%d %H%M")
~/anaconda3/lib/python3.6/_strptime.py in _strptime_datetime(cls, data_string, format)
563 """Return a class cls instance based on the input string and the
564 format string."""
--> 565 tt, fraction = _strptime(data_string, format)
566 tzname, gmtoff = tt[-2:]
567 args = tt[:6] + (fraction,)
~/anaconda3/lib/python3.6/_strptime.py in _strptime(data_string, format)
363 if len(data_string) != found.end():
364 raise ValueError("unconverted data remains: %s" %
--> 365 data_string[found.end():])
366
367 iso_year = year = None
ValueError: unconverted data remains: :14
Даже когда я пытаюсь преобразовать одну запись вне цикла, это не работает. Любые идеи, как это исправить?
2018-09-10 24:11 vs %Y-%m-%d %H%M - в строке формата отсутствует двоеточие.
@timgeb плохой пример с моей стороны.
@ForceBru, спасибо !!!!






Если ваши даты выглядят как '2018-09-10 00:11', правильная строка формата - "%Y-%m-%d %H:%M" с : между часами и минутами.
>>> from datetime import datetime
>>> datetime.strptime('2018-09-10 00:11', '%Y-%m-%d %H:%M')
datetime.datetime(2018, 9, 10, 0, 11)
Однако вы по-прежнему не сможете анализировать '2018-09-10 24:11' с этой строкой формата. Время 24:11 не существует, оно должно быть 00:11. Я предполагаю, что это просто опечатка с вашей стороны.
Если поменять местами минуты и часы, вы можете использовать '%Y-%m-%d %M:%H' (но я предполагаю на этом этапе.)
Нет времени 24:11, вы уверены, что у вас есть такие даты?