Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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_Android_Date_Simpledateformat - Fatal编程技术网

Java 检查日期是否适合定义日期模式

Java 检查日期是否适合定义日期模式,java,android,date,simpledateformat,Java,Android,Date,Simpledateformat,用户应以下一种格式输入日期yyyy-MM-dd。因此,我使用以下方法在我的一侧进行检查: public static boolean isDateValid(SimpleDateFormat dateFormat, String date) { try { dateFormat.parse(date); return true; } catch (ParseException e) { e.printStackTrace();

用户应以下一种格式输入日期
yyyy-MM-dd
。因此,我使用以下方法在我的一侧进行检查:

public static boolean isDateValid(SimpleDateFormat dateFormat, String date) {
    try {
        dateFormat.parse(date);
        return true;
    } catch (ParseException e) {
        e.printStackTrace();
        return false;
    }
}
但即使我输入了
12-12-2012

SimpleDateFormat("yyyy-MM-dd")
您可以使用,以避免进行
lenient
分析:-

    try {
        dateFormat.setLenient(false);
        dateFormat.parse(date);
        return true;
    } catch (ParseException e) {
        e.printStackTrace();
        return false;
    }
从文档中:-

通过宽松的解析,解析器可以使用启发式来解释 与此对象的格式不完全匹配的输入。严格地 解析时,输入必须与此对象的格式匹配


你为什么要强迫用户这样做?你只需检查它是否是一个有效的日期就足够了吗?不管是什么格式?-->在oyu验证之后,您可以使用SimpleDataFormat以您希望的方式格式化日期be@tenhouse:在这种情况下,2012年12月10日是什么日期?12月10日还是10月12日?好主意,谢谢你的建议。@njzk2同意。我没想到这个日期字符串来自用户输入,比如EditText。。。如果是的话。。。您可以使用DatePicker或DatePickerDialog代替标题。在这种情况下,12-12-12被视为“yyyy-MM-dd”日期格式的有效数据。它可能被视为
0012-12-12
。如果它是这样做的,它可能也适用于-
12-2-2
。请试一试。