正则校验录入日期是否有效(含润年)

private static final Pattern pattern_yyyy_mm_dd = Pattern.compile("(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)");

private static boolean checkDateFormat(String dateStr){
	Matcher mch=pattern_yyyy_mm_dd.matcher(dateStr);
	mch.reset();
	return mch.find();
}

public static void main(String[] args) {
	String endDate = "2020-02-29";String msg ="";
	if(! checkDateFormat(endDate)){
		 msg="END_DATE不合法或格式不正确!";
	}else{
        msg="END_DATE正确!";
     }
     System.out.println(msg);
}
原文地址:https://www.cnblogs.com/hmhhz/p/12515560.html