跳到内容

时间戳转换器

在 Unix 时间戳(秒/毫秒)与 ISO 8601 / JST / UTC 之间相互转换。适用于日志分析、API 调试和数据迁移时的日期验证。

完全免费 无需注册 浏览器内完成 5 种语言 深色模式
当前时间戳
秒:
毫秒:
如有问题或显示异常,请通过以下方式联系我们: 联系表单

📖 常见的坑

在 Unix 时间戳(秒 / 毫秒)与 ISO 8601 / JST / UTC 之间互相转换。是秒还是毫秒,是根据位数推测的——13 位及以上按毫秒处理,10 位按秒处理。这是实务中几乎总能成立的经验法则,而非规范。时间戳这个数值本身既不带单位也不带时区,因此最终只能依据「产生该值的系统的规格」来判断

情形 会发生什么 怎么处理
结果落在 1970 年,或者五万年之后 这是把秒和毫秒搞混的典型症状。把毫秒值当作秒来读,会落到公元 55000 年前后把秒值当作毫秒来读,则落在 1970 年 1 月 20 日附近。根源在于各语言的默认单位不同:JavaScript 的 Date.now() 与 Java 的 System.currentTimeMillis() 是毫秒,而 PHP 的 time()、Python 的 time.time()、shell 的 date +%s 是秒。凡是 JSON 跨语言传递的边界,必然会踩到。 数位数是最快的判别法。自 2001 年 9 月 9 日起,秒是 10 位、毫秒是 13 位(都到 2286 年为止),所以在可预见的将来,只要能分辨这两种即可。在设计层面,把单位写进 API 字段名,事故率最低:命名为 expires_at_ms 而非 expires_at,接收方就无从误读。如果本来就能传 ISO 8601 字符串,那更安全——人眼可读,这类错误在代码评审阶段就会被拦下。
同一个日期字符串在不同环境下变成不同时刻 不写时区的字符串,其解释由各实现自行决定。在 JavaScript 中,2024-01-01(只有日期)按 UTC 解析,而 2024-01-01T00:00:00(带时刻)按本地时间解析——只差一个字符,就差了 9 小时。而 2024-01-01 09:00:00 这种空格分隔的写法,ISO 8601 和 ECMAScript 都未作规定,各浏览器各自解释。在服务器用 UTC、开发机用 JST 的配置下,这会表现为本地跑得好好的,唯独生产环境差 9 小时 不要写不带时区的字符串。务必加上 Z+09:00——2024-01-01T00:00:00Z 在任何实现中都指向同一个瞬间。运维原则是「存储用 UTC,仅在展示时转为本地」数据库列类型里也有同样的陷阱:MySQL 的 TIMESTAMP 取出时会按会话时区转换,而 DATETIME 原样返回你写入的字符串。一旦迁移服务器导致 time_zone 改变,就只有 TIMESTAMP 列连同历史数据一起看起来整体偏移。
用固定偏移保存,遇到夏令时或法规变更就错位 +09:00 这样的偏移记录的是「某一瞬间的差值」,而不是「地区」。JST 没有夏令时,纯国内系统很少察觉,但一旦涉及美国或欧洲用户就会崩——纽约每年在 -05:00-04:00 之间往返两次,因此三月以 -05:00 保存的「每周一 9 点例会」,到了四月会在 8 点响。偏移还会因立法而改变——萨摩亚 2011 年跨过了日界线,那一年干脆没有 12 月 30 日。 过去发生的记录用带偏移的瞬间(UTC)保存,未来的安排用 IANA 时区名 + 本地时刻保存。两者用途不同:日志只需说明「何时发生」,瞬间就够;而日程是「当地 9 点」的约定,因此若不以 Asia/TokyoAmerica/New_York 这样的地区名保存,每逢法规变更日程就会漂移时区数据库(tzdata)一年要更新数次——固定住的容器镜像会一直沿用旧规则,所以请记住更新基础镜像的必要性不止于安全

Unix 时间戳并不是「自 1970-01-01T00:00:00Z 起经过的秒数」——准确地说,它是假装闰秒从未发生过的累计秒数,截至 2026 年与真实经过时间相差 27 秒。日常应用可以忽略,但若要对金融交易排序,或推理分布式系统中的因果关系,这 1 秒就成了问题:插入闰秒时,某些系统会让同一个时间戳出现两次,或把时钟回拨 1 秒。Google 与 AWS 则采用把调整摊平到一整天的 smear 方式,因此那一天他们的时钟与其他人最多相差 0.5 秒。凡需要时刻唯一性的场合,都不要拿时间戳当主键,请配合一个单调递增的 ID。

📖 使用方法

  1. 1
    输入时间戳或日期字符串
    输入 Unix 时间戳(秒/毫秒)或 ISO 8601 日期字符串。
  2. 2
    查看转换结果
    显示多种格式的结果。点击任一行可复制。
  3. 3
    使用偏移按钮调整
    使用偏移按钮调整时间戳。

❓ 常见问题

如何区分秒和毫秒?
通过位数判断:13位以上为毫秒,10位为秒。
什么是 JST?
JST 是日本标准时间,UTC+9。
什么是 Unix 时间戳?
从 1970-01-01 00:00:00 UTC 起经过的秒数。
🐛 此工具出现问题了吗?

免费、无需注册。仅提供复现步骤也有帮助。报告将直接发送给运营者并用于改进。

※ 为复现问题,浏览器信息 (UA / 屏幕 / 语言 / URL) 将自动发送