我想创建一种方法来使用SimpleDateFormat
.
如果日期有效(例如02/09/2012
or2/09/2012
或02/9/2012
),此方法应返回true。
但是如果日期的格式错误(例如02/09/201X
)或逻辑错误(例如32/09/2012
),这个方法应该返回false。
我试着这样写这个方法:
private boolean isValidDate(String date) {
DateFormat df1 = new SimpleDateFormat("dd-MM-yyyy");
DateFormat df2 = new SimpleDateFormat("d-MM-yyyy");
DateFormat df3 = new SimpleDateFormat("dd-M-yyyy");
Date d = null;
String s = null;
try {
d = df1.parse(date);
}catch (Exception e1) {
try{
d = df2.parse(date);
}catch (Exception e2) {
try {
d= df3.parse(date);
}catch (Exception e3) {
return false;
}
s = df3.format(d);
return date.equals(s);
}
s = df2.format(d);
return date.equals(s);
}
s = df1.format(d);
return date.equals(s);
}
但是,如果我验证一个日期,例如 ,2/09/2012
它会返回false(实际上它应该返回true)。我不知道为什么......谁能找到我的代码有什么问题,或者这个逻辑完全错误?有没有更好的方法来做这个验证?