TapCub 正式上线:统计、分析、客服一个平台免费用

免费工具 时间戳转换器:Unix 时间戳与北京时间互转

日志、接口返回、数据库里那串 10 位或 13 位数字,粘进来就能看到对应的北京时间;反过来输入一个日期,马上得到秒级和毫秒级时间戳。位数自动判断,不用先想它是秒还是毫秒。

  • 秒、毫秒、微秒、纳秒
  • 任意时区,含夏令时
  • 本地计算
转换器

时间戳、日期互相转换

一行一个值。纯数字按 Unix 时间戳理解;日期按下面选的时区理解,带了时区偏移的按它自己的偏移。粘贴多行就是批量转换。

数字:10 位是秒,13 位是毫秒。日期:2026-11-10 09:30:00 这种写法;末尾加 Z 或 +08:00 可以指定时区。

结果按这个时区显示;没写偏移的日期也按这个时区理解。打开页面时会自动换成你电脑的时区(列表里有的话)。

一般保持自动;位数很短的值(比如 1970 年代初的时间戳)再手动指定。

所选时区的日期时间
2023-11-15 06:13:20 (UTC+08:00)

后面括号里是当时生效的 UTC 偏移,北京时间固定是 UTC+08:00。

ISO 8601(UTC)
2023-11-14T22:13:20.000Z

存储和接口传输用这个格式,不会有时区歧义,末尾 Z 表示 UTC。

秒级时间戳(10 位)
1700000000

PHP time()、Python int(time.time())、MySQL UNIX_TIMESTAMP() 返回的就是它。

毫秒级时间戳(13 位)
1700000000000

JavaScript Date.now()、Java System.currentTimeMillis() 返回的就是它。

全部在你的浏览器里计算。这里输入的任何内容都不会上传,TapCub 也不会保存。

分享这组输入:数值写在链接的 # 后面,不会发到服务器。

版本 v1.0更新于 更新记录

读懂结果

同一个时刻的四种写法

几个结果说的是同一个瞬间,区别只在单位,以及显示时有没有套用时区。

秒级和毫秒级

都是从 1970-01-01 00:00:00 UTC 起算的时长,毫秒级多 3 位。PHP、Python、MySQL、Go 常用秒;JavaScript、Java、小程序里 Date.now() 拿到的是毫秒。前后端一边传秒一边按毫秒解析,是时间戳最常见的 bug。

ISO 8601(UTC)

人能看懂、又自带时区的字符串,末尾 Z 表示 UTC。接口、日志、JSON 里用它,谁来解析都不用猜时区。

所选时区的日期时间

那个时区的人当时在钟表上看到的时间。北京时间全年 UTC+08:00,没有夏令时;美国、欧洲的时区夏天和冬天偏移不同,括号里会如实显示。

批量结果

粘贴多于一行时出现。每行保留原值,可以从日志或 Excel 里复制一整列进来,再把转换后的一列复制回去。

Unix 时间戳本身没有时区。换时区只改变显示出来的日期时间,秒和毫秒不会变。

怎么用

三步完成转换

边输边算,不用点按钮。

  1. 1

    粘贴值

    任意常见位数的时间戳、2026-11-10 09:30 这样的日期,或者一行一个的整列数据。点「填入当前时间」得到此刻的秒级时间戳。

  2. 2

    选时区

    默认北京时间(打开页面后会换成你电脑的时区)。没写偏移的日期,也按这个时区理解。

  3. 3

    核对单位再复制

    结果落在 1970 年或几万年后,说明单位判断错了,手动选一下。每个结果都有复制按钮。

换算规则

Unix 时间戳 = 从 1970-01-01 00:00:00 UTC 起经过的秒数

这个起点叫 Unix 纪元(epoch),对应北京时间 1970-01-01 08:00:00。时间戳就是从那以后经过的秒数(或毫秒、微秒、纳秒),更早的时间是负数。转成日期就是在纪元上加这么多秒,再按时区显示。

  • 自动判断单位:≤ 11 位按秒,12–14 位按毫秒,15–17 位按微秒,18–20 位按纳秒
  • 日期的年月日之间可以用 -、/ 或 .,秒和毫秒可省略,末尾可带 Z 或 ±HH:MM
  • Unix 时间不计闰秒,每天在时间戳里都正好是 86,400 秒
  • 时区和夏令时规则来自浏览器内置的 IANA 时区库

时间戳 → UTC 日期

日期 = 1970-01-01T00:00:00Z + 秒数

1700000000 → 2023-11-14T22:13:20Z

秒 ↔ 毫秒

毫秒 = 秒 × 1,000

1700000000 秒 = 1700000000000 毫秒

UTC → 北京时间

北京时间 = UTC + 8 小时

2023-11-14 22:13:20 UTC → 2023-11-15 06:13:20

32 位整数上限

2³¹ − 1 = 2147483647

→ 2038-01-19 03:14:07 UTC,即「2038 年问题」

算例

五个输入,按北京时间看

时区选 Asia/Shanghai,五行一起粘贴。前三行是同一时刻的不同精度;后两行演示双 11 零点怎么换成时间戳,以及输入里带 Z 时结果怎么变。

时区为北京时间(Asia/Shanghai)时的转换结果
输入识别为ISO 8601(UTC)北京时间
1700000000秒(10 位)2023-11-14T22:13:20.000Z2023-11-15 06:13:20 (UTC+08:00)
1700000000000毫秒(13 位)2023-11-14T22:13:20.000Z2023-11-15 06:13:20 (UTC+08:00)
1700000000123456微秒(16 位)2023-11-14T22:13:20.123Z2023-11-15 06:13:20 (UTC+08:00)
2026-11-11 00:00:00按所选时区理解的日期2026-11-10T16:00:00.000Z2026-11-11 00:00:00 (UTC+08:00)
2026-11-10T09:30:00Z带 Z 的 UTC 日期2026-11-10T09:30:00.000Z2026-11-10 17:30:00 (UTC+08:00)

第四行双 11 零点对应的秒级时间戳是 1794326400,ISO 里显示的是前一天 16:00 UTC。第五行的 Z 表示 UTC,所以 09:30 要加 8 小时,变成北京时间 17:30。

常见错误

时间戳最容易出错的地方

换算本身是精确的。出问题的地方都是单位和时区「默认」了,而没有写明。

秒和毫秒搞混

毫秒当秒解析会跑到几万年后,秒当毫秒解析会落在 1970 年 1 月。接口两端约定好位数,Java / JS 拿到的 13 位传给 PHP 前先除以 1000。

存日期不带时区

「2026-11-10 09:30」在北京和纽约是两个时刻。数据库里存时间戳或带偏移的 ISO 8601,只在显示时换成北京时间。

以为服务器是北京时间

很多云服务器、Docker 容器默认是 UTC,日志里的时间会比北京时间早 8 小时。格式化时显式指定时区,别依赖系统默认。

把 8 小时写死在代码里

「+ 8 × 3600」只对北京时间成立。用户或服务器在海外、或者遇到有夏令时的地区,就会错。按时区名换算,不要手加固定小时数。

常见问题

时间戳常见问题

还有其他问题?

直接和 TapCub 团队聊聊——工作日通常几小时内回复。

Unix 时间戳是什么?

从 1970-01-01 00:00:00 UTC(北京时间 1970-01-01 08:00:00)起经过的秒数。比如 1700000000 就是北京时间 2023-11-15 06:13:20。它只是一个数字,方便存储、排序和比较,在全世界表示同一个时刻。

10 位和 13 位时间戳有什么区别?

10 位是秒,13 位是毫秒,差 1000 倍。PHP、Python、MySQL 默认用秒;JavaScript 的 Date.now()、Java 的 System.currentTimeMillis() 返回毫秒。16 位是微秒,19 位是纳秒。这个工具按位数自动判断,也可以手动指定。

各语言怎么获取当前时间戳?

JavaScript:Math.floor(Date.now() / 1000)(毫秒直接 Date.now());Python:int(time.time());PHP:time();Java:System.currentTimeMillis() / 1000;MySQL:UNIX_TIMESTAMP();Linux 命令行:date +%s。

MySQL 和 Excel 里怎么把时间戳转成日期?

MySQL 用 FROM_UNIXTIME(1700000000),结果按数据库会话的时区显示。Excel 里秒级时间戳在 A1 时,北京时间公式是 =(A1+8*3600)/86400+DATE(1970,1,1),再把单元格格式设成日期时间;13 位的先除以 1000。

为什么转出来的时间差了 8 小时?

基本都是时区问题:值是按 UTC 写的却当北京时间读了,或者反过来。服务器、Docker 容器默认 UTC 很常见。在输入末尾加 Z 或 +08:00 写明时区,或者把时区选成写入时用的那个。

时间戳有时区吗?

没有。时间戳从一个按 UTC 定义的固定时刻起算,同一个时间戳在北京和伦敦是同一个瞬间。只有把它格式化成「几月几号几点」时,才需要时区。

什么是 2038 年问题?

用有符号 32 位整数存秒级时间戳的系统,到 2147483647(2038-01-19 03:14:07 UTC,北京时间 11:14:07)之后会溢出。数据库字段和代码里用 64 位整数或日期类型可以避免。

更新记录

更新记录

这个工具的新功能、修复和数据更新,最新的在前。

  1. · v1.0

    首次上线首次上线。

缺功能或发现错误?告诉我们,常被提到的会排进下次更新。 全部工具更新

下一步

让事件自己带上时间

装好 TapCub,每次浏览和事件都会连同时间戳一起记录,按小时、天、周出报表,按你站点的时区切分。

看清数据,找到增长。

每一次点击,都有数据依据。装好一行代码,1 分钟看到第一批数据。

无需信用卡 · 统计与客服都有免费版 · 统计无 Cookie