前阵子隔壁组排查线上问题,查了两天没头绪,最后发现服务器时区和本地不一致,整批日志时间戳错了一截。日志写着凌晨三点,实际业务在上午,顺着时间线反推因果全推反了,雾里看花。
更阴的是时钟回拨。NTP校时那一刻系统时间可能被往回拨几秒,你要是用时间戳做去重,比如订单接口防重复提交,回拨后"现在"比刚才还早,同一笔单子就被当新的放过去。钱悄无声息地飞了,账面还对得上,对账才露馅。
还有人图省事把时间当字符串拼起来比大小,跨时区一排序就乱,UTC和本地混着写。浮点的温柔一刀好歹能复现,这时间的冷箭连复现都靠运气。
时间看着人人都懂,落到代码里处处是坑。你们还踩过什么时间的雷,说来听听。