免费在线 Unix 时间戳转换器
将Unix时间戳转换为可读日期,或将日期转换为Unix时间戳。自动识别秒/毫秒。支持8个时区、ISO 8601、相对时间。
Unix 时间戳 → 可读日期
日期 → Unix 时间戳
什么是 Unix 时间戳?
Unix 时间戳(也称为 epoch 时间或 POSIX 时间)是自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)以来经过的秒数。这个起始点由贝尔实验室的早期 Unix 开发者选定,因为它早于 Unix 的广泛普及。时间戳是与时区无关的整数,非常适合数据库、API、日志文件和 JWT 令牌等需要统一时间参考的场景。
当前纪元对应于
上方的实时 Unix 时间戳,以最常见的日期和时间格式显示,每秒更新一次。
| — | UTC |
| — | ISO 8601 |
| — | RFC 822 / 1036 / 1123 / 2822 |
| — | RFC 3339 |
Unix 时间换算参考表
常见的可读时长以秒数表示——在计算过期时间、TTL 或时间间隔时非常方便。
| 可读时间 | 秒数 |
|---|---|
| 1 小时 | 3600 |
| 1 天 | 86400 |
| 1 周 | 604800 |
| 1 个月(30.44 天) | 2629743 |
| 1 年(365.24 天) | 31556926 |
Unix 时间戳:秒 vs 毫秒
最常见的困惑是时间戳以秒(10 位数)还是毫秒(13 位数)表示。规则:如果值超过 10¹²,几乎可以肯定是毫秒。
由 PHP time()、Python time.time()、Unix shell date +%s 和大多数 SQL 数据库使用。示例:1710508200
1710508200
由 JavaScript Date.now()、Java System.currentTimeMillis()、Node.js 和大多数浏览器 API 使用。示例:1710508200000
1710508200000
时间戳的常见使用场景
开发者为何偏好 Unix 时间戳而非可读日期字符串:
JSON Web Token 使用秒级 Unix 时间戳表示"签发时间"(iat)和"过期时间"(exp)声明,与时区无关且易于比较。
整数时间戳列比日期时间字符串排序更快,且与时区无关,消除了来自多个地理位置的记录产生的歧义。
服务器日志、分布式追踪(OpenTelemetry)和分析管道使用毫秒时间戳在各服务之间以亚秒精度关联事件。
缓存系统(Redis、Varnish、CDN)和 API 响应使用 Unix 时间戳表示 Cache-Control max-age、created_at 和 updated_at 字段。
2038 年 1 月 19 日会发生什么?
在 2038 年 1 月 19 日 03:14:07(UTC),Unix 时间戳将超过 32 位有符号整数所能存储的最大值(2,147,483,647)。仍以 32 位存储时间的系统将发生溢出并回绕为负数,把日期误解为 1901 年 12 月。在此之前,应用程序必须迁移到 64 位时间戳,从而将上限推迟约 2920 亿年。