Я пытаюсь написать код (Python), который проверял бы формат даты ввода и затем преобразовывал его в DD-MM-YYYY (если формат ввода отличается от DD-MM-YYYY).Я проверил похожие вопросы в StackOverflow, но все они связаны с проверкой или преобразованием формата, и я понятия не имею, как сделать оба одновременно.Я не могу заблокировать ввод в других форматах, так как он поступает из внешнего источника.
Пока я написал это:
import datetime
YearOfBirthString = '05-30-1960'
if YearOfBirthString != '':
if datetime.datetime.strptime(YearOfBirthString, '%d-%m-%Y'):
print(YearOfBirthString)
elif datetime.datetime.strptime(YearOfBirthString, '%Y-%m-%d'):
correctDate = datetime.datetime.strptime(YearOfBirthString, '%Y-%m-%d').strftime('%d-%m-%Y')
print(correctDate)
elif datetime.datetime.strptime(YearOfBirthString, '%m-%d-%Y'):
correctDate = datetime.datetime.strptime(YearOfBirthString, '%m-%d-%Y').strftime('%d-%m-%Y')
print(correctDate)
elif datetime.datetime.strptime(YearOfBirthString, '%Y-%d-%m'):
correctDate = datetime.datetime.strptime(YearOfBirthString, '%Y-%d-%m').strftime('%d-%m-%Y')
print(correctDate)
else:
print('Nuffin')
else:
print('Nuffin')
Он работает только тогда, когда выполняется первое условие «Если»,вылетает в любых других случаях вместо проверки всех условий elif.Сообщение об ошибке выглядит следующим образом:
«Ошибка значения: данные времени« 05-30-3060 »не соответствуют формату«% Y-% m-% d »»
Кто-нибудь знает, как с этим бороться?