【发布时间】:2018-06-10 19:05:55
【问题描述】:
我正在尝试编写代码(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')
它仅在满足第一个“If”条件时才有效——在任何其他情况下都会崩溃,而不是检查所有 elif 条件。错误信息如下:
“ValueError:时间数据'05-30-1960'与格式'%Y-%m-%d'不匹配”
有人知道怎么处理吗?
【问题讨论】:
-
而不是条件,
try....except并捕获转换错误
标签: python validation date datetime python-datetime