nicetool.dev logo
...

什么是 Unix 时间戳?

Unix 时间戳(也称为 POSIX 时间或 Epoch 时间)是一个以秒为单位跟踪时间的系统。此计数从“Unix 纪元”开始。它是全球大多数计算机系统、服务器和数据库使用的标准时间格式。

Unix 纪元

起点定义为 1970 年 1 月 1 日 00:00:00 UTC。此时间之前的日期表示为负数。

常见时间到秒的转换

人类可读时间秒
1 小时3,600 秒
1 天86,400 秒
1 周604,800 秒
1 个月 (30.44 天)2,629,743 秒
1 年 (365.24 天)31,556,926 秒

2038 年问题

与 Y2K 错误类似,“2038 年问题”预计将于 2038 年 1 月 19 日发生。届时,Unix 时间将超过 32 位有符号整数的最大值。旧的 32 位系统可能会将此日期解释为 1901 年,从而导致严重错误。

03:14:07 UTC 19/01/2038
Max Int32: 2,147,483,647

常见用例

数据库

将时间存储为整数 (INT) 可以节省空间并显著提高查询/排序性能。

文件系统和日志

命名备份文件或系统日志以确保唯一性和易于按时间顺序排序。

API 和令牌

在 JWT (JSON Web Tokens) 中用于定义过期时间 (exp 声明) 和有效期。

Unix 时间使用方法

  1. 1

    页面顶部的实时时钟以秒和毫秒显示当前 Unix 时间。需要把"现在"作为时间戳用于测试或查询时,直接使用即可。

  2. 2

    把时间戳粘贴到转换框中。工具会自动判断是秒(10 位)还是毫秒(13 位),并以 UTC、本地时区和"3 天前"这样的相对时间显示日期。

  3. 3

    如需反向转换,切换到日期模式,输入年、月、日和时间,选择时区,然后点击"转换"即可得到对应的时间戳。

  4. 4

    所有数值都可一键复制。下方的世界时钟显示同一时刻在主要城市的时间,便于把其他地区服务器的日志与本地时间对照。

实际应用示例

阅读日志文件

服务器日志和监控工具常以 1712345678 这样的数字记录事件。粘贴后即可看到故障发生的准确 UTC 时间和北京时间。

检查 JWT 是否过期

JSON Web Token 中的 exp 和 iat 都是以秒为单位的 Unix 时间戳。转换后可以立即看出令牌是否已经过期。

编写数据库查询

需要查询 2026 年 3 月 1 日 00:00 UTC 之后的订单?把日期转换为 1772323200,然后在整数列的 WHERE 条件中使用。

核对 API 返回值

JavaScript 返回毫秒(Date.now()),而大多数后端返回秒。工具同时显示两者,相差 1000 倍的错误一目了然。

常见问题

什么是 Unix 时间戳?+

它是自 1970 年 1 月 1 日 00:00:00 UTC(即 Unix 纪元)以来经过的秒数。由于它是一个不含时区的数字,是计算机存储和比较时间最简单的方式。

如何区分秒和毫秒?+

对于当前日期,秒级时间戳为 10 位,毫秒级为 13 位。Unix 工具、PHP 和大多数数据库使用秒,JavaScript 和 Java 使用毫秒。

什么是 2038 年问题?+

用有符号 32 位整数存储时间戳的系统会在 2038 年 1 月 19 日 03:14:07 UTC 溢出。现代语言和 64 位数据库不受影响,但部分老旧嵌入式系统和文件格式仍存在该问题。

Unix 时间戳包含闰秒吗?+

不包含。Unix 时间假定每天恰好 86,400 秒,因此不计算闰秒。对绝大多数应用来说没有实际影响。