lnTre

Unix 时间戳换算

Unix 时间戳是从 1970-01-01T00:00:00Z 起算的秒数(Java 里 Instant.now().getEpochSecond()拿到的就是它,System.currentTimeMillis() 拿到的是毫秒版本)。换算在浏览器本地完成。

时间戳 → 日期

日期 → 时间戳

为什么时间戳换算总会差 8 小时

时间戳本身与时区无关——它只是一个绝对时刻。差 8 小时几乎都出在格式化那一步:new Date(ms) 的 toString() 用浏览器所在时区(东八区就是 UTC+8), 而 toISOString() 强制输出 UTC。日志里出现 Z 结尾就是 UTC, 要转成北京时间加 8 小时即可。Java 侧同理:DateTimeFormatter 必须显式指定ZoneId.of("Asia/Shanghai"),否则会跟着 JVM 默认时区跑。