写了个判断用户输入生日字符串是否合法的方法,前提是输入字符串格式为yyyyMMdd。
public static boolean checkBirthDay(String birthday) {
if (Common.empty(birthday)) {
return false;
}
if (birthday.length() != 8) {
return false;
}
Pattern pattern = Pattern
.compile("^[1,2]\\d{3}(0[1-9]||1[0-2])(0[1-9]||[1,2][0-9]||3[0,1])$");
Matcher matcher = pattern.matcher(birthday);
if (!matcher.matches()) {
return false;
}
Date birth = null;
try {
birth = new SimpleDateFormat("yyyyMMdd").parse(birthday);
} catch (ParseException e) {
e.printStackTrace();
}
if (!new SimpleDateFormat("yyyyMMdd").format(birth).equals(birthday)) {
return false;
}
// 获取当前日期的毫秒数
long currentTime = System.currentTimeMillis();
// 获取生日的毫秒数
long birthTime = birth.getTime();
// 如果当前时间小于生日,生日不合法。反之合法
if (birthTime > currentTime) {
return false;
}
return true;
}
原文:http://blog.csdn.net/justyuze/article/details/44347365