IdcardUtil增加convert18To15方法

This commit is contained in:
Looly 2022-09-14 21:49:22 +08:00
parent ac3fc026e1
commit c7bb17138e
3 changed files with 21 additions and 0 deletions

View File

@ -8,6 +8,8 @@
### 🐣新特性
* 【core 】 BooleanUtil的andOfWrap和orOfWrap()忽略nullissue#2599@Github
* 【jwt 】 优化JWT自动识别header中的算法并可自定义header中key的顺序issue#I5QRUO@Gitee
* 【core 】 IdcardUtil增加convert18To15方法issue#I5QYCP@Gitee
### 🐞Bug修复
* 【core 】 修复ObjectUtil.defaultIfXXX中NPE问题pr#2603@Github
* 【db 】 修复Hive2驱动无法识别问题issue#2606@Github

View File

@ -146,6 +146,19 @@ public class IdcardUtil {
return idCard18.toString();
}
/**
* 将18位身份证号码转换为15位
*
* @param idCard 18位身份编码
* @return 15位身份编码
*/
public static String convert18To15(String idCard) {
if (StrUtil.isNotBlank(idCard) && IdcardUtil.isValidCard18(idCard)) {
return idCard.substring(0, 6) + idCard.substring(8, idCard.length() - 1);
}
return idCard;
}
/**
* 是否有效身份证号忽略X的大小写<br>
* 如果身份证号码中含有空格始终返回{@code false}

View File

@ -46,6 +46,12 @@ public class IdcardUtilTest {
Assert.assertEquals("33010219200403064X", convert15To18Second);
}
@Test
public void convert18To15Test() {
String idcard15 = IdcardUtil.convert18To15("150102198807303035");
Assert.assertEquals(ID_15, idcard15);
}
@Test
public void getAgeByIdCardTest() {
DateTime date = DateUtil.parse("2017-04-10");