所以我创建了以下函数,其想法是检查数据是否采用 YYYY-MM-DD 或 MM/DD/YYYY 格式并返回相应的值。如果没有返回-1。
from datetime import datetime
def dateValidate(date):
try:
if date != datetime.strptime(date, "%Y-%m-%d").strftime("%Y-%m-%d"):
raise ValueError
return 1
if date == datetime.strptime(date, "%m/%d/%Y").strftime("%m/%d/%Y"):
raise ValueError
return 2
except ValueError:
return -1
但是它似乎不适用于 MM/DD/YY 格式。关于出了什么问题有什么想法吗?
编辑:
import datetime
def validate(date):
try:
if date != datetime.datetime.strptime(date, "%Y-%m-%d").strftime("%Y-%m-%d"):
raise ValueError
return 1
except ValueError:
return -1
try:
if date == datetime.datetime.strptime(date, "%m/%d/%Y").strftime("%m/%d/%Y"):
raise ValueError
return 2
except ValueError:
return -1
这将返回 -1
对于 validate('07/15/1996')
.
最佳答案
只需尝试每个 datetime.strptime 并分别捕获每个错误。
def dateValidate(date):
try:
datetime.strptime(date, "%Y-%m-%d")
return 1
except ValueError:
try:
datetime.strptime(date, "%m/%d/%Y")
return 2
except ValueError:
return -1
关于python - 检查两种不同格式的日期是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56827827/