private boolean checkDate(String strDate){ 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(strDate); return m.matches(); }