什么是 Unix 时间戳?
Unix 时间戳是用一个数字来表示某一精确时刻。它记录的是从「Unix 纪元」开始所经过的秒数——也就是协调世界时(UTC)1970 年 1 月 1 日午夜(00:00:00)以来的总秒数。由于它本质上只是一个整数,因此在任何时刻、地球上任何地方它都是同一个值,这也使它成为软件、数据库、日志文件和 API 中存储与传递时间的全球通用标准。
本转换器会把这个原始数字还原成人类可读的日期和时间,同时显示 UTC 时间,并对照纽约、伦敦、东京、悉尼等主要城市的当地时刻,让你一眼看清同一时刻在世界各地分别是几点几分。
如何使用本转换器
- 在输入框中填入你的 Unix 时间戳(例如 1700000000)。
- 确认你的数值单位是「秒」还是「毫秒」——大多数时间戳以秒为单位,但 JavaScript 和部分 API 使用毫秒(13 位数字,而非 10 位)。
- 查看换算出的 UTC 日期和时间,再对照下方各时区的当地时刻。
计算公式详解
要把时间戳还原成可读日期,只需把秒数加到纪元起点上:
日期 = 1970 年 1 月 1 日 00:00:00 UTC +(时间戳秒数)
反过来,要把任意当地时间换算成时间戳,就计算该时刻与纪元起点之间相隔的秒数。需要注意的是,时区并不会改变时间戳本身——它只影响同一时刻在显示上的差异。冬季时,纽约为 UTC−5,伦敦为 UTC+0,东京为 UTC+9,悉尼在夏令时期间为 UTC+10 或 +11。
实例演示
以时间戳 1700000000 为例。把这么多秒数加到纪元起点上,得到的结果是 2023 年 11 月 14 日 22:13:20 UTC。同一时刻,在纽约是 17:13:20,在伦敦是 22:13:20,而在东京则已是次日清晨的 07:13:20。
常见问题
为什么我的时间戳看起来大了 1000 倍?很可能它的单位是毫秒。除以 1000 就能换算成秒。
时间戳会考虑时区吗?不会。Unix 时间戳始终以 UTC 为基准。所显示的各地当地时间,只是同一个世界时刻的不同呈现方式而已。
什么是「2038 年问题」?用 32 位整数存储时间戳的系统,将在 2038 年 1 月 19 日发生溢出。现代的 64 位系统则完全不受此影响。