🕐

Linux 时间戳转换器

将 Unix 时间戳转换为可读日期,反之亦然。支持批量转换和时区选择。

时间戳 → 日期

本地时间

1970-01-01 08:00:00

57 years ago

UTC 时间

1970-01-01 00:00:00

ISO 8601

1970-01-01T00:00:00.000Z

日期 → 时间戳

在上方选择日期和时间以获取时间戳

批量转换

实时转换

输入时即时显示结果,自动识别秒和毫秒。

时区感知

一键切换 UTC、本地时间和各种偏移时区。

批量处理 & 复制

一次处理数百个时间戳,即时导出清晰的结果。

常见问题

什么是 Unix 时间戳?

Unix 时间戳(也称为 POSIX 时间或 epoch 时间)是自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的秒数,不包含闰秒。它是一个简单的整数,无论时区如何,在全球范围内都代表同一个时刻。

如何将 Unix 时间戳转换为人类可读的日期?

你可以通过以下几种方式转换 Unix 时间戳: - 在线工具:使用我们的 Unix 时间戳转换器 进行即时转换 - Linux 终端:运行 date -d @1785292800(在 GNU Linux 上)或 date -r 1785292800(在 macOS 上) - JavaScript:new Date(timestamp * 1000).toISOString() - Python:datetime.utcfromtimestamp(1785292800) - PHP:date("Y-m-d H:i:s", 1785292800)

秒级和毫秒级时间戳有什么区别?

秒级时间戳是 10 位数字(例如 1785292800)。毫秒级时间戳是 13 位数字(例如 1785292800000),因为它将秒值乘以 1000。JavaScript 的 Date.now() 返回毫秒,而大多数其他系统和 API 使用秒。不小心混用它们会产生严重错误的日期——在需要秒的地方使用毫秒,得到的日期大约在未来 56,000 年。 在转换之前,始终检查数据源的分辨率。不确定时,数一数位数:10 位 = 秒,13 位 = 毫秒。

Unix 时间戳能否表示 1970 年之前的日期?

可以。1970 年 1 月 1 日之前的日期以负数表示。例如,时间戳 -3600 对应 1969 年 12 月 31 日 23:00:00 UTC。并非所有转换工具都能正确处理负数时间戳,但我们的在线转换器可以。各种编程语言也都普遍支持它们。

什么是 2038 年问题?

2038 年问题(也称为 Y2K38)是一个影响以 32 位有符号整数存储时间戳的系统的日期表示问题。最大值为 2147483647,对应 2038 年 1 月 19 日 03:14:07 UTC。一秒钟后,该值溢出为 -2147483648,被解释为 1901 年 12 月 13 日。 大多数现代 64 位系统不受影响,但嵌入式设备、旧版数据库和一些 32 位系统仍然存在隐患。解决方法是将时间表示迁移到 64 位,其可表示范围约为 2920 亿年。

Unix 时间戳是否包含闰秒?

不包含。Unix 时间戳有意忽略闰秒。即使 UTC 中增加了一秒闰秒,每一天也被视为恰好 86,400 秒。在插入闰秒期间,Unix 时间戳一秒内不会前进,实际上相当于跳过了闰秒。这意味着 Unix 时间戳与原子时的偏差在缓慢但持续地累积(目前约为 27 秒)。

转换 Unix 时间戳时如何处理时区?

Unix 时间戳在任何地方都代表同一个时刻。只有在将其显示为人类可读日期时,时区才重要。始终以原始整数形式存储时间戳,并且仅在显示时转换为本地时间。请使用 IANA 时区名称(如 America/New_York),而不要使用 EST 或 PST 等缩写,因为缩写不考虑夏令时。我们的 Unix 时间戳转换器 会同时显示多个时区的结果。

Unix 时间戳的最大值是多少?

最大值取决于用于存储的整数大小: - 32 位有符号整数:2147483647(2038 年 1 月 19 日 03:14:07 UTC) - 32 位无符号整数:4294967295(2106 年 2 月 7 日 06:28:15 UTC) - 64 位有符号整数:9223372036854775807(从现在起约 2920 亿年) 大多数现代系统使用 64 位整数,可表示范围实际上接近无限。在数据库列或数据结构中,通常将时间戳存储为 64 位类型(SQL 中的 BIGINT),这种做法面向未来、足够稳妥。

相关工具

Linux 时间戳转换器 - CoolTool