← 全部工具
数据不出浏览器
Unix Timestamp Converter — 在线时间戳转换
免费 timestamp converter。在 Unix 秒/毫秒与 ISO / 本地时间之间转换,全部在浏览器完成。
当前时间
1791947916 · 2026-10-14T03:18:36.639Z
ISO
2026-10-14T03:18:36.000Z
UTC
Wed, 14 Oct 2026 03:18:36 GMT
本地时间
Wed Oct 14 2026 03:18:36 GMT+0000 (Coordinated Universal Time)
Unix
1791947916 / 1791947916000
避开时区坑的时间戳用法
Unix 时间戳表示自 1970-01-01 UTC 起经过的秒数,忽略闰秒。这个定义刻意「无趣」:它不带时区,所以同一时刻在任何机器上都是同一个数字,转成人类可读的时间只是后续的显示决策。
生产环境最常见的 bug 是单位混淆。10 位是秒,13 位是毫秒,猜错的系统会差 1000 倍,把 2026 年的日期变成 1970 年。先用位数判断,同时在 API 契约里写清楚,别让下一个开发者再猜一次。
存储统一用 UTC,只在渲染时转换。如果某处存了本地时间,那么夏令时切换、跨区服务器、以及第三个时区的用户,迟早会合起来产出「差一小时」的约会。让存储形态是绝对时间、渲染形态是本地时间,这一整类 bug 就不存在了。
常见问题
- 什么是 Unix timestamp?
- 自 1970-01-01 UTC 起的秒数(或毫秒),常用于日志与 API。
- 秒和毫秒如何区分?
- 通常 10 位是秒,13 位是毫秒;也可手动切换模式。
- 时区如何处理?
- ISO/UTC 显示标准时间;本地时间使用你的浏览器时区。
- 怎么获取当前的 Unix 时间戳?
- 浏览器里 Math.floor(Date.now() / 1000) 得到秒;在服务端,多数语言都有等价写法,shell 里是 date +%s。请使用平台的 UTC 时钟,而不是任何来自区域设置的推导值——区域设置正是产生偏差的根源。
- 为什么转换出来的时间差了几个小时?
- 几乎总是时区被应用了两次,或者一次都没应用。Unix 时间戳本身没有时区,所以结果里出现偏移,说明输入在某处被当成本地时间解析了。先确认读取时按 UTC 处理,再只在显示环节应用偏移。
- 什么是 2038 年问题?
- 把秒数存进 32 位有符号整数的系统会在 2038-01-19 溢出。解决办法是改用 64 位整数,目前多数平台已经如此。值得排查的是嵌入式代码、老旧数据库字段和文件格式,那里仍可能存在 32 位字段。