怎么判断用户输入的出生日期添加到数据库是否合法?Java

怎么判断用户输入的出生日期添加到数据库是否合法?使用Java语法。。谢谢

   String eL= "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
        String checkValue = "2007-02-29";
        Pattern p = Pattern.compile(eL);
        Matcher m = p.matcher(checkValue);
        if(m.matches()){
            System.out.println("true");
        }
        else{
            System.out.println("false");
        }

正则判断格式正确与否

如果你是想判断格式的话,用正则最好了,关于正则http://www.runoob.com/regexp/regexp-syntax.html,可以前台用js判断然后如果格式不对就不把值传到后台,并在前台提示格式错误,这个需要js来做。

正则是个不错的选择,还有就是用SimpleDateFormat 按格式进行转换,再进行判断。

如果是YYYY-MM-DD这样的格式,可以这样写:

    String str = "2017-06-30";
    String regEx = "**^\\d{4}-\\d{1,2}-\\d{1,2}$**";
    Pattern pattern = Pattern.compile(regEx);
    Matcher matcher = pattern.matcher(str);

    System.out.println(matcher.matches());

如果是从前台web传进来,建议用Wdatepicker插件,根据文档设置。如果只是后台java代码验证,那么可以用正则表达式

我最近用到的,可以参考下
/**
* 校验时间是否合法
* @return
*/
public static boolean isValid(String s, String format) {
DateFormat fmt = new SimpleDateFormat(format);
try {
fmt.parse(s);
return true;
} catch (Exception e) {
// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
return false;
}
}

前台如果是HTML5的话,使用input域属性 type="date",方便用户输入,格式也正确

前台如果是HTML5的话,使用,方便用户输入,格式也正确

日期这种东西不都是要组件选择么,手动输入又麻烦又容易出问题

datasimpleformat做转换,成为你需要的格式

用my97DatePicker/WdatePicker.js 插件,可以自定义日期的格式