写一段JAVA代码判断日期格式是否正确

Python021

写一段JAVA代码判断日期格式是否正确,第1张

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

}

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) } }