我有以下代码来检查有效的格式日期
private void validateDate(String date){
try {
String validDate = "MM/dd/yyyy";
SimpleDateFormat format = new SimpleDateFormat(validDate);
format.setLenient(false);
Date theDate = new Date();
theDate = format.parse(date);
}
catch (Exception e) {
}
}
我传递的日期值为 06/25/20014。今年格式是错误的,我预计它会抛出异常并进入 catch 内部,但它从未发生,并且它成功地通过了代码 format.parse(date);因此我的应用程序不会抛出错误。
我还调试了 format.parse(date); 行它返回“Fri Jul 31 00:00:00 MST 20015”。我不确定为什么该行没有抛出任何异常。
感谢您的帮助!!
最佳答案
在 SimpleDateFormat 的标准日期格式中,数字 'y' 不一定对应于位数(它不是正则表达式)。一个或两个 y 表示 2 位数年份(15、98 等),3 个或更多 y 表示全年。
关于java - 检查日期格式的验证未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809278/