public class DateDome{
public static boolean validateTimeFormat(String memotime){
String regex="([123]\d{3}(-|\.)(([1-9])|([0][1-9])|([1][0-2]))(-|\.)(([1-9])|([0][1-9])|([12]\d|([3][01]))))";
Pattern pattern= Pattern.compile(regex);
Matcher matcher = pattern.matcher(memotime);
if(!matcher.matches()){
return false;
}else {
String[] times=null;
if(memotime.contains("-")){
times=memotime.split("-");
}else {
times=memotime.split("\.");
}
if (times.length <3) {
return false;
}
Integer year = Integer.parseInt(times[0]);
Integer month = Integer.parseInt(times[1]);
Integer day = Integer.parseInt(times[2]);
GregorianCalendar calendar=new GregorianCalendar();
//闰年2月天数不能大于29
if(calendar.isLeapYear(year)&&(month==2)&&(day>29)){
return false;
//非闰年2月天数不能大于28
}else if((!calendar.isLeapYear(year))&&(month ==2)&&(day>28)){
return false;
}else {
switch (month){
case 4:
case 6:
case 9:
case 11:
if(day>30){
return false;
}else {
return true;
}
default :
return true;
}
}
}
}
public static void main(String[] args) {
String date="2016.12.2";
System.out.println(validateTimeFormat(date));
}
}



