Unix时间戳转换工具

当前时间

当前时间戳:

转换工具

时间戳:
时间(YYYY-MM-DD HH:MM:SS):
时间:

常见问题

什么是 Unix 时间戳?

Unix 时间戳(也称为 Epoch 时间或 POSIX 时间)是一种时间计量系统,它从 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)开始,以秒为单位持续计数。它在计算机领域被广泛使用,因为它提供了一种简单、通用的时间表示格式,不受时区影响。

为什么 Unix 时间从 1970 年开始?

1970 年 1 月 1 日作为起点是由贝尔实验室的早期 Unix 开发者选定的。当时普遍使用 32 位整数,从 1970 年开始可以让系统表示到 2038 年的日期。选择这个特定日期是因为它足够近可以满足实用需求,又足够早可以覆盖大多数计算场景。

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

Unix 时间戳传统上以秒为单位(10 位数字,如 1701792000)。但是,许多现代系统,特别是 JavaScript,使用毫秒(13 位数字,如 1701792000000)以获得更高精度。转换时,请务必确认您的时间戳是秒还是毫秒格式。

什么是 2038 年问题(Y2K38)?

2038 年问题源于许多旧系统使用 32 位有符号整数存储 Unix 时间戳,这种格式最多只能表示到 2038 年 1 月 19 日 03:14:07 UTC。超过这个时间点后,整数会溢出并变成负数,可能导致系统故障。现代 64 位系统已经解决了这个问题。

如何在不同编程语言中获取当前 Unix 时间戳?

以下是在各种编程语言中获取当前 Unix 时间戳的示例:

// JavaScript
Math.floor(Date.now() / 1000)

# Python
import time
int(time.time())

// Java
System.currentTimeMillis() / 1000

// PHP
time()

// Go
time.Now().Unix()

// C#
DateTimeOffset.UtcNow.ToUnixTimeSeconds()

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

要将 Unix 时间戳转换为人类可读的日期,需要将时间戳乘以 1000(如果是秒级)然后创建 Date 对象。在 JavaScript 中:new Date(timestamp * 1000).toISOString()。在 Python 中:datetime.fromtimestamp(timestamp)。大多数编程语言都有内置函数来完成这个转换。

// JavaScript
new Date(1704067200 * 1000).toISOString()
// Result: '2024-01-01T00:00:00.000Z'

# Python
from datetime import datetime
datetime.fromtimestamp(1704067200)

// PHP
date('Y-m-d H:i:s', 1704067200)

时区如何影响 Unix 时间戳?

Unix 时间戳始终基于 UTC(协调世界时),与时区无关。当将时间戳显示为人类可读的日期时,您需要应用相应的时区偏移。无论您在哪个时区,时间戳本身永远不会改变。

Unix 时间戳有哪些常见应用场景?

Unix 时间戳广泛应用于:数据库记录时间戳、API 请求/响应计时、日志文件条目、Cookie 过期时间、缓存失效、文件修改时间、会话管理,以及任何需要通用、可排序时间格式的场景。

什么是 Unix/Epoch 时间戳转换器?

Unix 时间戳转换器(也称为 Epoch 转换器)是开发者必备的在线工具,用于在 Unix 纪元时间和人类可读的日期格式之间进行转换。Unix 时间表示自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)以来经过的秒数。这种标准化的时间格式在操作系统、数据库、编程语言和 Web API 中被广泛使用,因为它提供了一个单一的、无歧义的数字来表示时间中的任何时刻——不受时区和夏令时的影响。我们的免费在线转换器支持秒级(10 位)和毫秒级(13 位)时间戳、实时时钟显示,以及时间戳和格式化日期(如 YYYY-MM-DD HH:MM:SS)之间的双向转换。

如何使用 Unix 时间戳转换器

  1. 在「当前时间」部分查看当前 Unix 时间戳——点击「开始」可实时更新,或点击「刷新」获取快照。
  2. 将时间戳转换为日期:粘贴 10 位(秒)或 13 位(毫秒)时间戳并点击转换。结果将以本地时区显示为 YYYY-MM-DD HH:MM:SS 格式。
  3. 将日期转换为时间戳:输入日期字符串如 "2024-01-01 00:00:00",点击「转为时间戳」。可选择输出秒级或毫秒级时间戳。
  4. 使用单独的年/月/日/时/分/秒输入框进行精确的日期到时间戳转换,无需担心格式字符串问题。

Unix 时间戳的常见使用场景

  • 数据库调试 — 检查和解码 MySQL、PostgreSQL、MongoDB 或 SQLite 中以整数存储的时间戳列,验证数据正确性。
  • API 开发 — 解析和生成 REST API 请求/响应、JWT 令牌(iat、exp、nbf 声明)和 OAuth 流程中的纪元时间戳。
  • 日志分析 — 将服务器日志(Nginx、Apache、应用日志)中的时间戳转换为人类可读的日期,用于调试生产问题。
  • 定时任务调度 — 为任务调度器、缓存 TTL 值(Redis、Memcached)和证书过期时间计算未来的 Unix 时间戳。
  • 数据迁移 — 在使用纪元时间戳和 ISO 8601 字符串的系统之间迁移数据时进行格式转换。
  • 运维监控 — 解码 Prometheus 指标、Grafana 仪表板、CloudWatch 日志和 CI/CD 流水线中的时间戳。
  • 移动应用开发 — 在 iOS(TimeInterval)和 Android(System.currentTimeMillis())中使用 Unix 时间戳实现跨平台一致性。
  • 区块链与加密货币 — 解读区块时间戳、交易时间和以太坊、比特币等链上的智能合约时间锁。

Unix 时间的关键概念

纪元(1970 年 1 月 1 日)

Unix 纪元是所有 Unix 时间戳的参考起点。它由贝尔实验室的早期 Unix 开发者选定。值 0 代表 1970 年 1 月 1 日午夜 UTC。

秒 vs 毫秒

传统 Unix 时间戳使用秒(10 位数,如 1719878400)。JavaScript、Java 等现代 API 使用毫秒(13 位数,如 1719878400000)。本工具根据位数自动检测格式。

UTC 与时区

Unix 时间戳始终基于 UTC——无论你在哪里,它代表相同的绝对时刻。显示为日期时,转换使用你的本地时区。这使时间戳成为全球化应用中存储时间的理想选择。

2038 年问题

使用 32 位有符号整数的系统将在 2038 年 1 月 19 日 03:14:07 UTC 溢出(最大值:2,147,483,647)。现代 64 位系统已解决此问题。

闰秒

Unix 时间不计入闰秒——每天固定为 86,400 秒。这意味着 Unix 时间可能与天文时间(TAI/UTC)略有偏差,但其简单性使其在计算中非常实用。

负时间戳

纪元之前(1970 年之前)的时间戳用负数表示。例如,-86400 代表 1969 年 12 月 31 日。大多数现代编程语言和数据库都能正确处理负时间戳。

时间戳排错清单

秒级 vs 毫秒级

10 位数字通常是秒级时间戳,13 位数字通常是毫秒级时间戳。JavaScript Date 需要毫秒,因此秒级值要先乘以 1000。

UTC 与本地显示

时间戳表示一个基于 UTC 的绝对时刻。换到不同时区查看时,显示出来的日历日期和时间可能不同。

夏令时切换

夏令时切换附近,本地午夜或某个小时可能发生跳变。建议存储 UTC 时间戳,只在展示时转换为本地时间。

日志与 API 排查

调试 API 或日志时,把原始时间戳、识别出的单位、ISO 8601 UTC 输出和本地显示放在一起对比,能更快发现单位或时区错误。

为什么使用我们的在线 Unix 时间戳工具?

  • 即时双向转换——在同一个页面上完成时间戳到日期和日期到时间戳的转换,无需刷新页面。
  • 自动检测秒/毫秒——粘贴任何 10 位或 13 位时间戳,自动获得正确结果。
  • 实时时钟显示——实时观察当前 Unix 时间戳跳动,便于监控和测试时间敏感型代码。
  • 多格式输入——支持格式化字符串(YYYY-MM-DD HH:MM:SS)输入,也支持年/月/日/时/分/秒单独输入。
  • 100% 客户端处理——所有转换在浏览器中完成,不向任何服务器发送数据,确保完全隐私。
  • 开发者友好的代码示例——查看 JavaScript、Python、Java、PHP、Go 和 C# 中获取和转换 Unix 时间戳的方法。
  • 移动端响应式设计——在桌面、平板或手机上舒适使用,随时随地调试。