Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.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,尝试使用一个可以验证输入日期字符串的函数。 例如201807192113表示2018/07/09 21:13 private static final SimpleDateFormat CASSANDRA_DATE_FORMAT = new SimpleDateFormat("YYYYMMddHHmm"); private static boolean isValidateDate(final String input) { try { CASSANDRA_DATE_

尝试使用一个可以验证输入日期字符串的函数。 例如
201807192113
表示2018/07/09 21:13

private static final SimpleDateFormat CASSANDRA_DATE_FORMAT = new SimpleDateFormat("YYYYMMddHHmm");

private static boolean isValidateDate(final String input) {

    try {
        CASSANDRA_DATE_FORMAT.setLenient(false);
        final Date date = CASSANDRA_DATE_FORMAT.parse(input);
        System.out.println(date.toString());

        return true;
    } catch (ParseException e) {
        e.printStackTrace();
        return false;
    }
}

public static void main(String[] args) {

    final boolean validateDate = FCXTablesValidation.isValidateDate("201807200101");
    System.out.println(validateDate);
}
而输出为2017年12月31日美国东部时间21:13:00 true,表示另一个日期


此外,如果传入的
201807322113
不是有效日期(32不是一个月中的有效日期),仍然会得到相同的输出。

您使用的是
“YYYY”
作为年的格式<代码>Y是字母的模式。老实说,我不知道如何从输入字符串解析上述输出。但是如果使用模式字母
y
,则宽松设置将抛出
ParseException
。那么它是否打算使用模式字母
Y
?您是说如果您将
“201807200101”
传递给此方法,它将打印
2017年12月31日美国东部时间21:13:00
?你确定吗?@LuCio-实际上
Y
是“一年中的一周”,而不是“一年中的一周”。小写的
w
是“一年中的一周”。仅供参考,像、
java.text.SimpleDateFormat
这样非常麻烦的旧日期时间类现在被java 8和更高版本中内置的类所取代。请参阅、和的副本。具有您需要的确切代码段。