日期格式校验
场景
导入文件时用户在Excel中输入日期。由于用户在Excel中输入的内容无法控制。需要在插入数据表之前对日期的格式进行校验。要求的最后合法格式为YYYY-MM-DD。
解决代码
public static boolean isDate(String sDate, String format) {
if (sDate == null) {
return false;
}
DateFormat formatter = new SimpleDateFormat(format);
try {
Date date = formatter.parse(sDate);
return sDate.equals(formatter.format(date));
} catch (Exception e) {
return false;
}
}
= =
用户输入的大致分为以下几种可能
1、用户输入的内容不能为空,如果为空肯定不合法。
2、用户如果输入的不是日期格式(YYYY-MM-DD),也不合法。
3、用户如果输入的是YYYY-MM-DD格式,但是不是正常的日期,例如:2020-98-98。也不合法。
将sDate转换为date类型,再将date类型转换为YYYY-MM-DD格式的日期类型后进行比较。如果不相等说明出现了第三种情况,返回false。如果用户输入的不是日期格式,便抛出异常返回false。