我现在编制一个程序,需要在文本框中输入日期格式的数字字符串,格式如:2005-11-1,然后点击按钮。请问:如何编写才能检测出我输入的这个日期是不是正确的呢?
不正确的情况如下:
1、输入了错误的字符串,如:2005-a0-10
2、输入的数字字符位数错误,如:205-11-1
3、输入的日期错误,如:2005-11-32,把11分输入了32天。
最后此检测程序还需要能正确识别以下格式:(输入以下都按正确检测)
2005-11-1    2005-11-01     2005-7-21 2005-07-21    2005-01-10    2005-1-1
希望高手能给编写一下,小弟不胜感激!

解决方案 »

  1.   

    DateFormat可以设置为不宽容的DateFormat d=new SimpleDateFormat("yyyy-MM-dd");
    d.setLenient(false);
    Date day=d.parse("2005-11-32");
    这就会出错,
    java.text.ParseException: Unparseable date: "2005-11-32"
    捕捉这个异常就可以了
      

  2.   

    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;/**
     * @author ww
     * 
     * TODO To change the template for this generated type comment go to Window -
     * Preferences - Java - Code Style - Code Templates
     */
    public class DateUtil {
            public static boolean isDate(String sDate, String sFmt) {
            Date dt = null;
            try {
             DateFormat df = new SimpleDateFormat(sFmt);
             df.setLenient(false);
                dt = df.parse(sDate);
            } catch (ParseException e) {
                return false;
            }
            return true;
        } public static void main(String[] args) {
    String df = "yyyy-MM-dd";
    String date = "2001-2-29";
    System.out.println(isDate(date, df));
    }
    }