前言
利用simpleDateFormat.setLenient(false),用于设置Calendar是否宽松解析字符串,如果为false,则严格解析;默认为true,宽松解析。
一、直接上代码
代码如下(示例):
@Test
public void test6() {
boolean b = checkDateString("yyyy-MM-dd","2022-01-20vd");
System.out.println(b);
}
public static boolean checkDateString(String format, String date){
if (StringUtils.isBlank(date)){
return false;
}
Date checkDate = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.setLenient(false);
checkDate = sdf.parse(date);
if (!date.equals(sdf.format(checkDate))) {
checkDate = null;
}
} catch (ParseException e) {
return false;
}
return checkDate != null;
}
输出结果为:false
总结
以上是通过setLenient()方法和equal方法检验输入的日期是否正确,当输入一个无效的日期,比如:2022-04-32,会返回false。