使用java Date和SimpleDateFormat验证范围

mat*_*aso 3 java validation date range

嘿伙计们,我想知道当我尝试使用此代码解析日期时是否有可以处理的Date异常:

try{
   SimpleDateFormat df = new SimpleDateFormat("dd:MM:yyyy"); 
   Date date = df.parse(dateRelease);
}catch (ParseException e) {} 
Run Code Online (Sandbox Code Playgroud)

好吧,如果"dateRelease"不是正确的格式类型,它会抛出ParseException,但是如果有人写的是"40/03/2010",我想得到 - 错误的日,月或年无效范围.实际上,当发送无效日期时,SimpleDateFormat只会创建一个具有默认数字的新日期.

我是否必须使用正则表达式创建我自己的方法来处理它,或者是否存在一个告诉我它要捕获的现有异常?

Bal*_*usC 5

SimpleDateFormat#setLenient()使用值为非宽松false.

SimpleDateFormat df = new SimpleDateFormat("dd:MM:yyyy"); 
df.setLenient(false);
Date date = df.parse(dateRelease);
Run Code Online (Sandbox Code Playgroud)

然后它会ParseException在日期不在有效范围内时抛出.