java - 检查日期格式的验证未按预期工作

标签 java

我有以下代码来检查有效的格式日期

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/

相关文章:

java - IntelliJ IDEA 不在构建时复制资源

java - 从浏览器重定向到 Android 应用

java - 找不到 context.xml 文件

java - 当我定义一个抽象类而不是声明时会发生什么。

java - 获取 xml 文件的内容并将内容存储到字符串中以便解析内容

java - 使用 CommonsMultipartFile 将文件转换为 MultipartFile

java - CFPDF 或 Java : get trimbox size of pdf file

java - 在 Java 中定义类型转换

java - 如何在二维数组上使用 foreach 循环来表达 for 循环?

java - hibernate一对多注释无效的列名