public static Date getBirthdayByIDCARD(String IDCard) {
String myRegExpIDCardNo = "^\\d{6}(((19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\\d{3}([0-9]|x|X))|(\\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\\d{3}))$";
boolean valid =
Pattern.matches(myRegExpIDCardNo, IDCard) || (IDCard.length() == 17 && Pattern.matches(myRegExpIDCardNo,
IDCard.substring(
0, 15)));
if (!valid) {
return null;
}
int birthYearSpan = 4;
//如果是15位的证件号码
if (IDCard.length() == 15) {
birthYearSpan = 2;
}
//出生日期
String year = (birthYearSpan == 2 ? "19" : "") + IDCard.substring(6, 6 + birthYearSpan);
String month = IDCard.substring(6 + birthYearSpan, 6 + birthYearSpan + 2);
String day = IDCard.substring(8 + birthYearSpan, 8 + birthYearSpan + 2);
Calendar calendar = Calendar.getInstance();
calendar.set(Integer.parseInt(year), Integer.parseInt(month) - 1, Integer.parseInt(day), 0, 0, 0);
return calendar.getTime();
}
由身份证号码得到生日Date
最新推荐文章于 2022-04-22 16:48:07 发布