什么是 Unix 时间戳?
Unix 时间戳(也叫纪元时间或 POSIX 时间)是指从协调世界时(UTC)1970 年 1 月 1 日 00:00:00 起所经过的秒数,且不计入闰秒。它是一种与时区无关的通用时间表示方式,被广泛应用于数据库、API、日志文件以及各类编程语言中。本转换器会把你输入的时间视为 UTC,并同时返回对应的纪元值(秒和毫秒)。
如何使用本转换器
输入你要转换时刻的年、月、日、时、分、秒。所有数值均按协调世界时(UTC)解析。点击计算,工具就会返回以秒为单位的 Unix 时间戳,以及 JavaScript 的 Date 对象和许多 Web API 通常所需的毫秒值。
公式详解
计算过程是先统计从 1970 年 1 月 1 日到你所选日期之间的整天数,乘以 86,400(一天的总秒数),再加上当天时间所对应的秒数:
$$t = \left\lfloor \frac{\text{UTC}\left(\text{Year},\ \text{Month},\ \text{Day},\ \text{Hour},\ \text{Minute},\ \text{Second}\right) - \text{UTC}(1970)}{1000} \right\rfloor$$
天数统计会自动处理闰年,因此 2000 年、2020 年、2024 年等年份的 2 月 29 日都能被正确计算。
实例演示
以 2024 年 1 月 1 日 00:00:00 UTC 为例。从 1970-01-01 到 2024-01-01 共有 19,723 个整天。相乘可得:$$19{,}723 \times 86{,}400 = 1{,}704{,}067{,}200 \text{ 秒}$$由于没有额外的时、分、秒,Unix 时间戳即为 1,704,067,200,对应的毫秒值为 1,704,067,200,000。
常见问题
输入的是我的本地时间吗?不是。为了让结果不产生歧义,所有输入都按 UTC 处理。如有需要,请先把本地时间换算成 UTC。比如中国标准时间(CST,UTC+8)需要先减去 8 小时。
时间戳会是负数吗?本工具仅接受 1970 年及以后的年份,因此结果始终为零或正数。1970 年之前的日期会得出负的纪元值。
为什么同时给出秒和毫秒?大多数 Unix 系统使用秒,而 JavaScript 和许多 Web API 使用毫秒。为方便起见,两者都会显示。