日期验证无法正常运行。 如果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;
}
答案 0 :(得分:3)
查看setLenient()
方法,该方法默认为true
。
尽管如此,我认为即使设置为false
,仍然存在一些问题。您可能需要考虑使用JodaTime,这样可以更容易。
答案 1 :(得分:1)
你错过了什么。 Simpledataformat将只检查数据格式。如果日期无效(30日成为3月1日),它将滚动日期。因此,一旦检查格式,还要检查日期是否相同。
(!sdf.format(日期).equals(dateString)) { errorMessage =“您提供的日期无效。”; 返回false; }