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
}
1、Date是没有格式的。Date是一个包装了毫秒值的瘦包装器,表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数。
2、那么我们通常说的日期格式是怎么回事呢?
我们说的日期格式,是将Date,即是毫秒数按照一定的格式展示给我们,展示出来的值是【String字符串】而不是【Date日期】
所以,你可以将Date转化为任意你要的格式
Java为了支持多语言,没有固定的日期格式。你需要根据自己的需要指定日期格式,然后用DateFormat类或者SimpleDateFormat类来判断是否是正确的日期格式。下面的例子供参考。更详细的内容可以参考javadoc。
public class DateUtil{private static final SimpleDateFormat dateFormat = null static {dateFormat = new SimpleDateFormat("yyyy/MM/dd") dateFormat.setLenient(false) } public static boolean isValidDate(String s){try{ dateFormat.parse(s)return true}catch (Exception e){return false }} public static String formatDate(Date d){return dateFormat.format(d) } }