Skip to content
Unix 时间戳转换
Tools

Unix 时间戳转换

在 Unix 时间戳与日期之间互转,含实时当前时间与 ISO 8601。

Live Unix time — now
Timestamp → date
Date → timestamp
Discord timestamp tags Shows in each reader's local timezone

Paste any Unix timestamp (seconds or ms) or click Now — Discord renders these tags dynamically for every reader.

Runs entirely in your browser. Nothing is uploaded.

即时将 Unix 时间戳转换为日期——双向转换

这个 Unix 时间戳转换器可将任意 epoch 时间转换为人类可读的日期,也可将任意日期转换回时间戳,完全在您的浏览器中运行。实时计时器显示当前 Unix 时间(以秒和毫秒为单位),方便您随时复制最新的 epoch 值。无需注册,无服务器,不上传任何数据。

粘贴任意数字,工具会自动识别其单位:10 位为秒,13 位为毫秒,16–17 位为微秒,然后以本地时间、UTC、ISO 8601、RFC 2822 以及友好的相对格式(如"3 小时前")显示结果。每个输出都有一键复制按钮。

时间戳 → 日期 与 日期 → 时间戳

时间戳 → 日期面板接受任意正数或负数 Unix 时间戳。负数时间戳表示 1970 年之前的日期——Unix 时间戳 −86,400 对应 1969 年 12 月 31 日 00:00:00 UTC。您可以覆盖自动检测的单位,强制指定秒、毫秒或微秒。

日期 → 时间戳面板则反向工作:选择任意日期和时间,从完整的 IANA 时区列表中选择时区,即可获得该时刻对应的 Unix 秒和毫秒值。默认显示当前时间,方便您立即查看今天的 epoch 值。

Discord 时间戳标签——生成全部七种格式

Discord 使用 <t:1700000000:F> 这样的标签在聊天消息中渲染 Unix 时间戳,Discord 客户端会自动以每位读者的本地时区显示。七种格式代码为:t(短时间)、T(长时间)、d(短日期)、D(长日期)、f(短日期和时间——默认)、F(带星期几的长日期和时间)和 R(相对时间——"3 小时后"、"2 年前")。

大多数 Discord 时间戳生成器只能生成七种格式中的一两种。本工具一次性生成全部七种格式,并附带每种格式在您本地时区的预览,每个标签都有复制按钮。支持 iPhone、Android 和桌面端。

与 EpochConverter.com 和 unixtimestamp.com 的比较

EpochConverter.com 是该类别的领先工具——它能很好地处理秒和毫秒时间戳,速度也很快。但它不能自动检测单位(需要手动指定秒还是毫秒),没有 Discord 标签生成器,也不支持微秒。Unixtimestamp.com 更简单——仅支持秒,没有 Discord 输出,也没有相对时间。

本工具通过位数自动检测三种单位,生成全部七种 Discord 格式标签,显示相对时间,且完全在浏览器中运行,无需账号。对于需要在单一标签页中调试日志文件、API 响应和 Discord 机器人的开发者来说,这些功能的组合在上述网站上均不可用。

自动识别秒、毫秒和微秒

Unix 时间戳最常见的混淆来源是单位。秒时间戳如 1700000000 有 10 位,代表 2023 年 11 月的某个日期。同一时刻的毫秒时间戳为 1700000000000——13 位,是前者的一千倍。JavaScript 的 Date.now() 返回毫秒;Unix shell 命令 date +%s 返回秒。各种 API 和数据库的单位差异很大。

16 和 17 位时间戳代表微秒——用于高精度传感器数据、分布式追踪和某些 NoSQL 数据库。本转换器通过位数识别单位,每次都能正确转换。您也可以覆盖检测结果,强制指定特定单位。

Python、JavaScript 和 SQL 中的 Epoch 转换

Python 中,使用 datetime.fromtimestamp(ts, tz=timezone.utc) 获取 UTC 时间,或省略 tz 以服务器本地时区获取结果(在不同机器上会产生 bug)。当前秒时间戳为 int(time.time());毫秒时间戳为 int(time.time() * 1000)。在 JavaScript 中,new Date(ts * 1000) 将秒时间戳转换为 Date 对象;Date.now() 给出当前毫秒 epoch。

MySQL 中,UNIX_TIMESTAMP() 返回当前秒 epoch,FROM_UNIXTIME(ts) 将其转回日期时间。在 PostgreSQL 中,EXTRACT(EPOCH FROM timestamptz) 给出秒 epoch,TO_TIMESTAMP(ts) 反向转换。本工具处理开发者容易踩坑的边界情况:2038 年问题、1970 年之前的负时间戳,以及三种精度单位。

隐私保护、支持离线、即时响应

所有转换均在您的浏览器本地运行——没有服务器,不上传任何数据,不发出任何网络请求。页面加载完成后即使离线也能正常工作。收藏本页,下次在日志文件、API 响应、数据库记录或 JWT 载荷中遇到可疑整数时,可快速查看其代表的日期和时间。

Frequently asked questions

什么是 Unix 时间?

Unix 时间(也称为 epoch 时间或 POSIX 时间)是自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)起经过的秒数。例如,时间戳 1,700,000,000 对应 2023 年 11 月 14 日(星期六)22:13:20 UTC。它是一个与时区无关的整数,几乎在所有编程语言、数据库和 API 中都用于无歧义地表示时间点。

Unix 纪元是什么?

Unix 纪元是 Unix 时间的参考点:1970 年 1 月 1 日 UTC 午夜。每个 Unix 时间戳都从该时刻开始计数秒(或毫秒、微秒)。纪元之前的时间戳为负数——Unix 时间戳 −86,400 代表 1969 年 12 月 31 日 00:00:00 UTC。

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

秒精度的 Unix 时间戳通常有 10 位数字(2001 年至 2286 年之间),例如 1700000000。毫秒时间戳是秒时间戳乘以 1,000,有 13 位:1700000000000。JavaScript 的 Date.now() 返回毫秒;大多数服务器端语言默认返回秒。本转换器通过位数自动检测单位(10 位→秒,13 位→毫秒,16 位以上→微秒),也可手动强制指定。

如何生成 Discord 时间戳标签?

Discord 在消息中使用 <t:UNIX_SECONDS:格式代码> 语法渲染 Unix 时间戳。七种格式代码分别是:t(短时间)、T(长时间)、d(短日期)、D(长日期)、f(短日期/时间,默认)、F(带星期的长日期/时间)和 R(相对时间,如"2 年前")。本工具一次性生成全部七种格式,并附带预览。

16 或 17 位时间戳是什么?

16 和 17 位时间戳表示微秒(百万分之一秒),常见于高频交易系统、硬件传感器、Zipkin 和 Jaeger 等分布式追踪工具,以及 Cassandra 等某些数据库。16 位值如 1700000000000000 是秒时间戳乘以 1,000,000。本转换器能正确识别并转换微秒时间戳。

如何在 Python 中转换时间戳?

使用 datetime 模块。将 Unix 时间戳转换为 UTC:from datetime import datetime, timezone; dt = datetime.fromtimestamp(1700000000, tz=timezone.utc)。获取当前秒时间戳:import time; ts = int(time.time())。毫秒时间戳:ts_ms = int(time.time() * 1000)。务必传入 tz=timezone.utc 以避免因服务器本地时区不同导致的 bug。

什么是 2038 年问题?

2038 年 1 月 19 日 03:14:07 UTC,32 位有符号 Unix 时间戳将溢出——达到 2³¹ − 1(2,147,483,647)后回绕为大负数,导致日期被错误显示为 1901 年。使用 32 位整数存储时间戳的系统——旧版 Linux 内核、某些嵌入式固件、32 位构建的 MySQL——面临此风险。64 位时间戳则还需 2920 亿年才会溢出。

Related tools

查看全部工具