如何转换 Unix 时间戳
Unix 时间戳是计算机存储和交换时间的方式 · 一个表示自 1970 年 1 月 1 日以来经过秒数的数字。您会在 API 响应、数据库记录、日志文件和 JWT 令牌中看到它们。当您需要知道 1711824000 对应的日期时,就需要转换器。
Unix 时间戳长什么样
| 时间戳 | 类型 | 可读日期 |
|---|---|---|
| 0 | 秒 | 1970 年 1 月 1 日 00:00:00 UTC |
| 1000000000 | 秒 | 2001 年 9 月 9 日 01:46:40 UTC |
| 1711824000 | 秒 | 2024 年 3 月 31 日 00:00:00 UTC |
| 1711824000000 | 毫秒 | 2024 年 3 月 31 日 00:00:00 UTC |
秒和毫秒的差别是多出三个零。10 位数字是秒;13 位数字是毫秒。
如何转换时间戳
- 输入时间戳或日期· 粘贴 Unix 时间戳以转换为可读日期,或输入日期以获得时间戳。
- 核对格式· 转换器根据数字长度自动检测秒或毫秒。
- 查看结果· 以本地时区、UTC 和 ISO 8601 格式查看日期。
在哪里会遇到时间戳
- API 响应· 大多数 REST API 以 Unix 时间戳返回日期:
"created_at": 1711824000 - JWT 令牌·
iat(issued at)和exp(expiration)字段是 Unix 时间戳 - 数据库记录· 许多数据库将时间戳存为整数以便高效排序和比较
- 日志文件· 服务器日志经常在条目前缀 epoch 时间戳
- cron 任务· 调度系统以 Unix 格式引用时间
代码中的时间戳
常见语言中的快速转换:
JavaScript:new Date(1711824000 * 1000)(JS 使用毫秒)
Python:datetime.fromtimestamp(1711824000)
当前时间:Date.now()(JS)、time.time()(Python)
小贴士
- JavaScript 中乘以 1000· JS 的
Date对象需要毫秒,但大多数 API 返回秒。忘记相乘是最常见的时间戳 bug。 - 始终明确 UTC· 转换时明确时区。「3 月 31 日午夜」作为 UTC、EST 或 PST 都是不同的时间戳。
- 显示时使用 ISO 8601· 转换后,将日期格式化为
2024-03-31T00:00:00Z,以便跨时区无歧义地交流。 - 收藏转换器· 若您处理 API 或数据库,转换频率足以让工具值得一键访问。
常见问题
什么是 Unix epoch 时间?
Unix epoch 时间(也叫 POSIX 时间或 Unix 时间戳)是自 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数。这是计算机内部表示时间的标准方式。
秒和毫秒时间戳有什么区别?
秒级 Unix 时间戳是 10 位数字(例如 1711824000)。毫秒级时间戳是 13 位数字(例如 1711824000000)。JavaScript 使用毫秒,大多数 API 和数据库使用秒。转换器根据长度自动检测。
为什么我转换的时间相差几小时?
时间戳始终为 UTC。转换器会显示 UTC 和您的本地时间。如果结果与预期不符,您可能是在比较 UTC 输出和本地时间,或反之。
2038 年会发生什么?
将 Unix 时间戳存为 32 位有符号整数的系统将在 2038 年 1 月 19 日溢出。大多数现代系统使用 64 位整数,这将范围扩展到远超任何实际关注。