在String类中有N个方法可以帮你实现:
getChars()
indexOf()
matches()
substring()
...........

解决方案 »

  1.   

    用SimpleDataFormat格式后与原日期匹配,如成功表示正确,否则错误。
      

  2.   

    把字符串转化为日期类型,把这个语句用用try,catch包含起来,日期格式不对的话,就会抛出异常,这样你就可以对其进行操作了。
      

  3.   

    SimpleDataFormat是在哪个包里的???
      

  4.   

    SimpleDataFormat 不抛出异常,认为是正确,DateFormat或Calend也一样
      

  5.   

    如果确定分隔符是“-”,完全可以用string里面的split
    然后用Integer.parseInt()
    一个一个的放到Calendar的那个实现类里(好像叫G……Calendar,具体查一下文档吧:p)
    new一下,成与不成就出来了
      

  6.   

    不就是判断吗?把字符串以'-'截取出来换成整型 
    年判断是否4位
    月判断是否2位&&小于13  
    日判断是否2位&&(<30||<31判断是看月)
      

  7.   

    public boolean DateIsTrue(int year,int month,int day)
      {
        boolean DateisOk=true;
        switch(month)
        {
          case 2:
            switch( year/4)
            {
              case 0:
                if(day>29)
                  DateisOk=false;
                break;
              default :
                if(day>28)
                  DateisOk=false;
                break;
            }
            break;
          case 4:
          case 6:
          case 9:
          case 11:
            if(day>30)
              DateisOk=false;
        }
        return DateisOk;
      }
      

  8.   

    本人用的是列表框
    day 1-31
    month 1-12
    year 4位数
      

  9.   

    /**
         * 日期时间合法性的判断
         * @param nYear
         * @param nMonth
         * @param nDay
         * @param nHour
         * @param nMinute
         * @param nSecond
         * @return
         */
        public boolean isValidate_Date(int nYear,int nMonth,int nDay,
                                       int nHour,int nMinute,int nSecond) {
            this.year = nYear;
            this.month = nMonth;
            this.day = nDay;
            this.hour = nHour;
            this.minute = nMinute;
            this.second = nSecond;
            boolean isValidateYear = isValidate_Year(this.year);
            boolean isValidateMonth = isValidate_Month(this.month);
            boolean isValidateDay = isValidate_Day(this.year,this.month,this.day);
            boolean isValidateHour = isValidate_Hour(this.hour);
            boolean isValidateMinute = isValidate_Minute(this.minute);
            boolean isValidateSecond = isValidate_Second(this.second);
            if (isValidateYear && isValidateMonth && isValidateDay && isValidateHour && isValidateMinute && isValidateSecond == true)
                return true;
            else
                 return false;
        }    /**
         * 是否是闰年
         * @param nYear
         * @return
         */    public boolean isLeapYear(int nYear) {
            Calendar cal = Calendar.getInstance();
            booleanleapYear = ( (GregorianCalendar)cal ).isLeapYear(nYear);
            if (booleanleapYear == true)
                return true;
            else
                return false;
        }    /**
         * 判断年是否合法
         * @param nYear
         * @return
         */
        private boolean isValidate_Year(int nYear) {
            if (nYear >= 2000 && nYear<= 2015 )
                return true;
            else
                return false;
        }    /**
         * 判断月是否合法
         * @param nMonth
         * @return
         */
        private boolean isValidate_Month(int nMonth) {
            if (nMonth >0 && nMonth <= 12)
                return true;
            else
                return false;    }    /**
         * 判断日是否合法
         * @param nDay
         * @return
         */
        private boolean isValidate_Day(int nYear,int nMonth,int nDay) {
            int nMax;
            if (nMonth ==4 || nMonth == 6 || nMonth == 9 || nMonth ==11 )
                nMax =30;
            else if (nMonth ==2){
                    if (isLeapYear(nYear) == true)
                        nMax =29;
                    else
                        nMax = 28;
           }
           else
                    nMax = 31;
           if (nDay >0 && nDay <= nMax)
                return true;
           else
                return false;
        }    /**
         * 判断小时的合法性
         * @param nHour
         * @return
         */    private boolean isValidate_Hour(int nHour) {
            if (nHour > 0 && nHour <= 23)
                return true;
            else
                return false;
        }    /**
         *分钟合法性判断
         * @param nMinute
         * @return
         */    private boolean isValidate_Minute(int nMinute) {
            if (nMinute > 0 && nMinute <= 59)
                return true;
            else
                return false;
        }    /**
         * 秒合法性的判断
         * @param nSecond
         * @return
         */    private boolean isValidate_Second(int nSecond) {
            if (nSecond > 0 && nSecond <= 59)
                return true;
            else
                return false;
        }
      

  10.   

    我去查过API,应该就是SimpleDateFormat,你可以去看看,而且有些书上也举过例子,但是我在网吧,所以没办法传上去(主要是我忘记了)。
      

  11.   

    如果用SimpleDateFormat,它好像认为2004-1-1和2004-01-01都是属于yyyy-MM-dd类型的
      

  12.   

    呵呵,送上函数。  public boolean checkDate(String year, String month, String day){
        boolean ret = true;    try{
          int intY = Integer.parseInt(year);
          int intM = Integer.parseInt(month) - 1;
          int intD = Integer.parseInt(day);
          Calendar cl = new GregorianCalendar(intY, intM, intD);
          if (cl.get(Calendar.YEAR) !=intY || 
              cl.get(Calendar.MONTH) !=intM || 
              cl.get(Calendar.DATE) !=intD) {
            ret = false;
          }
        } catch(Exception e) {
          ret = false;
        }    return ret;
      }
      

  13.   

    SimpleDateFormat不管用的,就算你写成2003-01-32,他会自动转换成2003-02-01