Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
日期格式在Java中不起作用_Java_Date - Fatal编程技术网

日期格式在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