Here you can find the source of checkDate(String strDate, String dateFmt)
public static boolean checkDate(String strDate, String dateFmt)
//package com.java2s; //License from project: Apache License import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static boolean checkDate(String strDate, String dateFmt) { String eL = ""; if ("yyyy-MM-dd".equals(dateFmt)) { eL = "^((\\d{2}(([02468][048])|([13579][26]))\\-((((0?[13578])|(1[02]))\\-((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))\\-((0?[1-9])|([1-2][0-9])|(30)))|(0?2\\-((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))\\-((((0?[13578])|(1[02]))\\-((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))\\-((0?[1-9])|([1-2][0-9])|(30)))|(0?2\\-((0?[1-9])|(1[0-9])|(2[0-8]))))))$"; }//from w w w .j a v a 2 s . co m Pattern p = Pattern.compile(eL); Matcher m = p.matcher(strDate); return m.matches(); } }