JAVA 判断一个字符串是不是一个合法的日期格式

Python014

JAVA 判断一个字符串是不是一个合法的日期格式,第1张

字符串匹配日期类型的时候局限性很大,需要给定具体的日期格式才行,比如匹配"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

}