什么是 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 声明) 和有效期。