这么老的问题,google搜一下估计一大堆啊。

解决方案 »

  1.   

    //Me当初写的一个Javascript的函数,改写一下就是Java的
    //格式为yyyy-MM-dd HH24
    function checkTime(){
    var dayFlag=true;
    var maxDays=31;
    var msg;
    var re = new RegExp("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2})","ig");
    if(!re.test(match.endtime.value)){
    dayFlag=false;
    alert("日期你输错了");
    match.endtime.focus();
    }
    else{
    var yy=RegExp.$1;
    var mm=RegExp.$2;
    var dd=RegExp.$3;
    var hh=RegExp.$4;
    if ((yy<2000)||(yy>2100)){
    dayFlag=false;
    alert("日期年份错误!可能你输错了...\n年份限制2000-2099");
    match.endtime.focus();
    }
    else if ((mm<1)||(mm>12)){
    dayFlag=false;
    alert("日期月份错误");
    match.endtime.focus();
    }
    else
    {
    if (mm==4||mm==6||mm==9||mm==11) 
    maxDays = 30;
    else if(mm==2){
    if ((yy%4)>0) 
    maxDays=28;
    else if((yy%100)==0 && yy%400>0)
    maxDays=28;
    else 
    maxDays=29;
    }
    if ((dd<1)||(dd>maxDays)){
    dayFlag=false;
    alert('日期的'+mm+'月没有'+dd+'日');
    match.endtime.focus();
    }
    if ((hh<0)||(hh>23)){
    dayFlag=false;
    alert('日期中的小时超过0-23的范围');
    }
    }
    }
    return (dayFlag);
    }
      

  2.   

    用正则表达式
     ^[\d]{4}-[\d]{2}-[0-2]{1}[\d]{1}$;
     如果为闰年^[\d]{4}-[\d]{2}-[0-2]{1}[0-8]{1}$;
    Pattern.matches("[\\d]{4}-[\\d]{2}-[0-2]{1}[\\d]{1}$","2003-01-30")返回boolean
    如果为TRUE 说明日期合法