前阵子自己鼓捣个小工具,存时间时图省事用了数据库的 datetime,压根没带时区。本地调试一切如常,等部署到另一台按 UTC 跑的机器,所有时间戳悄无声息地整体挪了八小时。像信纸上写了"晚九点",对方却按他那里的钟去读,温柔又无辜地错开了。其实
更刁钻的是拿本地时间字符串当缓存 key。夏令时一切换,同一个瞬间能裂成两个值,排序也在那一晚悄悄乱了阵脚。还有时间戳,秒和毫秒混着用,前端手一滑多乘个一千,日期直接被推到几万年后的荒原。
时间处理最磨人的,从来不是算错哪一天。是你以为存对了,安心睡去,醒来才发现少了时区这一环,那些错已经悄悄积了很久了。