不是所有时间格式都从 Unix 纪元起算。Windows、Apple 平台、Excel、NTP、GPS 和 WebKit 各有各的参考日期或单位。这些工具会把它们转成 Unix 时间,同时把原本的约定摆出来给你看。
转换之前先弄清四件事
- 源纪元:零点对应哪一刻?
- 单位:秒、天、微秒,还是 100 纳秒的间隔数?
- 这个值是否包含闰秒,或者有没有特定历法上的修正。
- 数值是否大到必须用 BigInt,而不能用 JavaScript 的 Number。
一个 16 位的值并不自动等于“精度更高的 Unix 时间戳”。它可能是从 1601 年起算的 WebKit 微秒值,可能是某个数据库自定义的计数器,也可能完全是另一回事。字段名和位数一样重要。