java中如何用正则校验日期,java中正则表达式验证日期

/**

* 正则表达式验证日期格式     包括润二月

* @param args

*/

public static void main(String[] args)

{

String checkValue = "2000-03-29 23:59:59";

//带时间

String eL = "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$";

//只是日期

//            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]))))))";

Pattern p = Pattern.compile(eL);

Matcher m = p.matcher(checkValue);

boolean b = m.matches();

System.out.println(b);

if(b)

{

System.out.println("格式正确");

}

else

{

System.out.println("格式错误");

}

}

/**

*正则表达式验证日期格式     包括润二月

**/

// public static void main(String[] args) {

//  Pattern p = Pattern

//      .compile("^((\\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][12" +

//     "35679])|([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]))))))");

//     //(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$ 时间部分00:00:00 //  String s = "2003/02/29"; //  System.out.println(s + " " + p.matcher(s).matches()); //  s = "2004/02/29"; //  System.out.println(s + " " + p.matcher(s).matches()); //  s = "2004/04/31"; //  System.out.println(s + " " + p.matcher(s).matches()); //  s = "2004/04/30"; //  System.out.println(s + " " + p.matcher(s).matches()); //  s = "2004/04/30"; //  System.out.println(s + " " + p.matcher(s).matches()); //  s = "2004/09/30"; //  System.out.println(s + " " + p.matcher(s).matches()); //  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值