如题,网上查了说是1986-1991年有夏令时导致日期会少一天,但是用了网上在getBirthday方法上加TimeZone.setDefault(TimeZone.getTimeZone("GMT+08"))这行代码后发现第一次请求的时候还是返回错误的生日,但是第二次请求开始就返回对的生日了,不知道是什么原因?
如题,网上查了说是1986-1991年有夏令时导致日期会少一天,但是用了网上在getBirthday方法上加TimeZone.setDefault(TimeZone.getTimeZone("GMT+08"))这行代码后发现第一次请求的时候还是返回错误的生日,但是第二次请求开始就返回对的生日了,不知道是什么原因?
直接从身份证号中截取年/月/日,重新组合一下就可以得到 yyy-MM-DD
格式的生日,不需要用到日期处理函数啊。
const id = "11010119900307969X"; // 这是一个随机生成的身份证号
const birthday = `${id.slice(6, 10)}-${id.slice(10, 12)}-${id.slice(12, 14)}`;
console.log(birthday);
8 回答6.5k 阅读
2 回答3.4k 阅读
4 回答637 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答950 阅读✓ 已解决
1 回答1.9k 阅读
夏令时只是加1个小时,中国大陆地区实行夏令时的时间段为:
你所谓转换的问题,大概是这样的,要么是前端传了一个具体的时间给你比如'1986-06-01 00:00:00',要么是你在生成日期的时候,直接把日期'1986-06-01'取了个datetime得到了'1986-06-01 00:00:00',这个时间在『1986年5月4日至9月14日』内,那么getBirthday会减1个小时,你会得到'1986-05-31 23:00:00',看上去日期提前了一天。但是如果一个时间不在夏令时段以内,比如'1986-04-01 00:00:00'这个时间getBirthday就不会减1个小时。
希望能帮助到你。