Unix时间戳转换器

日期与时间 转换器
Unix 时间戳
时区
日期时间格式
@ 格式
日期时间
ISO 8601
RFC 3339
RFC 1123Z
RFC 822
RFC 822Z
RFC 1123
RFC 850
ANSIC
UnixDate
RubyDate
仅日期
仅时间
厨房格式
时间戳记
地区格式
地区日期
地区时间
十六进制
相对时间
日期
- -
时间
: :
UTC/GMT
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 — 时间戳转日期与时间

  1. 在输入字段中输入 Unix 时间戳(仅数字,1970 年前可选负号)。
  2. 选择输入精度:毫秒微秒
  3. 选择时区:UTC本地(您的系统时区)或自定义(以半小时为间隔输入 -12 到 +14 之间的偏移量)。
  4. 查看结果——21 行日期和时间格式会实时更新。

区块 B — 日期与时间转时间戳

  1. 直接输入年份。使用下拉菜单选择月份、日期、小时、分钟和秒。
  2. 从 UTC/GMT 选择器中选择时区:本地匹配您的系统时区;像 UTC+8 这样的数值条目会将输入视为该区域的时钟时间。
  3. 时间戳结果会立即以秒、毫秒、微秒、十六进制和相对时间显示。

两个区块独立运行。更改区块 A 不会影响区块 B,反之亦然。这使您可以并排比较时间戳,或在探索不同格式时锁定参考值。

教程

场景 1:从服务器日志解码时间戳

您的应用程序日志显示时间戳 `1742345678——一次失败的 API 调用。您需要确切知道它发生的时间,并检查 HTTP 日期格式以与 HTTP 响应标头进行关联。

  1. 打开 Unix 时间戳转换器。
  2. 在区块 A 的输入字段中输入 1742345678
  3. 结果显示 21 行格式,包括:
    • @ 格式3/19/2025 @ 2:14:38 PM +0000(快速浏览的人类可读格式)
    • RFC 1123ZWed, 19 Mar 2025 14:14:38 +0000(HTTP 日期标准,对应 DateLast-Modified 标头)
    • Relative124d(请求发生多久之前)
  4. 将时区切换为本地,查看在您自己的时区中是什么时间。

场景 2:在特定时间调度 Cron 任务

您需要在 2026 年 6 月 15 日美国东部时间凌晨 3:30 执行一个 Cron 任务。美国东部夏令时在 6 月是 UTC-4。

  1. 在区块 B 中,将日期设为 2026 年 6 月 15 日,时间设为 03:30:00。
  2. 将 UTC/GMT 选择器设为 `UTC+4(EDT 是 UTC-4,因此输入 -4)。
  3. 读取值——这就是您的 Cron 时间戳。HexRelative 行也会更新,同时为您提供机器可读和人类可读的参考信息。

专业提示

格式使用场景

每种输出格式都有特定的用途。以下说明何时使用每种格式:

格式 使用时机
@ 格式 快速视觉扫描——简洁的 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 标头(DateLast-ModifiedExpires)、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 时间常量ANSICUnixDateRubyDate 等)是 Go 标准库内置的便利布局。它们反映了 POSIX 惯例(ctime 输出)、RFC 标准和 Go 专属的便利形式(DateOnlyKitchenStamp)。
  • 本地化格式使用浏览器的 Intl.DateTimeFormat API,该 API 遵循 Unicode 通用本地化数据存储库(CLDR)。确切的输出取决于用户的浏览器语言设置。

兼容性

  • 浏览器:Chrome 90+、Firefox 90+、Safari 15+、Edge 90+
  • 依赖项:无——纯 JavaScript,零第三方库
  • 数据处理:100% 客户端处理——零网络请求

功能特色

  • Unix时间戳与可读日期的双向转换
  • 实时显示当前Unix时间戳并自动更新
  • 多种输出格式:UTC、本地时间、ISO 8601、十六进制和相对时间
  • 自定义时区偏移支持,实现日期到时间戳的精确转换
  • 客户端处理 — 不会向任何服务器发送数据

常见问题

什么是Unix时间戳?
Unix时间戳(也称为纪元时间)是自1970年1月1日00:00:00 UTC以来经过的秒数。它是计算机以单个整数表示时间的通用方式,独立于时区和日历格式。
如何判断我的时间戳是以秒还是毫秒为单位?
以秒为单位的Unix时间戳有10位数字(例如1712345678),而以毫秒为单位的时间戳有13位数字(例如1712345678000)。我们的工具将所有输入视为秒。输出表同时显示毫秒等效值作为参考。
这个工具能处理1970年之前的日期吗?
可以。1970年1月1日之前的日期用负Unix时间戳表示。例如,1969年12月31日23:59:00 UTC是-60秒。输入负值,工具将正确转换。
我的数据会发送到服务器吗?
不会。所有转换完全在您的浏览器中完成。没有数据通过网络传输,因此此工具可安全处理来自私有日志或机密系统的时间戳。
什么是2038年问题?
在2038年1月19日03:14:07 UTC,32位有符号整数Unix时间戳将溢出——最大值2,147,483,647将回绕为-2,147,483,648,代表1901年12月13日。大多数现代系统使用64位整数,可避免此问题数十亿年。
ISO 8601 和 RFC 3339 有什么区别?
RFC 3339 是 ISO 8601 的一个配置文件。它们共享相同的基本格式(YYYY-MM-DDTHH:MM:SS±HH:MM),但 RFC 3339 要求时区指示符(UTC 使用 Z,否则使用 ±HH:MM),并强制要求三位数的年份范围。实际上,大多数现代 API 都可以互换接受这两种格式。
ESC