接口返回一串 1698745200 或 1698745200000,这就是 Unix 时间戳。它是什么起点、秒和毫秒怎么区分、为什么有时差 8 小时?本文一次说清。
Unix 时间戳是从 1970 年 1 月 1 日 00:00:00 UTC 到现在的总秒数。10 位数字是秒级,13 位是毫秒级。它不涉及时区,全球统一。
当前秒级时间戳是 10 位数字(如 1750000000),毫秒级是 13 位(如 1750000000000)。位数不足补零,超过 2033 年后秒级仍为 10 位。
时间戳本身无时区,但转成人类可读时间时必须指定时区。服务端常存 UTC 时间戳,前端展示时按东八区转换,差 8 小时多是因为忘了设时区。
判断 token 是否过期:把过期时间戳转成本地时间与当前时间比较,或直接用工具对比。注意毫秒与秒不要混用,混用会导致过期判断错 1000 倍。
会。1970 年之前的时间戳为负值,部分系统不支持,需特殊处理。
常见原因是秒与毫秒混淆、UTC 与东八区混淆,转换时确认位数和时区即可。
32 位系统时间戳上限为 2038-01-19,溢出后变负数。现代 64 位系统无此问题。