java - 使用 java Date 和 SimpleDateFormat 验证范围

标签 java validation date range

<分区>

当我尝试使用此处的代码解析日期时,是否存在可以处理的日期异常:

try{
   SimpleDateFormat df = new SimpleDateFormat("dd:MM:yyyy"); 
   Date date = df.parse(dateRelease);
}catch (ParseException e) {} 

嗯,如果“dateRelease”的格式类型不正确,它会抛出 ParseException,但我想知道是否有人写成“40/03/2010”——日、月或年无效范围错误。实际上,当发送无效日期时,SimpleDateFormat 只是创建一个具有默认数字的新日期。

我是否必须使用正则表达式创建自己的方法来处理它,或者是否存在告诉我要捕获的现有异常?

最佳答案

通过 SimpleDateFormat#setLenient() 使其变得不宽容值为 false

SimpleDateFormat df = new SimpleDateFormat("dd:MM:yyyy"); 
df.setLenient(false);
Date date = df.parse(dateRelease);

当日期不在有效范围内时,它将抛出 ParseException

关于java - 使用 java Date 和 SimpleDateFormat 验证范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4362363/

相关文章:

php - 有没有办法根据日期倒计时 4 周(一周一周)? PHP/MySQL

java - 日期解析失败

java - 当我清除我在 [Java] 中添加的临时列表时,列表中的列表变为空

java - 从 xslt 调用 java 静态方法时出错

java - 从 robovm 项目创建 iOS 静态库(JNI 中的 BAD_ACCESS)

php - 关于在 Javascript 和 PHP 之间共享验证规则的建议?

java - 在 Java 中实现 "system"命令

android - 如何在弹出窗口中显示输入错误?

c# - 模型 View 演示器 : Validate UI

sql - 使用 postgres 将 Excel 日期格式转换为常规日期