ToolBench

时间

Unix 时间戳转换

10 位的秒和 13 位的毫秒都直接支持,不用先告诉它单位;同一时刻会同时列出 UTC、本地时间和 ISO 8601 三种写法。

Unix 时间戳
日期时间(本地)

怎么用

  1. 在左侧输入时间戳,右侧会自动显示日期。
  2. 也可以输入 2026-10-17 09:30:00 这样的日期,反查时间戳。
  3. 点「使用当前时间」取此刻的时间戳。

秒、毫秒,以及 2038 年

Unix 时间从 1970 年 1 月 1 日 UTC 起算秒数,刻意忽略闰秒。很多系统把这个计数存成有符号 32 位整数,最大值是 2,147,483,647,会在 2038 年 1 月 19 日到达。仍在使用 32 位时间戳的系统,那天会回绕到 1901 年。这和千年虫是同一类问题,只是留给修补的时间更少。

为什么时间戳看起来差了几个小时

Unix 时间戳不带时区,它是一个绝对时刻。变的是本地渲染。同一个数值在伦敦显示 09:00,在上海是 17:00,在奥克兰是第二天 01:00。当某个存下来的时间「看起来差了八小时」,几乎总是存储正确、而显示时用了错误的时区。

从数字本身判断单位

不需要知道这个时间戳是谁生成的,看数量级就知道。十位是秒(当前约 17 亿)。十三位是毫秒。十六位是微秒。十九位是纳秒。落在 1970 年代的值,通常意味着某个空字段被写成了 0。

换算结果整整差几个小时,说明时间戳没问题、显示有问题:它的定义就是 UTC,而浏览器按本地时区渲染。存 UTC、显示本地,永远不要存一个不带偏移量的本地时间。

常见问题

Unix 时间戳到底是什么?

从 1970-01-01 00:00:00 UTC 起经过的秒数,不计闰秒。它与时区无关,所以数据库普遍存这个值。

秒还是毫秒?

两种都行。10 位按秒解读,13 位按毫秒解读,下方提示会说明实际按哪种处理。

为什么我的时间戳差了几个小时?

时间戳本身是 UTC,而「本地」那一行按你机器的时区渲染。与 UTC 那行对比就能判断是时区问题还是值本身错了。

这个工具处理闰秒吗?

不处理。Unix 时间忽略闰秒,按每天正好 86400 秒计算,这也是它与天文时逐渐偏离的原因。

2038 年会发生什么?

32 位有符号时间戳在 2038 年 1 月 19 日溢出。任何仍在用 32 位字段存秒数的系统会跳回 1901 年。