Unix时间戳转换器
介绍
Unix 时间戳(或称纪元时间)是计算机表示时间的标准方式:一个从 1970 年 1 月 1 日 UTC 午夜开始计算秒数的整数(不含闰秒)。它出现在数据库记录、API 响应、JWT 令牌、日志文件、Cron 调度和缓存过期标头中。机器可以即时读取这些整数,但人类需要将它们转换为日历日期和时钟时间——而且通常需要同时转换为多种格式。
Unix 时间戳转换器为开发人员、系统管理员和安全分析师而设计,他们需要从日志中解码时间戳、验证令牌过期时间、跨时区调度 Cron 任务,或快速查询历史或未来的纪元值。此工具分为两个独立区块:
- 区块 A(Unix 时间戳 → 日期与时间):输入数值时间戳,即可看到以 21 种日期和时间格式呈现的结果,按标准家族分类。
- 区块 B(日期与时间 → Unix 时间戳):选择日历日期、时间和时区偏移量,即可获得等效的时间戳(以秒、毫秒和微秒表示)。
两个区块都有自己的时区选择器,因此您可以在一个方向使用 UTC,在另一个方向使用自定义偏移量,而不会互相干扰。
工作原理
Unix 时间从纪元(1970 年 1 月 1 日 00:00:00 UTC)开始计算秒数。每一次计数正好增加一秒。由于它以 UTC 为锚点,Unix 时间戳在全球任何地方都代表同一个瞬间——只有在将其呈现为人类可读字符串时,时区才有意义。
此工具使用浏览器原生的 JavaScript Date 对象进行所有转换。每个 Date 在内部将时间存储为单一数字:自 Unix 纪元以来的毫秒数。当您输入时间戳时,工具会创建一个 Date 并根据启用的时区选择器读取其 UTC 或本地属性。当您输入日历日期和时间为 UTC-4。时,工具会计算与纪元的差异,并根据指定的时区偏移量进行调整。
各生态系统中的时间戳单位
不同平台和语言使用不同的纪元单位。工具的单位选择器让您匹配来源的精度:
| 单位 | 使用方 | 示例 |
|---|---|---|
| 秒 | Go、PHP、Python、PostgreSQL、Ruby、cron | 10 位数 |
| 毫秒 | JavaScript(Date.now())、Ethereum、.NET DateTimeOffset、Java System.currentTimeMillis() |
13 位数 |
| 微秒 | Linux /proc/uptime、Go time.UnixMicro()、高分辨率性能分析 |
16 位数 |
此工具会将您的输入内部转换为秒。如果您粘贴来自 JavaScript 的 Date.now() 的 13 位数值,请将单位设为毫秒,工具会处理换算。
时区与夏令时
Unix 时间戳始终代表相同的物理瞬间。每个区块中的时区选择器只会改变该瞬间的显示或解读方式。
- UTC 模式:以协调世界时呈现所有输出。RFC 3339 格式使用字面
Z后缀代替+00:00。 - 本地模式:使用您浏览器的系统时区,包括自动的夏令时调整。
- 自定义模式:-12:00 到 +14:00 之间的数值 UTC 偏移量。工具会直接应用此偏移量,不进行任何夏令时修正——它会将您的偏移量视为固定的时钟时间。
当夏令时生效时,本地时区偏移量会改变。在本地模式下显示的相同时间戳可能会显示与上个月不同的小时。这是正常现象:时间戳本身相同,但当地时钟惯例改变了。
对于本地化格式的行(Locale、Locale Date、Locale Time),工具会同时尊重所选的时区和浏览器的语言设置。如果您选择 UTC 模式,toLocaleString 会收到 { timeZone: 'UTC' },确保本地化格式使用正确的时区。
使用方法
区块 A — 时间戳转日期与时间
- 在输入字段中输入 Unix 时间戳(仅数字,1970 年前可选负号)。
- 选择输入精度:秒、毫秒或微秒。
- 选择时区:UTC、本地(您的系统时区)或自定义(以半小时为间隔输入 -12 到 +14 之间的偏移量)。
- 查看结果——21 行日期和时间格式会实时更新。
区块 B — 日期与时间转时间戳
- 直接输入年份。使用下拉菜单选择月份、日期、小时、分钟和秒。
- 从 UTC/GMT 选择器中选择时区:本地匹配您的系统时区;像
UTC+8这样的数值条目会将输入视为该区域的时钟时间。 - 时间戳结果会立即以秒、毫秒、微秒、十六进制和相对时间显示。
两个区块独立运行。更改区块 A 不会影响区块 B,反之亦然。这使您可以并排比较时间戳,或在探索不同格式时锁定参考值。
教程
场景 1:从服务器日志解码时间戳
您的应用程序日志显示时间戳 `1742345678——一次失败的 API 调用。您需要确切知道它发生的时间,并检查 HTTP 日期格式以与 HTTP 响应标头进行关联。
- 打开 Unix 时间戳转换器。
- 在区块 A 的输入字段中输入
1742345678。 - 结果显示 21 行格式,包括:
- @ 格式:
3/19/2025 @ 2:14:38 PM +0000(快速浏览的人类可读格式) - RFC 1123Z:
Wed, 19 Mar 2025 14:14:38 +0000(HTTP 日期标准,对应Date和Last-Modified标头) - Relative:
124d(请求发生多久之前)
- @ 格式:
- 将时区切换为本地,查看在您自己的时区中是什么时间。
场景 2:在特定时间调度 Cron 任务
您需要在 2026 年 6 月 15 日美国东部时间凌晨 3:30 执行一个 Cron 任务。美国东部夏令时在 6 月是 UTC-4。
- 在区块 B 中,将日期设为 2026 年 6 月 15 日,时间设为 03:30:00。
- 将 UTC/GMT 选择器设为 `UTC+4(EDT 是 UTC-4,因此输入 -4)。
- 读取秒值——这就是您的 Cron 时间戳。Hex 和 Relative 行也会更新,同时为您提供机器可读和人类可读的参考信息。
专业提示
格式使用场景
每种输出格式都有特定的用途。以下说明何时使用每种格式:
| 格式 | 使用时机 |
|---|---|
| @ 格式 | 快速视觉扫描——简洁的 M/D/YYYY @ HH:MM:SS AM/PM 布局一眼可读 |
| DateTime | SQL 数据库插入(YYYY-MM-DD HH:MM:SS),JSON 以外最常见的字符串形式 |
| ISO 8601 | JSON 负载(new Date().toISOString())、REST API 请求和响应主体 |
| RFC 3339 | RSS 订阅、Atom 订阅、日历订阅(iCalendar);用于需要更严格规范的 ISO 8601 场景 |
| RFC 1123Z | HTTP 标头(Date、Last-Modified、Expires)、Cookie(expires 属性) |
| RFC 822 | 电子邮件标头(Date 字段)、旧式新闻组格式 |
| RFC 850 | 较旧的 HTTP/1.0 实现(现已少见,为向后兼容保留) |
| ANSIC | Go 的 time.ANSIC 常量——用于读取 Go time.Time 的默认输出 |
| RubyDate | Ruby 的 Time#ctime 格式;与经典 Unix ctime 输出相符 |
| DateOnly / TimeOnly | Go 1.20+ 便利常量——仅提取日期或仅提取时间 |
| Kitchen | Go 的 12 小时制格式——快速读取时钟时间 |
| Locale | 用户界面显示;尊重浏览器的语言和文化惯例 |
| Hex | 低级调试、固件时间戳、嵌入式系统 |
| Relative | 仪表板显示、"距上次事件时间"UI 元素 |
各语言实现
在您选择的语言中获取当前的 Unix 时间戳:
// Go
time.Now().Unix() // 秒
time.Now().UnixMilli() // 毫秒(Go 1.17+)
// JavaScript
Math.floor(Date.now() / 1000) // 秒
Date.now() // 毫秒
// PHP
time(); // 秒
intval(microtime(true) * 1000); // 毫秒
# Python
import time; int(time.time()) # 秒
import time; int(time.time() * 1000) # 毫秒
通用提示
- 1970 年之前的时间戳:输入负数值。1960 年 12 月 1 日 00:00:00 UTC 为
-286329600。 - 十六进制输入:十六进制值(含或不含
0x前缀)会自动解析——输入0x6618E1FE即可查看十进制等效值。 - 比较时区:将区块 A 的时区设为 UTC,并将区块 B 的时区设为本地,即可查看同一个时间点在两者中的显示差异。
替代方案
| 工具 | 时间戳转日期 | 日期转时间戳 | 21+ 格式 | 独立时区(每区块) | 客户端处理 |
|---|---|---|---|---|---|
| Toollect Unix 时间戳转换器 | 是 | 是 | 是(21 种) | 是 | 是 |
| unixtimestamp.com | 是 | 是 | 约 5 种 | 否 | 是 |
| epochconverter.com | 是 | 是 | 约 8 种 | 否 | 是 |
| site24x7.com | 是 | 是 | 约 6 种 | 完整 IANA | 是 |
date -d @timestamp(Linux) |
是 | 否 | 约 3 种 | 仅系统时区 | 不适用 |
故障排除
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 输出显示 1970 或 1969 年的日期 | 输入的精度单位错误 | 更改单位选择器以匹配您的输入(秒 / 毫秒 / 微秒) |
| 日期和时间显示错误的时刻 | 时区选择器设置不正确 | 切换到 UTC 验证基准时间,然后调整到正确的偏移量 |
| 本地化行显示错误时间 | 本地化格式忽略区块 A 的时区选择 | 此问题已修复——本地化现在会尊重所选时区。请确认您使用的是最新版本 |
| 输出未更新 | 输入包含非数字字符 | 清除字段,仅输入数字和可选的起始负号 |
| 相对时间对已知的过去时间戳显示"刚刚" | 相对时间是根据当前系统时钟计算 | 这是正常现象——相对时间总是将时间戳与"现在"进行比较 |
| 13 位数输入显示遥远的未来日期 | 输入值为毫秒,但单位默认为秒 | 将单位切换为"毫秒" |
技术规格
- 转换引擎:JavaScript
Date对象(ECMAScript 标准) - 时间戳范围:完整的 JavaScript 数值范围(±9 千兆秒,涵盖数十亿年)
- 支持的输入:十进制整数、负数值(1970 年之前)
- 输入精度:秒、毫秒或微秒(可设置)
- 时区支持:UTC、本地(浏览器系统)、自定义 GMT 偏移量(-12 到 +14,以 0.5 小时为间隔);每个区块独立设置
21 种格式家族
| # | 组 | 格式 | 示例 |
|---|---|---|---|
| 1 | 常用 | @ 格式 | 3/19/2025 @ 2:14:38 PM +0000 |
| 2 | 常用 | DateTime | 2025-03-19 14:14:38 |
| 3 | 常用 | ISO 8601 | 2025-03-19T14:14:38+00:00 |
| 4 | 常用 | RFC 3339 | 2025-03-19T14:14:38Z(UTC 使用 Z) |
| 5 | RFC | RFC 1123Z | Wed, 19 Mar 2025 14:14:38 +0000 |
| 6 | RFC | RFC 822 | 19 Mar 25 14:14 UTC |
| 7 | RFC | RFC 822Z | 19 Mar 25 14:14 +0000 |
| 8 | RFC | RFC 1123 | Wed, 19 Mar 2025 14:14:38 UTC |
| 9 | RFC | RFC 850 | Wednesday, 19-Mar-25 14:14:38 UTC |
| 10 | Go | ANSIC | Wed Mar 19 14:14:38 2025 |
| 11 | Go | UnixDate | Wed Mar 19 14:14:38 UTC 2025 |
| 12 | Go | RubyDate | Wed Mar 19 14:14:38 +0000 2025 |
| 13 | Go | DateOnly | 2025-03-19 |
| 14 | Go | TimeOnly | 14:14:38 |
| 15 | Go | Kitchen | 2:14PM |
| 16 | Go | Stamp | Mar 19 14:14:38 |
| 17 | 本地化 | Locale | 3/19/2025, 2:14:38 PM(依浏览器而定) |
| 18 | 本地化 | Locale Date | 3/19/2025 |
| 19 | 本地化 | Locale Time | 2:14:38 PM |
| 20 | 其他 | Hex | 0x6618E1FE |
| 21 | 其他 | Relative | 124d |
格式族谱
此工具中的日期和时间格式源自四个谱系:
- RFC 822(1982 年)定义了原始的电子邮件日期格式,使用 2 位数年份。RFC 1123(1989 年)以 4 位数年份取代了它。RFC 1123Z 是相同的格式,但使用数值时区偏移量(
+0000)代替字母缩写(UTC)。这些共同涵盖了 HTTP 标头(1123Z)和电子邮件格式(822)。 - ISO 8601(1988 年)建立了日期和时间表示的国际标准。RFC 3339(2002 年)为互联网使用设定了 ISO 8601 的规范配置,添加了 UTC 必须使用
Z等要求。大多数现代 API 会选择这两者之一。 - Go 时间常量(
ANSIC、UnixDate、RubyDate等)是 Go 标准库内置的便利布局。它们反映了 POSIX 惯例(ctime输出)、RFC 标准和 Go 专属的便利形式(DateOnly、Kitchen、Stamp)。 - 本地化格式使用浏览器的
Intl.DateTimeFormatAPI,该 API 遵循 Unicode 通用本地化数据存储库(CLDR)。确切的输出取决于用户的浏览器语言设置。
兼容性
- 浏览器:Chrome 90+、Firefox 90+、Safari 15+、Edge 90+
- 依赖项:无——纯 JavaScript,零第三方库
- 数据处理:100% 客户端处理——零网络请求
功能特色
- Unix时间戳与可读日期的双向转换
- 实时显示当前Unix时间戳并自动更新
- 多种输出格式:UTC、本地时间、ISO 8601、十六进制和相对时间
- 自定义时区偏移支持,实现日期到时间戳的精确转换
- 客户端处理 — 不会向任何服务器发送数据