日期正则表达式校验(支持闰年)

//YYYY-MM-DD HH:mm:ss 日期正则表达式
private static final String DATE_PATTERN_HHMMSS_REG="(((01[0-9]{2}|0[2-9][0-9]{2}|[1-9][0-9]{3})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|((01[0-9]{2}|0[2-9][0-9]{2}|[1-9][0-9]{3})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|((01[0-9]{2}|0[2-9][0-9]{2}|[1-9][0-9]{3})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((04|08|12|16|[2468][048]|[3579][26])00))-0?2-29)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d";
//YYYY-MM-DD
private static final String DATE_PATTERN_YYYYMMDD_REG="((((19|20)\\d{2})-(0?(1|[3-9])|1[012])-(0?[1-9]|[12]\\d|30))|(((19|20)\\d{2})-(0?[13578]|1[02])-31)|(((19|20)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$";

public static void main(String[] args) throws Exception{

	String dateStr1="2020-5-31 23:30";
	System.out.println(dateStr1.matches(DATE_PATTERN_HHMMSS_REG));

	String dateStr2="2020-12-3";
	System.out.println(dateStr2.matches(DATE_PATTERN_YYYYMMDD_REG));
}

 

你可能感兴趣的:(java,日期校验,日期正则表达式校验)