使用日历检查日期是否有效

use*_*335 7 java

我想使用日历方法来设置年份日期和月份,但是如果日期无效,则需要某种指示,例如

calendar.set(2013,Calendar.JANUARY , 23) //is a valid date
calendar.set(2013,Calendar.JANUARY , 33) //is not
Run Code Online (Sandbox Code Playgroud)

我设置calendar.setLenient(false)并预计将值设置为1月33日会引发异常,但事实并非如此.

zw3*_*324 8

似乎检查是懒洋洋地完成的:

如果已设置任何超出范围的字段值,则非宽松的GregorianCalendar在计算其时间或日历字段值时会抛出异常.

所以这会给你一个例外:

Calendar c = new GregorianCalendar();
c.setLenient(false);
c.set(2013, Calendar.JANUARY, 33);
c.getTime();
Run Code Online (Sandbox Code Playgroud)

但不是没有getTime.