时间戳转换工具:Unix时间戳与日期互转(秒/毫秒,2026)
Unix时间戳转换工具:时间戳与日期在线互转,自动识别秒/毫秒级,实时显示当前时间戳,并讲清秒毫秒混淆、2038年问题等常见坑。
Unix时间戳转换工具:时间戳与日期在线互转,自动识别秒/毫秒级,实时显示当前时间戳,并讲清秒毫秒混淆、2038年问题等常见坑。
下面这个时间戳转换工具,纯浏览器本地运行,输入即出结果,不上传数据。往下有时间戳转换的原理和使用说明。
一个 Unix 时间戳就是从 1970 年 1 月 1 日 00:00:00 UTC(这个起点叫"纪元 / epoch")到某一刻所经过的秒数——它不带时区、不带年月日格式,只是一个整数。工具做的事分两步:把整数按秒累加回纪元起点,得到一个绝对时刻;再按你选的时区,把这个时刻"翻译"成人能读的年月日时分秒。反过来输入日期时,工具先按时区还原成 UTC 绝对时刻,再数出它距离纪元的秒数。
要抓住一个关键点:同一个时间戳,在北京和伦敦代表的是同一瞬间,只是显示出来的钟点不同。时区只影响"怎么显示",不改变时间戳本身。很多人以为换个时区数值会跟着变,这是最常见的误解,也是排查跨时区 bug 时最先该排除的方向。
1. 秒和毫秒搞混。这是时间戳最高频的 bug。JavaScript 的 Date.now()、Java 的 System.currentTimeMillis() 返回的是毫秒;而 Linux、多数后端 API、数据库、以及 JWT 的 exp 过期字段(RFC 7519 明确规定用秒)都是秒。把毫秒当秒传,日期会飞到约 33000 年后;把秒当毫秒传,日期会掉回 1970 年初。换算只有两条:秒转毫秒 ts * 1000,毫秒转秒 Math.floor(ts / 1000)。
2. 2038 年问题。用 32 位有符号整数存的时间戳,最大只能到 2,147,483,647 秒,对应 2038 年 1 月 19 日 03:14:07 UTC。再往后整数溢出,系统会把日期误读成 1901 年 12 月 13 日。解法是改用 64 位整数存储,理论上能撑到约 2920 亿年后。老旧嵌入式设备、IoT 硬件、遗留数据库是重灾区,迁移时要专门盘一遍。
| 维度 | 秒级(约 10 位) | 毫秒级(约 13 位) |
|---|---|---|
| 典型来源 | Linux/Unix、多数后端 API、数据库、JWT exp | JavaScript Date.now()、Java currentTimeMillis() |
| 示例数值 | 1711000000 | 1711000000000 |
| 用错的后果 | 当毫秒用 → 日期掉回 1970 年初 | 当秒用 → 日期飞到约 33000 年后 |
换算时把这张表放手边,先确认数据源给的是秒还是毫秒,再决定要不要乘除 1000,基本就能绕开时间戳里最坑的那几处。