- import java.util.Date;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class DateTest {
- public static boolean isValidDate(String sDate) {
- String datePattern1 = "\\d{4}-\\d{2}-\\d{2}";
- String datePattern2 = "^((\\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]))))))";
- if ((sDate != null)) {
- Pattern pattern = Pattern.compile(datePattern1);
- Matcher match = pattern.matcher(sDate);
- if (match.matches()) {
- pattern = Pattern.compile(datePattern2);
- match = pattern.matcher(sDate);
- return match.matches();
- }
- else {
- return false;
- }
- }
- return false;
- }
- }