日期格式在Java中不起作用
我需要对照指定的格式检查日期的有效性。谷歌搜索之后,我发现了一个:日期格式在Java中不起作用,java,date,Java,Date,我需要对照指定的格式检查日期的有效性。谷歌搜索之后,我发现了一个: public static boolean isThisDateValid(String dateToValidate, String dateFromat){ SimpleDateFormat sdf = new SimpleDateFormat(dateFromat); sdf.setLenient(false); ParsePosition position = new P
public static boolean isThisDateValid(String dateToValidate, String dateFromat){
SimpleDateFormat sdf = new SimpleDateFormat(dateFromat);
sdf.setLenient(false);
ParsePosition position = new ParsePosition(0);
Date date = sdf.parse(dateToValidate,position);
return date != null && position.getIndex() == dateFromat.length();
}
但它不工作..当我运行此程序时,它返回的是true而不是false。指定的月份值无效,即13
System.out.println(isThisDateValid("20101331","yyyymmdd"));
我错过什么了吗
yyyymmdd
应该是
yyyyMMdd
注MM表示月份
而mm代表分钟使用大写字母M表示月份:
System.out.println(isThisDateValid("20101331","yyyyMMdd"));
此无效测试日期将按预期返回false,因为您调用了setLenientfalse
您应该使用yyyyMMdd而不是yyyyMMdd 提供了解释 还有,为什么在您的问题中,月份值被指定为13