ToolBench

02 个工具

日期时间

Unix 时间戳与日期计算。

01时间戳转换Unix 时间戳与可读日期互转,同时给出 UTC、本地时间和 ISO 8601。秒与毫秒自动识别。→02日期差计算计算两个日期之间相隔的天数、周数、整月数和工作日。工作日会排除周六周日。→

时间计算真正出错的地方

几乎从不在算术上,而在边界上:把秒当成毫秒读、把 UTC 值当本地时间显示、合同要的是不含首尾而按含首尾算了、以及四年里有三年不存在的闰日纪念日。这几种错都会给出一个看起来合理的结果,却差了几个小时或一整天——这是最难察觉的一类 bug。

值得记住的两条规则

存 UTC、显示本地,永远不要存一个不带偏移量的本地时间。换算之前先按数量级判断时间戳单位:十位是秒,十三位毫秒,十六位微秒。这一眼能挡掉绝大多数「日期跑到 1970 年」的事故。

2038 不是理论问题

任何仍用 32 位有符号整数存秒数的系统,会在 2038 年 1 月 19 日溢出。主流技术栈已经用 64 位了,但嵌入式设备、老数据库和文件格式没有——而它的失败方式是安静的。