翻日志的时候,你有没有遇到过像 1715760000 这样的数字?乍看像是乱码,但其实它精确地表示了某一个时间点——这就是 Unix 时间戳

这篇文章帮你彻底搞清楚 Unix 时间戳是什么、开发者为什么喜欢用它,以及如何快速将时间戳转换成你能看懂的日期。

Unix 时间戳是什么?

Unix 时间戳(也叫 epoch time)是从 1970 年 1 月 1 日 00:00:00 UTC 开始,累计经过的秒数

这个起点——1970 年元旦的 UTC 午夜——叫做 Unix 纪元(Unix Epoch),是随 Unix 操作系统诞生而定下的约定,沿用至今。

所以 1715760000 的意思是:从 Unix 纪元开始,过了 17 亿 1576 万秒——换算成日历时间,就是 2025 年 5 月 15 日 08:00:00 UTC

秒级 vs 毫秒级,一个常见陷阱

不同系统的时间戳精度不一样,这是一个很容易踩坑的地方:

  • 秒级时间戳1715760000(10位数字)
  • 毫秒级时间戳1715760000000(13位数字)

JavaScript 的 Date.now() 返回的是毫秒级,很多数据库和 API 也用毫秒;而 Python 的 time.time() 返回秒级浮点数。

快速判断法则:10 位数字 → 秒级;13 位数字 → 毫秒级。

如果把毫秒级时间戳当秒级处理,算出来的日期会是 5 万多年后——这种 Bug 不好找,提前了解能省去不少麻烦。

开发者为什么喜欢用时间戳?

明明可以存 "2025-05-15 08:00:00" 这种字符串,为什么要用一个大数字?原因是时间戳在工程上有几个明显优势:

与时区无关。时间戳永远是 UTC 基准,时区的转换在展示时再做。这从根本上消除了"数据库存了什么时区"、"服务器在哪里"这类问题,时区 Bug 少太多了。

计算超方便。判断某事件是否发生在 7 天前?直接做减法:now - timestamp > 7 * 24 * 3600。不需要解析字符串,不需要处理月份天数不同的边界情况。

各语言、数据库通用。你不需要担心 MM/DD/YYYY 还是 DD-MM-YYYY 的格式差异,整数就是整数,人人都认。

排序友好。时间戳本身就是整数,按数字大小排序就是按时间顺序排序,无需特殊处理。

存储紧凑。一个整数比一段日期字符串占用的存储空间少,在大规模数据场景下有意义。

常用时间戳参考值

记住几个锚点数字,遇到时间戳时能快速心算:

日期Unix 时间戳(秒)
2000 年 1 月 1 日(Y2K)946684800
2010 年 1 月 1 日1262304000
2020 年 1 月 1 日1577836800
2024 年 1 月 1 日1704067200
2025 年 1 月 1 日1735689600
2030 年 1 月 1 日1893456000

看到一个约 17 亿的时间戳,大约是 2023–2024 年;约 19 亿则是 2030 年代。这些参考值能帮你一眼判断时间戳是否合理,也能快速发现秒级/毫秒级搞混的问题。

附:2038 年问题

如果你用 32 位整数存储时间戳,它会在 2038 年 1 月 19 日 03:14:07 UTC(时间戳 2147483647)溢出,之后变成负数——这就是"2038 年问题",类似当年的 Y2K。现代系统普遍使用 64 位时间戳,可以撑到几千亿年后,暂时不用担心。

代码中怎么转换?

时间戳 → 可读日期

JavaScript:

new Date(1715760000 * 1000).toISOString()
// "2025-05-15T08:00:00.000Z"

Python:

import datetime
datetime.datetime.utcfromtimestamp(1715760000)
# datetime.datetime(2025, 5, 15, 8, 0)

当前时间 → 时间戳

JavaScript:

Math.floor(Date.now() / 1000)  // 当前秒级时间戳

Python:

import time
int(time.time())  # 当前秒级时间戳

代码当然可以做到,但如果你只是想快速查个数字——比如看日志的时候、和同事确认某个时间点、或者手动构造测试数据——打开在线工具更快,不用开编辑器,不用跑代码。

在线工具的典型使用场景

  • 查看线上日志里的时间戳对应的实际时间
  • 生成某个特定日期的时间戳,用于数据库查询或测试
  • 确认两套系统的时间戳是否对应同一时刻
  • 向非技术同事解释时间戳的含义
  • 快速换算秒级和毫秒级时间戳

一个好的在线时间戳工具支持双向转换:输入时间戳得到日期,也可以输入日期得到时间戳,还能显示不同时区的对应时间。


时间戳乍看抽象,理解了 epoch 的概念之后其实很简单。下次遇到一串数字,你已经知道它代表什么了。

立即使用 ujiffy 时间戳转换工具 →

输入时间戳秒数一键转换,或者选择日期生成对应时间戳——免费,无需注册。