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
。请试一试。