Java 从身份证号码中获取出生日期、性别、年龄(15位和18位) 您所在的位置:网站首页 怎么从18位身份证看出来15位 Java 从身份证号码中获取出生日期、性别、年龄(15位和18位)

Java 从身份证号码中获取出生日期、性别、年龄(15位和18位)

2024-07-07 17:31| 来源: 网络整理| 查看: 265

项目场景:

提示:这次做项目的时候遇到一个工具,整理出来以后可以直接使用 问题描述:给一个String 类型的 身份证号码,需要从这串数字中获取出生日期、性别、年龄 身份证号码分为 15 位 和18 位。 从1985年,开始颁发第一代居民身份证,而第一代身份证就是15位。分别是6位行政区划代码+6位出生日期+3位顺序码 近年来,我国开始颁发第二代居民身份证,身份证号码由第一代的15升级到18位,这18位数字分别是6位行政区划代码+8位出生日期+3位顺序码+1位校验码

问题分析 15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日期,第15位代表性别,奇数为男,偶数为女。 18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。 代码部分

前提是:身份证号码要正确(即校验码正确),所以调用 方法前要保证身份证号码正确

public class IdCardNumberMethod { /** * 获取出生日期 * * @return 返回字符串类型 */ public String getBirthFromIdCard(String idCard) { if (idCard.length() != 18 && idCard.length() != 15) { return "请输入正确的身份证号码"; } if (idCard.length() == 18) { String year = idCard.substring(6).substring(0, 4);// 得到年份 String month = idCard.substring(10).substring(0, 2);// 得到月份 String day = idCard.substring(12).substring(0, 2);// 得到日 return (year + "-" + month + "-" + day); } else if (idCard.length() == 15) { String year = "19" + idCard.substring(6, 8);// 年份 String month = idCard.substring(8, 10);// 月份 String day = idCard.substring(10, 12);// 得到日 return (year + "-" + month + "-" + day); } return null; } /** * 获取出生日期 * * @return 返回日期格式 */ public Date getBirthDayFromIdCard(String idCard) throws ParseException { Date birth = null; if (idCard.length() == 18) { String year = idCard.substring(6).substring(0, 4);// 得到年份 String month = idCard.


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有