1.DateFormat中的setLenient(boolean flag)方法
此方法用来标志是否严格解析日期.其实很简单,就是如果你输入的日期不合法,它会不会先进行一定的计算.计算出能有合法的值,就以计算后的值为真正的值.比如说当你使用的时候有2012-02-31,2012-14-03这样数据去format,如果让setLenient(true).那么它就会自动解析为2012-03-02和2013-02-03这样的日期.如果改为setLenient(false)就会让这样出现解析异常,因为去掉了计算,而这样的数据又是不合法的,所以出现异常也是合理的.
public static boolean validateDate(String strDate)
{
try
{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
df.setLenient(false);
Date d = df.parse(strDate);
df.format(d);
}
catch (Exception e)
{
return false;
}
return true;
}