1. import java.util.Date;  
  2. import java.util.regex.Matcher;  
  3. import java.util.regex.Pattern;  
  4.  
  5. public class DateTest {  
  6.  public static boolean isValidDate(String sDate) {  
  7.       String datePattern1 = "\\d{4}-\\d{2}-\\d{2}";  
  8.       String datePattern2 = "^((\\d{2}(([02468][048])|([13579][26]))" 
  9.               + "[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|" 
  10.               + "(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?" 
  11.               + "((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?(" 
  12.               + "(((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?" 
  13.               + "((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";  
  14.       if ((sDate != null)) {  
  15.           Pattern pattern = Pattern.compile(datePattern1);  
  16.           Matcher match = pattern.matcher(sDate);  
  17.           if (match.matches()) {  
  18.               pattern = Pattern.compile(datePattern2);  
  19.               match = pattern.matcher(sDate);  
  20.               return match.matches();  
  21.           }  
  22.           else {  
  23.               return false;  
  24.           }  
  25.       }  
  26.       return false;  
  27.  }  
  28. }
  29.