/**
     * Judge the str is yyyy-MM-dd HH:mm:ss format or not
     * Note,if no HH:mm:ss string,it also return false.
     */
    public static boolean isDate(String date)
    {
        Pattern p = Pattern.compile("([1][9][4-9][0-9])|([2][0-9][0-9][0-9])-" +
                                    "(([0]?[0-9])|([1]?[0-2]))-(([0-2]?[0-9])|([3][0-1]))" +
                                    "[ ](([0-1]?[0-9])|([2]?[0-3])):([0-5]?[0-9]):([0-5]?[0-9])$");
        Matcher m = p.matcher(date);
        boolean b = m.matches();
        return b;
    }

解决方案 »

  1.   

    SimpleDateFormat可以判断字符串是否是时间
    但格式没法控制(格式太多了)
    你如果能控制用户输入的格式,如2003-03-03这样,可以用SimpleDateFormat来判断
      

  2.   

    我编译不过去'class' or 'interface' expected
    是需要引入一些包和接口,什么包,谢谢,有一些关于正则表达式的资料吗谢谢
      

  3.   

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    public class DateStringValidator
    {
        private SimpleDateFormat sdf;    public DateStringValidator(String format)
        {
            sdf = new SimpleDateFormat(format);
        }    public boolean isDateStringValid(String s)
        {
            if(null == s)
                return false;
            else
            {
                try
                {
                    return s.equals(sdf.format(sdf.parse(s)));
                }
                catch (ParseException e)
                {
                    return false;
                }
            }
        }    public static void main(String[] args)
        {
            DateStringValidator validator = new DateStringValidator("yyyy-M-d");        System.out.println(validator.isDateStringValid("2003-2-31")); //false;
            System.out.println(validator.isDateStringValid("2003-2-28")); //true;
            System.out.println(validator.isDateStringValid("2000-2-29")); //true; 2000年是闰年 
            System.out.println(validator.isDateStringValid("2000-12-29")); //true;
            System.out.println(validator.isDateStringValid("2000-12-1")); //true;
        }
    }
      

  4.   

    java的异常处理不就可以吗??try{}catch(){}试着转换,出错就不是了:)