字符串匹配日期类型的时候局限性很大,需要给定具体的日期格式才行,比如匹配"yyyy/MM/dd hh:mm:ss"类型的就是
//方法public static boolean checkDate(String date){
try {
Date d=new SimpleDateFormat("yyyy/MM/dd hh:mm:ss").parse(date)
} catch (ParseException e) {
return false
}
return true
}
//测试方法
public static void main(String[] args) {
System.out.println(Test3.checkDate("2017/10/1 2:20:20"))
}
//运行结果
true
可能有更好的方法,这只是我能想到的
static public boolean isValidDate(int year, int mon, int day,
short year_min,short year_max,
StringBuffer msg)
{
if(year<year_min || year>year_max)
{
msg.append("年份必须在("+
year_min+"~"+year_max+
")之间,输入值("+year+")无效\n")
return false
}else if(mon<1 || mon>12){
msg.append("月份必须在(1~12)之间,输入值("+mon+")无效\n")
return false
}else if(day<1 || day>31){
msg.append("日号必须在(1~31)之间,输入值("+day+")无效\n")
return false
}else if(mon==2){
if(isLeapYear(year) &&day>29){
msg.append("闰年的闰二月日号必须在(1~29)之间,"+year+"是闰年,输入值("+day+")无效\n")
return false
}else if(day>28){
msg.append("非闰年的闰二月的日号必须在(1~28)之间,"+year+"不是闰年,输入值("+day+")无效\n")
return false
}
}
return true
}
//闰年
static public boolean isLeapYear(int year){
return (year%4==0 &&year%100!=0)|| year%400==0
}