#python #datetime
#python #datetime
Вопрос:
Вот моя ошибка, которую мне не удается решить
ValueError: time data '1/31/2021 22:59' does not match format '%d/%m/%Y %H:%M:%S'
Вот мой код
В 90% случаев моя строка date, которую мне нужно преобразовать, входит в мою try
часть, и это работает, у меня проблема со второй частью.
def StringToDateTime(DateString):
from datetime import datetime
try:
return datetime.strptime(DateString, '%Y-%m-%d %H:%M:%S')
except:
DateString = str(DateString) ':00'
return datetime.strptime(DateString, '%d/%m/%Y %H:%M:%S')
Комментарии:
1. вы хотите
'%m/%d/%Y %H:%M'
, чтобы месяц, очевидно, был первым в вашей строке, и у него нет второго2. Боже, конечно, большое спасибо, я устал 🙂
Ответ №1:
Ошибка, которую вы видите, связана с str
отсутствием значения секунд — строки %S
формата datetime.
Измените строку формата, чтобы в ней не было заполнителя seconds, и она должна работать должным образом:
try:
# Remove the %S from the format string here
return datetime.strptime(DateString, '%Y-%m-%d %H:%M')
except:
DateString = str(DateString) ':00'
return datetime.strptime(DateString, '%d/%m/%Y %H:%M:%S')
Или, если вы хотите изменить DateString
, как вы делаете в своем except
предложении:
# Add the seconds to the date string
DateString = f"{DateString}:00"
try:
return datetime.strptime(DateString, '%Y-%m-%d %H:%M:%S')
except:
return datetime.strptime(DateString, '%d/%m/%Y %H:%M:%S')