3 回答
TA贡献1735条经验 获得超5个赞
您想要的是自定义方法,因为您对日期的有效性设置了特殊限制。
以下通过了您的所有 4 个示例:
public static boolean validDate(String date) {
date = date.trim();
if (date.length() < 6)
return false;
String[] parts = date.split("/");
if (parts.length != 2)
return false;
int month = 0;
try {
month = Integer.parseInt(parts[0]);
} catch (NumberFormatException e) {
e.printStackTrace();
return false;
}
if (month < 1 || month > 12)
return false;
int year = 0;
try {
year = Integer.parseInt(parts[1]);
} catch (NumberFormatException e) {
e.printStackTrace();
return false;
}
if (year < 1000)
return false;
return true;
}
public static void main(String[] args) {
String s1 = "09/20";
String s2 = "13/5651";
String s3 = "3/2104";
String s4 = "03/2010";
System.out.println(s1 + " " + validDate(s1));
System.out.println(s2 + " " + validDate(s2));
System.out.println(s3 + " " + validDate(s3));
System.out.println(s4 + " " + validDate(s4));
}
将打印:
09/20 false
13/5651 false
3/2104 true
03/2010 true
我不确定这部分:
if (year < 1000)
return false;
如果你愿意,你可以改变它。
TA贡献1712条经验 获得超3个赞
public boolean isThisDateValid(String dateToValidate, String dateFromat){
if(dateToValidate == null){
return false;
}
SimpleDateFormat sdf = new SimpleDateFormat(dateFromat);
sdf.setLenient(false);
try {
//if not valid, it will throw ParseException
Date date = sdf.parse(dateToValidate);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
return false;
}
return true;
}
参考https://www.mkyong.com/java/how-to-check-if-date-is-valid-in-java/
添加回答
举报