Unix 时间戳与日期时间互相转换,支持毫秒级时间戳。
关于时间戳
Unix 时间戳是从 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数,与时区无关。它的价值在于跨系统传递时间时不产生歧义——不再需要说明是哪个时区的几点几分。要注意单位:10 位是秒、13 位是毫秒,接口约定不一致时就会出现时间差 1000 倍的经典 bug。
常见问题
为什么时间戳显示的时间和我本地差 8 小时?
时间戳以 UTC 为基准,显示成本地时间时会加时区偏移。如果后端存的时间戳是用本地时间生成的,就会出现 8 小时偏差,这是业务代码的问题而非换算错误。
2038 年问题是什么?
32 位有符号整数能表示的最大秒数对应 2038 年 1 月 19 日,超过就会溢出成负数。现代系统多已改用 64 位,但老设备和嵌入式系统仍会受影响。
怎么区分秒和毫秒?
看位数:当前时间点下 10 位是秒、13 位是毫秒。也可以按数值大小粗判,秒级时间戳在近期都是 10 位数。