日期验证无效

时间:2011-03-01 18:15:47

标签: java parsing validation date

日期验证无法正常运行。 如果day = 90,month = 1且year = 1990 验证不起作用。它将日期切换为3月,无需验证。 我该如何验证呢?

DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");

Date date;

try {
    date = formatter.parse(day + "/" + month + "/" + year);
} catch (ParseException e) {
    error = Boolean.TRUE;
    errorMessage = "Invalid date";
    return null;
}

2 个答案:

答案 0 :(得分:3)

查看setLenient()方法,该方法默认为true

尽管如此,我认为即使设置为false,仍然存在一些问题。您可能需要考虑使用JodaTime,这样可以更容易。

答案 1 :(得分:1)

你错过了什么。 Simpledataformat将只检查数据格式。如果日期无效(30日成为3月1日),它将滚动日期。因此,一旦检查格式,还要检查日期是否相同。

(!sdf.format(日期).equals(dateString))         {           errorMessage =“您提供的日期无效。”;           返回false;         }