一开始我用下面这个方法来判断日期类型,比如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;
}
}
本文介绍了一种改进的方法来准确验证日期字符串的格式正确性。针对传统方法无法区分有效日期和无效月份的问题,提出了一种新的解决方案,确保只有合法的日期格式才能通过验证。
524

被折叠的 条评论
为什么被折叠?



