时间处理里最阴的坑不是时区本身,是你以为自己处理对了。
new Date(‘2023-01-01’) 在浏览器里按 UTC 解析,展示却按本地时区,前后不是一套。本地开发一切正常,一部署到海外节点,零点悄悄变成早上八点,日志对不上查半天。
数据库那边也埋雷。TIMESTAMP 带时区,DATETIME 不带,两个字段混着做跨时区对账,差额能把财务看哭。存的时候统一约好 UTC,比事后打补丁省心。
还有夏令时。切换那天凭空少一小时,靠加 24 小时写的定时任务整点跑偏,不是差一秒是差一个钟。
我的做法:时间一律存 UTC,展示层再转本地,时区信息显式落库,绝不靠运行环境隐式推断。环境不一样,你机器上跑通不代表线上跑通。