import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.ImmutableMap;
import java.util.regex.Pattern;
public JSONObject getBirthdateAndSexByIdNumber(String idNumber){
Pattern pattern = Pattern.compile("^[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$");
boolean matches = pattern.matcher(idNumber).matches();
if(matches){
String year = idNumber.substring(6, 10);
String month = idNumber.substring(10, 12);
String day = idNumber.substring(12, 14);
String birthDate = year + "-" + month + "-" + day;
char genderChar = idNumber.charAt(16);
int sexChar = genderChar - 48;
int gender = 1;
if(sexChar%2 == 0){
gender = 2;
}
return new JSONObject(ImmutableMap.of("birthDate", birthDate, "gender", gender));
}
return null;
}