开发中遇到,大家都是怎么解决的?

"东八区"不是一个统一司法区,所以没有一套通用夏令时区间。
如果你指的是你这次问题相关的中国大陆(Asia/Shanghai / 北京时间),官方 DST 区间(精确到切换时刻)是:

年份
夏令时开始
夏令时结束

1986
1986-05-04 02:00(拨到 03:00)
1986-09-14 02:00(回拨到 01:00)

1987
1987-04-12 02:00
1987-09-13 02:00

1988
1988-04-17 02:00
1988-09-11 02:00

1989
1989-04-16 02:00
1989-09-17 02:00

1990
1990-04-15 02:00
1990-09-16 02:00

1991
1991-04-14 02:00
1991-09-15 02:00

补充两个你排查时常用的结论:

  1. 中国大陆自 1991-09-15 之后不再实行夏令时。
  2. 你若按"生日=当天 00:00:00"去计算,开始日当天 00:00 还没切换,结束日当天 00:00 仍在夏令时,这会影响你"按天"判断边界。

今天线上突然来了一个问题急需解决,就是客户的身份证是:****** 19890913 ****

这种在夏令时区间内的,需要解析出来并保存到数据库中,最终到了数据库后就自动少了一天

让Codex给我修改了几个版本,都是无功而返。

最终用了最最最原始的方式解决了这个问题:在夏令时间内,默认加一天,game over

要不是看到大佬这个贴甚至都忘记之前上课的时候讲过中国也有过夏令时了