Unix 时间戳转换器(时间戳 ↔ 日期)

粘贴一个 epoch 时间,即可查看它在任意时区对应的日期;或者选择一个日期,获取其 Unix 时间戳。秒、毫秒、微秒和纳秒会被自动识别。

在浏览器中运行无需注册不上传任何数据

0秒
0毫秒

时间戳 → 日期

日期 → 时间戳

如何使用Unix 时间戳转换器

  1. 顶部实时显示当前 Unix 时间,可按秒或毫秒复制。
  2. 把时间戳(或 2026-10-12T10:00:00Z 这样的 ISO 日期)粘贴到时间戳 → 日期中。单位会根据位数自动识别。
  3. 选择一个时区,即可看到同一时刻对应的当地时间,以及 UTC、ISO 8601、RFC 2822、相对时间和周数。
  4. 反向转换时,在日期 → 时间戳中选择日期和时间。它会被视为所选时区的当地时间,并考虑夏令时。
  5. 使用每个值旁边的复制按钮。

什么是 Unix 时间戳?

Unix 时间戳(epoch 时间、POSIX 时间)是自 1970-01-01 00:00:00 UTC 以来经过的秒数,不计闰秒。它描述的是一个与时区无关的瞬间,这正是数据库、日志、JWT exp 声明和 API 使用它的原因。只有在把这个瞬间转换成给人看的日历日期和钟表时间时,时区才有意义。

秒、毫秒、微秒还是纳秒?

不同平台使用不同的计数单位,搞混它们是经典 bug(日期变成 1970 年或公元 55,000 年)。转换器会根据位数来判断:

位数(当前)单位典型来源
10秒Unix date +%s、PHP time()、JWT 声明、Python int(time.time())
13毫秒JavaScript Date.now()、Java System.currentTimeMillis()
16微秒PostgreSQL 内部、部分链路追踪系统
19纳秒Go time.UnixNano()、Python time.time_ns()

在代码中获取当前时间戳

// JavaScript
Math.floor(Date.now() / 1000)
# Python
import time; int(time.time())
# Bash
date +%s
-- PostgreSQL
SELECT extract(epoch FROM now());

时区与夏令时

把日期转换为时间戳时,当地时间会按所选的 IANA 时区(例如 Europe/Istanbul 或 America/New_York)解释,使用的是浏览器的时区数据库。春季拨快时钟时,某些当地时间并不存在;秋季拨回时钟时,同一当地时间会出现两次,此时取较早的那个瞬间。发生这些情况时,工具会提示你。

2038 年问题

用有符号 32 位整数存储秒数的系统会在 2147483647 处溢出,即 2038-01-19 03:14:07 UTC。现代平台使用 64 位值,但较老的嵌入式系统和数据库列可能仍会受到影响。

常见问题

如何判断我的时间戳是秒还是毫秒?
数一下位数。当前日期以秒表示是 10 位,以毫秒表示是 13 位。转换器会自动识别,并告诉你使用了哪个单位。
Unix 时间戳总是 UTC 吗?
是的。时间戳本身没有时区;它计算的是自 1970 年 1 月 1 日 UTC 午夜以来的秒数。只有在显示为当地日期时才会应用时区。
可以转换负数时间戳吗?
可以。负值表示 1970 年之前的时刻,例如 -86400 是 1969-12-31 00:00:00 UTC。
Unix 时间包含闰秒吗?
不包含。每个 Unix 日恰好是 86,400 秒,因此不计闰秒。这让日期运算保持简单。
可以粘贴 ISO 8601 日期而不是数字吗?
可以。2026-10-12T10:00:00Z 或 2026-10-12T10:00:00+03:00 这样的字符串会被解析,并以各种格式显示,包括其 Unix 时间戳。

相关工具