如何从身份证号码中提取出生年月:看固定位数直接截取对应日期
之前帮人事整理员工档案的时候,卡在了批量录入出生年月这一步,也是那一次彻底摸清了如何从身份证号码中提取出生年月的具体方法,没靠任何工具,纯手动核对,容错率特别高。
一开始完全没摸透规律,只知道身份证号里藏着生日,却不知道具体看哪几位。随手点开十几个员工的身份证信息,要么截取的数字对不上日期,要么多一位少一位,折腾半天整理出来的信息全是错的,返工的时候特别烦躁。当时傻乎乎的逐一对着户口本信息核对,效率低到离谱,半天只能整理二三十份档案,还频频出错。
后来才反应过来,国内通用的18位二代身份证,出生年月是固定占据第7位到第14位的数字,没有任何变动规律,不用区分地区、年龄,所有人格式统一。
这八位数字是严格按照年年月月日日的顺序排列的,前四位是出生年份,中间两位是出生月份,最后两位是出生日期。比如数字20000815,拆解开来就是2000年08月15日,简单直白,没有任何弯弯绕绕。
很多人容易忽略一个细节,也是我当时踩过的最大的坑。
15位的老式一代身份证,位数和现在不一样,截取位置完全不同。早年的老身份证没有世纪年份,只有后两位年份数字,出生年月在第7位到第12位,一共六位数字,顺序同样是年年月月日日。
我之前整理老员工资料时,没区分新旧身份证,统一按18位的规则截取,结果一堆出生日期出错。比如老身份证数字950322,对应的是1995年03月22日,直接截取出来只会看到95年,不手动补19的话,录入系统就会出现2095年这种离谱的错误日期。
不需要复杂的计算、不用对照表格,所有问题就卡在新旧身份证的位数差异上。
整理档案的那天下午,对着几十份新旧身份证反复核对,慢慢摸透了最简单的操作方式。18位身份证,直接提取7到14位八位数字,拆分成年、月、日即可;15位身份证,提取7到12位六位数字,年份前补上19,再拆分月和日,百分百准确。
网上很多自动提取的工具,偶尔会识别失误,尤其是面对老式身份证的时候,经常出现年份错乱的问题。反而手动截取的方式,虽然慢一点,但精准度最高,完全不会出错。
实操的时候不用刻意记忆复杂规则,只需要先看身份证位数。日常用到的基本都是18位身份证,直接取中间八位,就是完整的出生年月,日常填表、整理信息、核对资料完全够用。
偶尔遇到年纪偏大的长辈、老员工的15位旧证件,就多补一步,六位数字前面加19,就能还原出准确的出生日期。
那次整理完所有档案的时候,天已经彻底黑透了,办公室的灯孤零零亮着,桌面上摊着一堆打印出来的身份证复印件,所有出错的日期都被一一修正,再也没有乱七八糟的错误信息。
最后悔的一件事,就是最开始没先花两分钟摸清位数规律,白白浪费了大半天的时间。