一开始我用下面这个方法来判断日期类型,比如2017/01是否为yyyy/MM格式:
public static boolean isDate(String strDate, String pattern){
boolean result = false;
SimpleDateFormat format=new SimpleDateFormat(pattern);
try
{
Date date = format.parse(strDate);
result = true;
}catch (Exception e)
{
result=false;
}
return result;
}
后来发觉如果输入的是2017/13,2017/0的时候竟然返回true,并且2017/1也可以通过。
后来改成下面这种写法就可以了。
public static boolean isValidDate(String s,String pattern)
{
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
if(s == null || s.trim().equals("")){
return true;
}
try
{
return sdf.format(sdf.parse(s)).equals(s);
}
catch (Exception e)
{
return false;
}
}