Unix 时间戳转换(秒/毫秒互转,多时区)

免费免登录的时间戳转换工具:Unix 时间戳与日期时间互转,自动识别秒/毫秒/微秒/纳秒,支持任意时区与夏令时、ISO 8601 / HTTP 日期格式、相对时间,并实时显示当前时间戳,全部在浏览器本地完成。

这个工具能做什么

两个方向都支持:把 1700000000 这样的时间戳变成人能读懂的日期时间,或把 2023-11-15 14:13:20 这样的日期变成时间戳。页面上方还有一块实时走动的当前时间戳,点一下数字就能复制。

时间戳一律按 UTC 解释(这是它的定义),展示时按你选的时区换算,所以同一串数字在「东八区」和「UTC」下会显示成不同的钟点,指的是同一个时刻。

秒、毫秒、微秒怎么区分

Unix 时间戳是「从 1970-01-01 00:00:00 UTC 起过了多少个单位」。同一个时刻用秒表示是 10 位(1700000000),用毫秒表示是 13 位(1700000000000),微秒 16 位、纳秒 19 位。

本工具不按位数硬判,而是依次套用秒、毫秒、微秒、纳秒,取第一个能落在 1900–2100 区间内的结果,并把这个判断写在输入框下方。如果两种单位都说得通(比如很短的纯数字),会告诉你还有哪些可能,需要时手动改单位即可——猜错了却不提示是最难排查的。

需要留意的常见来源:Java / PHP 的 time() 与 MySQL 的 UNIX_TIMESTAMP() 给秒;JavaScript 的 Date.now() 与 Python 的 time.time()*1000 给毫秒。前后端对不上时,先看这个差 1000 倍的问题。

时区与夏令时

时间戳本身没有时区,它是绝对时刻;时区只影响「显示成几点」。所以把时间戳发给别人时不用附带时区,但把「2023-11-15 14:13:20」这类字符串发给别人时必须说明时区,否则对方理解的是另一个时刻。

日期转时间戳时,不带时区后缀的输入按上方所选时区解释;带 Z 或 +08:00 的输入以输入自带的为准,工具会提示「已忽略所选时区」。

夏令时会在切换那天制造一段「不存在的时间」(比如纽约 2024-03-10 02:30)和一段「重复的时间」。遇到不存在的时刻,工具会明确告诉你这一小时被跳过了,并按切换后的实际时刻计算,而不是悄悄给出一个错误结果。

几种常见格式的区别

ISO 8601 的 2023-11-14T22:13:20.000Z 是国际通用写法,Z 表示 UTC;带偏移的 2023-11-15T06:13:20.000+08:00 表示同一时刻。HTTP 日期(RFC 7231)用于 Last-Modified、If-Modified-Since 这类请求头,固定用 GMT。

相对时间(「3 分钟前」)只适合给人看,不能用于计算或比较,也不能存进数据库。

隐私与费用

本工具免费、免登录、不限次数。所有换算由浏览器的 JavaScript 与内置时区数据库完成,输入的时间不会被发送到服务器,也不会被记录。

常见问题

时间戳为什么有 10 位和 13 位两种?

10 位是秒级(如 1700000000),13 位是毫秒级(如 1700000000000),相差 1000 倍。前端 JavaScript 的 Date.now() 给毫秒,后端 time() 一类函数通常给秒,对接时要统一。

时间戳会受时区影响吗?

不会。时间戳是从 1970-01-01 00:00:00 UTC 起算的绝对时刻,与时区无关。时区只决定把它显示成几点。所以跨时区传时间戳是安全的,传日期字符串才需要标明时区。

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

通常是两件事之一:一是把秒当成毫秒(或反过来)用了;二是你期望的是东八区时间但当前选的是 UTC。看输入框下方的单位说明,再把时区切到 Asia/Shanghai 即可。

2038 年问题是什么?

部分老系统用 32 位有符号整数存秒级时间戳,最大值是 2147483647,对应 2038-01-19 03:14:07 UTC,超过就会溢出成负数。用 64 位整数或毫秒时间戳可以避开。

夏令时那天的时间怎么算?

工具会检测你输入的本地时间在所选时区是否存在。如果落在被跳过的这一小时里,会明确提示「这个时间不存在」并按切换后的实际时刻计算;重复的那一小时按第一次出现的时间算。

输入的时间会上传到服务器吗?

不会。换算完全在浏览器里完成,页面只从服务端读取工具目录与使用策略,不发送你输入的任何时间数据。

同类工具

其他常用工具

查看时间与效率全部工具 · 返回全部工具