如何判断输入的日期格式正确?

解决方案 »

  1.   

    用日期控件比较好,建议用My97DatePicker。
      

  2.   

    用Swing的JFormattedTextField啊DateFormat format =new SimpleDateFormat("yyyy--MMMM--dd");DateFormatter df = new DateFormatter(format);JFormattedTextField ftf1 = new JFormattedTextField(df);
      

  3.   


    RegExp("^\\d{4}-\\d{1,2}-\\d{1,2}$","g");
      

  4.   

    不明白楼主系统是哪种结构C/S or B/s  ?
      

  5.   


    // 日期格式:yyyy-mm-dd
    public boolean isdate(String strdate) {
    String strseparator = "-"; // 日期分隔符
    String[] strdateArray;
    int yy;
    int mm;
    int dd;
    boolean boolleapyear; strdateArray = strdate.split(strseparator); if (strdateArray.length != 3)
    return false; try {
    yy = Integer.parseInt(strdateArray[0], 10);
    mm = Integer.parseInt(strdateArray[1], 10);
    dd = Integer.parseInt(strdateArray[2], 10);
    } catch (Exception e) {
    return false;
    } if (mm > 12 || mm < 1)
    return false; if ((mm == 1 || mm == 3 || mm == 5 || mm == 7 || mm == 8 || mm == 10 || mm == 12)
    && (dd > 31 || dd < 1))
    return false; if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && (dd > 30 || dd < 1))
    return false; if (mm == 2) {
    if (dd < 1)
    return false; boolleapyear = false;
    if ((yy % 100) == 0) {
    if ((yy % 400) == 0)
    boolleapyear = true;
    } else {
    if ((yy % 4) == 0)
    boolleapyear = true;
    } if (boolleapyear) {
    if (dd > 29)
    return false;
    } else {
    if (dd > 28)
    return false;
    }
    } return true;
    }这段程序正则表达式相对简单,楼主可以把正则表达式的相关代码换一下
      

  6.   

    如果是这种情况,就不要对格式进行限制了,在界面上支持各种格式,在后台转成特定的格式就行了,如果转成功了就继续操作,否则给出提示信息。
    以上功能可以用format来做。