Unix 时间戳转换
时间戳与日期互转,自动识别秒和毫秒,同时给出本地时间和 UTC 时间。
当前时间
| 本地时间 | |
| 秒级时间戳 | |
| 毫秒级时间戳 |
说明
- 秒级时间戳是 10 位,毫秒级是 13 位;超过 1e11 的会按毫秒处理。
- 日期时间按你浏览器所在时区解释,换时区结果会变,这是正常的。
- 2038 年问题:32 位系统能表示的最大秒级时间戳是 2147483647(2038-01-19),老系统要注意。
常见问题
- 为什么我算出来的时间和日志里的对不上?
先确认你看的是哪个时间。Unix 时间戳本身是绝对时刻,与时区无关;但把它显示成"2026-10-14 16:42"这样的字符串时,必须指定时区。同一个时间戳在 UTC 下和东八区下会显示成相差 8 小时的字符串——它们指的是同一时刻。 - 10 位和 13 位怎么区分?
秒级时间戳是 10 位(约 1.7e9),毫秒级是 13 位(约 1.7e12)。本工具以 1e11 为界自动判断:大于就按毫秒处理。如果你手上的数值恰好落在边界附近且判断错了,可以手动在输入里写清楚。 - 什么情况下会出现负数时间戳?
表示 1970-01-01 00:00:00 UTC 之前的时刻。日志里出现负数通常意味着系统时间被改坏了,或者某些语言(如 Java 的System.currentTimeMillis())在时区处理上出了偏差。 - 怎么把一批时间戳批量转换?
本工具一次转一个。批量场景建议用命令行:date -d @1791963276(Linux 秒级),或python -c "import datetime;print(datetime.datetime.fromtimestamp(1791963276))"。脚本里处理时注意显式指定时区,避免依赖机器默认值。 - 为什么两条日志相差 3600 秒却只差 1 小时?
3600 秒本来就等于 1 小时,这是正常的。真正需要留意的是夏令时:欧美服务器切换夏令时时,本地时间会出现 1 小时的跳变或重复,而时间戳始终单调递增。排查跨时区问题时以时间戳为准更可靠。