toolfree

Unix 时间戳转换

将 Unix 时间戳转换为日期,或反向转换。支援秒与毫秒、同时显示 UTC 与本地时间,全部在浏览器内完成。

在你的浏览器中运行

UTC

-

你的浏览器

-

按 IP 判断

-
查询中…

任选时区

-

什么是 Unix 时间戳

Unix 时间戳记录的是自 1970-01-01 00:00:00 UTC(称为 epoch,纪元)以来经过的秒数。 它本身不带时区信息:同一个瞬间在世界任何地方的时间戳都相同。正因如此,系统内部多半以 这种方式储存时间,只在显示给人看时才转换成当地历法。

秒还是毫秒?

这是「日期跑到 1970 年」这类错误最常见的来源。各平台采用的单位并不一致:

来源单位2025 年的时间戳长这样
Unix date +%s、PostgreSQL、Go、Python time.time()1754438400
JavaScript Date.now()、Java System.currentTimeMillis()毫秒1754438400000

最快的判断方式是看位数。以现在的时间而言,秒为单位是 10 位数,毫秒为单位则是 13 位数。把毫秒值喂给预期收到秒的程序,日期会落在西元 57000 年左右;反过来则会停在 1970 年 1 月。

取得目前的时间戳

date +%s                      # shell,秒
Date.now()                    // 毫秒
Math.floor(Date.now() / 1000) // 秒
import time; int(time.time())
SELECT EXTRACT(EPOCH FROM NOW());  -- PostgreSQL

2038 年问题

若系统以 有号 32 比特整数 储存时间戳,数值会在 2147483647 溢位,也就是 2038-01-19 03:14:07 UTC。届时计数器翻转为负数,日期会跳回 1901 年。现代 64 比特平台 不受影响,但这个问题仍会出现在嵌入式固件、较旧的文件格式,以及宣告为 32 比特的数据库 栏位中。

关于时区

时间戳本身是绝对的,但你把它转换成的日期不是。本工具同时显示 UTC 与浏览器的本地时间; 只要你的时区偏移不为零,两者就会不同,有时甚至差整整一天。当你拿转换结果和另一个系统 比对时,请先确认双方使用同一个时区,再判断是不是真的有错。

数据不会离开这台装置

转换只是在你的浏览器里做算术,你输入的内容不会传送到任何地方。