关于在线Unix时间戳转换
Unix 时间戳(Unix time / POSIX time)是从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC,即 GMT 午夜)起经过的秒数,不计闰秒。它是接口、日志、数据库里最常用的机器时间表示。
ISO 8601 中该起点写作 1970-01-01T00:00:00Z。1 小时 = 3600 秒,1 天 = 86400 秒(闰秒不计入 Unix 计数)。本页在浏览器本地把秒或毫秒转成一行可读日期时间,不上传服务器。
在线Unix时间戳转换能力
Unix 时间戳是什么
从「纪元」时刻起累计的秒数(或毫秒 ×1000 后仍对应同一套纪元)。多数 Linux/Unix 系统历史上用 32 位存储,因此存在 2038 年问题(Y2038);现代环境多用 64 位。
本工具怎么用
- 左侧输入 10 位左右一般为秒,13 位一般为毫秒(小于 1e12 按秒,否则按毫秒)。
- 点「转换」后右侧显示一行本地日期时间(中文页为 24 小时制)。
- 「当前时间」填入此刻的秒级时间戳并立即转换。
北京时间与历史夏令时
现在中国使用东八区标准时间(UTC+8),无夏令时。1986–1991 年曾在全国实行夏令时:每年约 4 月中旬第一个星期日 2:00(北京时间)至 9 月中旬第一个星期日 2:00,时钟拨快 1 小时;1986 年首年从 5 月 4 日到 9 月 14 日。1992 年 4 月 5 日起不再实行。换算 1980 年代某些时刻时,历史规则可能影响显示。
JDK 与 Asia/Shanghai 时区数据
夏令时起止是政令调整,规则会随年代变化。JDK 通过内置的时区数据库(tzdata)维护各 Zone 的规则;不同 JRE 版本里 Asia/Shanghai 对历史夏令时切换时刻的修正可能不同(例如早期曾误按 0 点切换,后更正为 2 点)。生产环境请以实际使用的 JDK 版本与 Oracle/IANA 时区数据为准。
常见场景
日志与接口
把 JSON、Nginx 等日志里的 epoch 秒转成可读时间,方便排障。
JWT 的 exp
将 exp 秒级时间与「当前时间」对照,区分 TTL 配置与时钟偏差。
数据库 epoch 列
临时 SQL 或报表里把整型时间戳转成业务能看懂的日期。
常见问题
- Unix 时间戳算不算闰秒?
- 不算。Unix/POSIX 时间假定每天固定 86400 秒;闰秒在其它层处理或忽略,因此在闰秒边界可能与「原子时 UTC」差 1 秒。
- 2038 年问题是什么?
- 32 位有符号整数能表示的秒级 Unix 时间约在 2038-01-19 03:14:07(UTC)溢出。老系统、嵌入式或仍用 int32 存时间的代码需要迁移到 64 位或改用毫秒/Date 类型。
- 为什么和 Java 里 SimpleDateFormat 结果不一致?
- Java 按 ZoneId(如 Asia/Shanghai)和当前 JRE 的 tzdata 解释历史规则(含 1986–1991 夏令时)。浏览器按系统区域格式化。若 instant 落在历史夏令时区间,或 JDK 版本较旧,显示可能与本页略有差异。
- 10 位和 13 位输入有什么区别?
- 10 位通常是秒;13 位通常是毫秒(如 JavaScript Date.now)。本工具按数值大小自动判断。
时间戳示例
0纪元起点 — 1970-01-01T00:00:00Z86400纪元后整整 1 天(86400 秒)3600纪元后 1 小时1700000000示例 10 位秒级时间戳(可点转换查看)1700000000000同一时刻的 13 位毫秒表示