Handytool
开发者指南7 分钟阅读更新于 2026年6月24日

纪元时间详解

Unix 时间戳的真正含义

Unix 时间戳是从 1970 年一个固定时刻起经过的秒数计数。本指南解释了这个数字的来源、为什么有些是毫秒,以及如何一眼识别。

要点

  • 01Unix 时间戳计算从 1970 年 1 月 1 日 UTC 00:00:00 以来经过的秒数,这个起始时刻被称为纪元。
  • 0210 位数字通常表示秒;13 位数字通常表示毫秒——除以 1000 可以转换。
  • 03Unix 时间始终是 UTC,所以同一个时间戳在不同时区显示不同的时间。

一句话定义

Unix 时间戳是从 1970 年 1 月 1 日 00:00:00 协调世界时(UTC)以来经过的秒数。这个起始时刻称为 Unix 纪元,每个时间戳都是从它开始测量的。你阅读这句话时,当前值已经超过 17 亿。

计算机选择一个固定日期的原因是为了效率。单个整数比字符串"2026 年 6 月 24 日下午 3:14 中欧夏令时"更容易存储、比较和运算。排序事件、测量持续时间或检查一件事是否发生在另一件事之前,都可以简化为比较两个数字。

由于计数锚定在 UTC,Unix 时间戳中没有嵌入时区。同一个数字 1750000000 在地球上的任何地方都代表同一时刻——只是在东京和纽约显示的挂钟时间不同。时区只有在将数字转换回人类可读的日期时才会应用。

秒与毫秒:如何区分

传统的 Unix 时间戳以秒为单位,但很多现代软件——尤其是 JavaScript——以毫秒为单位,这是 1000 倍的关系。混用这两种是最常见的时间戳错误,会产生 1970 年的日期或大约 5 万年后的日期。

快速区分的方法是位数。最近日期的秒级时间戳有 10 位数字(1750000000)。同一时刻的毫秒版本有 13 位数字(1750000000000)。如果一个值看起来大了 1000 倍,几乎肯定是毫秒——除以 1000 得到秒。如果库要求毫秒而你传入秒,乘以 1000。

少数系统精度更高:微秒(16 位)和纳秒(19 位)出现在高分辨率日志和数据库中。规则相同——每一步都增加 1000 倍。不确定时,将数字粘贴到转换器中,看结果是否接近今天。

如何转换 Unix 时间戳为日期

无需手工计算。粘贴数字,用你自己的时区和 UTC 读取日期。

  1. 01

    打开 Unix 时间戳转换器

    访问 Handytool 的 Unix 时间戳转换器。所有操作在浏览器中进行,不会发送到服务器。

  2. 02

    粘贴数字

    输入时间戳。工具根据长度自动检测是秒还是毫秒,很少需要指定。

  3. 03

    读取人类日期

    看到日期和时间以 UTC 和本地时区两种方式呈现,确认读取的是预期的时刻。

  4. 04

    反向操作

    输入日历日期和时间获得匹配的 Unix 时间戳,用于数据库存储、API 调用或计划任务。

为什么是 1970,以及其他怪癖

纪元由贝尔实验室建造 Unix 的工程师在 20 世纪 70 年代初选定。需要一个最近、整数、便于使用的日期,1970 年初刚好符合——足够接近使计数不会立即需要巨大数字,又足够早覆盖他们关心的文件和进程时间。负时间戳代表 1970 年之前的时刻,所以这个方案也能处理历史日期。

有个微妙之处:Unix 时间忽略闰秒。真实 UTC 偶尔会插入额外的秒以与地球略微不规则的自转保持同步,但 Unix 时间假设每天都恰好有 86,400 秒。这使算术运算保持简单,代价是比严格天文时间差一小段时间——这是几乎所有人都愿意做的权衡。

需要将时间戳与 Discord 事件、cron 计划或倒计时对齐时,将转换器与时区工具配对会很有帮助,这样你可以在受众所在的各个地区看到同一时刻。

Unix 时间戳常见问题

Unix 时间戳是秒还是毫秒?

取决于系统。传统 Unix 时间是秒(当前日期为 10 位数);JavaScript 和许多网络 API 使用毫秒(13 位)。除以 1000 从毫秒转换为秒,或乘以 1000 反向转换。

Unix 时间戳包含时区吗?

不包含。Unix 时间始终以 UTC 计算,不包含时区信息。时区只有在将数字转换为可读日期时才会应用,这就是为什么同一时间戳在世界各地显示不同的挂钟时间。

当前 Unix 时间戳是多少?

每秒变化。截至 2026 年中,大约是 17 亿。打开转换器查看实时值,并将任何特定日期转换为其时间戳。

什么是纪元时间?

纪元时间是 Unix 时间的另一个名称。纪元是固定的原点——1970 年 1 月 1 日 00:00:00 UTC——纪元时间是从它计算的秒数。

Unix 时间戳可以是负数吗?

可以。1970 年 1 月 1 日之前的日期表示为负数,从纪元向后计算秒数。

相关工具

继续使用 开发者 工具

开发者 工具