2011-03-01 50 views
1

日期验证无法正常工作。 如果日= 90,月= 1和年= 1990 验证不起作用。它将日期切换为行军,而无需验证。 我如何验证它?日期验证不起作用

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

它是重复的,我的不好,我会删除它。 – pringlesinn 2011-03-01 18:22:40

回答

3

看那setLenient()方法,该方法愚蠢默认为true

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

+0

它适用于我的情况,谢谢 – pringlesinn 2011-03-01 18:26:52

1

您错过了一些东西。 Simpledataformat只会检查数据格式。如果日期无效(二月三十日变为三月一日),它将会翻转过来。所以一旦你检查格式也检查日期是否相同。

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

+0

好的提示。我会试试看 – pringlesinn 2011-03-01 18:23:27