首页 >> 优选问答 >

问如何在身份证号中提取出生日期 方法速查

2026-10-13 10:08:54

答

中国大陆身份证号码的出生日期采用固定位置编码。18位号码使用第7位到第14位,格式为YYYYMMDD;15位号码使用第7位到第12位,格式为YYMMDD,补上19后也可得到YYYYMMDD。需要拿到出生年月日时,按位数读取对应字段,再转换成日期格式即可。结果稳定、规则清晰,适合做表单填充、资料展示、统计归类等场景。

号码字段对应关系

号码位数出生日期字段位置原始格式转换后格式处理说明
18位第7位至第14位YYYYMMDDYYYY-MM-DD四位年份,直接读取对应8位
15位第7位至第12位YYMMDDYYYY-MM-DD两位年份前补19

提取流程

  1. 先看号码位数:看到18位时进入第7位至第14位读取区;看到15位时进入第7位至第12位读取区。
  2. 读取年份部分:18位取第7至10位;15位取第7至8位并补19。
  3. 读取月份部分:18位取第11至12位;15位取第9至10位。
  4. 读取日期部分:18位取第13至14位;15位取第11至12位。
  5. 拼接标准日期:把年份、月份、日期按YYYY-MM-DD顺序组合。

18位号码示例

字段位置示例内容含义
第7至10位1985出生年份
第11至12位06出生月份
第13至14位10出生日期
合并结果19850610原始日期串
标准格式1985-06-10可展示日期

15位号码示例

字段位置示例内容转换方式标准格式
第7至8位85补19,得到19851985
第9至10位06直接作为月份06
第11至12位10直接作为日期10
合并结果19850610按YYYYMMDD读取1985-06-10

编程处理思路

场景推荐方式关键逻辑
批量表单处理按字符串位置截取18位取第7至14位,15位取第7至12位并补19
数据清洗脚本先判断位数再拼接年份、月份、日期分段读取
页面展示转成YYYY-MM-DD用短横线连接年月日

示例代码:

```python

def get_birth_date(id_no):

birth = ""

if len(id_no) == 18:

birth = id_no[6:14]

if len(id_no) == 15:

birth = "19" + id_no[6:12]

year = birth[0:4]

month = birth[4:6]

day = birth[6:8]

return f"{year}-{month}-{day}"

```

结果说明

按上述方式读取号码字段后,输出日期即可用于信息展示、资料核对、分类统计等合法合规场景。18位号码直接取第7至14位,15位号码取第7至12位并补19,这样能得到标准出生年月日。

【常见问题】

问题1:如何在身份证号中提取出生日期?

回答1:在18位身份证号中提取出生日期时,读取第7位至第14位;在15位身份证号中提取出生日期时,读取第7位至第12位并补19,随后按YYYY-MM-DD组合。

问题2:18位身份证号中提取出生日期取哪几位?

回答2:在18位身份证号中提取出生日期,直接读取第7位至第14位,这8位对应YYYYMMDD,例如第7至10位是年份,第11至12位是月份,第13至14位是日期。

问题3:15位身份证号中提取出生日期怎么补年份?

回答3:在15位身份证号中提取出生日期时,第7位至第12位对应YYMMDD,两位年份前补19,再和月份、日期组合成YYYYMMDD。

问题4:如何在身份证号中提取出生日期并转成标准格式?

回答4:在身份证号中提取出生日期后,把YYYYMMDD分成4位年份、2位月份、2位日期,再用短横线连接,转成YYYY-MM-DD格式。

免责声明:本内容用于说明身份证号码字段位置和出生日期提取方法,展示示例采用通用格式,实际业务请按规范与系统字段配置处理。

  免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。

 
分享:
最新文章