用正则表达式啦。apache都这个package download.
jdk1.4也包含了。

解决方案 »

  1.   

    《java核心技术:卷I》中有介绍
      

  2.   

      select convert(datetime,'"+datevar+"')
    本办法,通过数据库校验。
      

  3.   

    用javascript!
    http://javascript.internet.com/forms/val-date.html
      

  4.   

    上面的方法是在客户端进行验证,用java的话应该就是在服务端进行验证了!
    我用过oro的正则表达式的包(apache的网站上有):
    import org.apache.oro.text.perl.*;Perl5Util util=new Perl5Util();
    String input;
    String patten;
    if(util.match("/patten/",input))
    {
        result="true";
    }
    那个正则匹配你自己添一下就行了!
      

  5.   

    前面有N篇贴子都介绍了,你不先查一查再提问吗?再说一次,用SimpleDateFormat类。
      

  6.   

    请教hyhong_h(黄黄):SimpleDateFormat我看了,可是还是不太会用,你可以给出源代码吗?
      

  7.   


     // Format the current time.
     SimpleDateFormat formatter
         = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss a zzz");
     Date currentTime_1 = new Date();
     String dateString = formatter.format(currentTime_1);
     
     // Parse the previous string back into a Date.
     ParsePosition pos = new ParsePosition(0);
     Date currentTime_2 = formatter.parse(dateString, pos);
     
    不过这种好像不适用于你的这种情况,是将日期型数据转换成特定的格式输出,而不是检查Text中输入的是正确的日期
    你应该用: redstarstar(红星星) 的方法试试或者你可以试试下面这段代码,意见而已不一定正确::t3.addTextListener(new T1());//t3是textFiled类型
    t3.addKeyListener(new T1K());、
    string ts;
    class T1 implements TextListener
    {
    public void textValueChanged(TextEvent e)
    {
     String ss=t3.getText();
     if(ss.length()==8)
     {
    ts=t3.getText();
     }
    if(ss.length()>8)
    {t3.setText(ts);}

    }
    }
    class T1K extends KeyAdapter
    {
    public void keyTyped(KeyEvent e)
    {
     ts=t3.getText();
    if((ts.length()==2)||(ts.length()==5))
    {
    t3.setText(ts+":");
    t3.setCaretPosition(t3.getText().length());

    }
    if(ts.length()==8)
    { ts=t3.getText();

    }
    }
    }
    //记的把该textField按钮加入frame中或者applet中试试看
      

  8.   

    楼上的方法太复杂了吧?SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try
    {
      sdf.parse(str);
    }
    catch(ParseException e)
    {
      System.out.println("不符合指定的日期格式!");
      return;
    }System.out.println("日期格式正确!");
      

  9.   

    如下Applet,最后结果“日期格式正确”,请教诸位大侠,该如何解决。(我只是用在Applet中),分我一定会给,但我想得到一个比较完善的答案.import java.applet.Applet;
    import java.text.*;public class Date extends Applet 
    {
        public void init()
        {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String str = "1234-56-78";        try
            {
              sdf.parse(str);
            }
            catch(ParseException e)
            {
              System.out.println("不符合指定的日期格式!");
              return;
            }
            
            System.out.println("日期格式正确!"); 
        }
    }
      

  10.   

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setLenient(false);try
    {
      if(!sdf.format(sdf.parse(str)).equals(str))
      {
        System.out.println("不符合指定的日期格式!");
        return;
      }
    }
    catch(ParseException e)
    {
      System.out.println("不符合指定的日期格式!");
      return;
    }System.out.println("日期格式正确!"); 
      

  11.   

    String tmp = "1234-56-78";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    try {
        if (sdf.format(sdf.parse(tmp)).equalsIgnoreCase(tmp)) System.out.println("OK");
        else System.out.println("Err");
    }
    catch (Exception ex) {
        System.out.println("Err");
    }
      

  12.   

    我再来插一句,虽然上面的方法可以检验2001-01-01是合法的日期,但是如果用户比较懒输入的是2001-1-1,如果没有转换程序,那上面的程序有没有办法改动一下实现呢?
    另外,我有某位好心人的javascript的检验代码,还比较好,需要的留下E-mail。