public class IdcardUtil extends Object
本工具并没有对行政区划代码做校验,如有需求,请参阅(2020年12月): http://www.mca.gov.cn/article/sj/xzqh/2020/20201201.html
Constructor and Description |
---|
IdcardUtil() |
Modifier and Type | Method and Description |
---|---|
static String |
convert15To18(String idCard)
将15位身份证号码转换为18位
15位身份证号码遵循GB 11643-1989标准。 |
static String |
convert18To15(String idCard)
将18位身份证号码转换为15位
|
static int |
getAge(String idcard)
根据身份编号获取年龄,只支持15或18位身份证号码
|
static int |
getAge(String idcard,
Date dateToCompare)
根据身份编号获取指定日期当时的年龄年龄,只支持15或18位身份证号码
|
static String |
getBirth(String idCard)
根据身份编号获取生日,只支持15或18位身份证号码
|
static DateTime |
getBirthDate(String idCard)
从身份证号码中获取生日日期,只支持15或18位身份证号码
|
static Short |
getBirthDay(String idcard)
根据身份编号获取生日天,只支持15或18位身份证号码
|
static Short |
getBirthMonth(String idcard)
根据身份编号获取生日月,只支持15或18位身份证号码
|
static Short |
getBirthYear(String idcard)
根据身份编号获取生日年,只支持15或18位身份证号码
|
static CIN |
getCIN(String idcard)
获取公民身份证(CIN)信息,包括身份、城市代码、生日、性别等
|
static String |
getCityCode(String idcard)
根据身份编号获取地市级编码,只支持15或18位身份证号码
获取编码为4位 |
static String |
getDistrictCode(String idcard)
根据身份编号获取区县级编码,只支持15或18位身份证号码
获取编码为6位 |
static int |
getGender(String idcard)
根据身份编号获取性别,只支持15或18位身份证号码
|
static String |
getProvince(String idcard)
根据身份编号获取户籍省份,只支持15或18位身份证号码
|
static String |
getProvinceCode(String idcard)
根据身份编号获取户籍省份编码,只支持15或18位身份证号码
|
static String |
hide(String idcard,
int startInclude,
int endExclude)
隐藏指定位置的几个身份证号数字为“*”
|
static boolean |
isValidCard(String idCard)
是否有效身份证号,忽略X的大小写
如果身份证号码中含有空格始终返回 false |
static boolean |
isValidCard10(String idcard)
是否有效的10位身份证号码,一般用于判断和验证台湾、澳门、香港身份证
|
static boolean |
isValidCard18(String idcard)
判断18位身份证的合法性
根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。
|
static boolean |
isValidCard18(String idcard,
boolean ignoreCase)
判断18位身份证的合法性
根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。
|
static boolean |
isValidHkMoHomeReturn(String idCard)
港澳居民来往内地通行证,俗称:回乡证,通行证号码组成规则:
通行证证件号码共11位。 |
public static String convert15To18(String idCard)
idCard
- 15位身份编码public static String convert18To15(String idCard)
idCard
- 18位身份编码public static boolean isValidCard(String idCard)
false
idCard
- 身份证号,支持18位、15位和港澳台的10位public static boolean isValidCard18(String idcard)
判断18位身份证的合法性
根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。顺序码: 表示在同一地址码所标识的区域范围内,对同年、同月、同 日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配 给女性。
第十八位数字(校验码)的计算方法为:
idcard
- 待验证的身份证public static boolean isValidCard18(String idcard, boolean ignoreCase)
判断18位身份证的合法性
根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。顺序码: 表示在同一地址码所标识的区域范围内,对同年、同月、同 日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配 给女性。
第十八位数字(校验码)的计算方法为:
idcard
- 待验证的身份证ignoreCase
- 是否忽略大小写。true
则忽略X大小写,否则严格匹配大写。public static boolean isValidCard10(String idcard)
idcard
- 台湾、澳门、香港身份证号码public static String getBirth(String idCard)
idCard
- 身份编号public static DateTime getBirthDate(String idCard)
idCard
- 身份证号码public static int getAge(String idcard)
idcard
- 身份编号public static int getAge(String idcard, Date dateToCompare)
idcard
- 身份编号dateToCompare
- 以此日期为界,计算年龄。public static Short getBirthYear(String idcard)
idcard
- 身份编号public static Short getBirthMonth(String idcard)
idcard
- 身份编号public static Short getBirthDay(String idcard)
idcard
- 身份编号public static int getGender(String idcard)
idcard
- 身份编号public static String getProvinceCode(String idcard)
idcard
- 身份编码public static String getProvince(String idcard)
idcard
- 身份编码public static String getCityCode(String idcard)
idcard
- 身份编码public static String getDistrictCode(String idcard)
idcard
- 身份编码public static String hide(String idcard, int startInclude, int endExclude)
idcard
- 身份证号startInclude
- 开始位置(包含)endExclude
- 结束位置(不包含)CharSequenceUtil.hide(CharSequence, int, int)
public static CIN getCIN(String idcard)
idcard
- 15或18位身份证CIN
public static boolean isValidHkMoHomeReturn(String idCard)
参考文档《港澳居民来往内地通行证号码规则》: https://www.hmo.gov.cn/fwga_new/wldjnd/201711/t20171120_1333.html
idCard
- 身份证号码Copyright © 2025. All rights reserved.