时间戳转日期时间:为什么同一个时间戳显示不一样
时间戳是绝对时刻,日期时间是它在某个时区里的写法。所以「转换」其实分两步:先把时间戳解成绝对时刻,再按选定时区算出年月日时分秒。第一步永远一样,第二步取决于时区——这就是同一个时间戳能显示出不同日期的原因。
两个方向,各自的坑不一样
时间戳 → 日期:坑在时区。默认按浏览器本地时区显示,同一串数字在北京看是下午、在伦敦看是上午。对日志排查、跨时区协作,必须显式选时区。
日期 → 时间戳:坑在解析。不带时区后缀的 2026-11-05 17:30:00 到底算哪个时区?不同语言默认值不同:JavaScript 的 new Date("2026-11-05 17:30:00") 按本地时区,而 new Date("2026-11-05") 按 UTC。这是最隐蔽的一类错。
这个工具的规则是明确的:不带时区后缀的输入按你选择的时区解析;带 Z 或 ±HH:MM 的 ISO 8601 输入按其自身时区解析,不会二次套用时区选择器。
ISO 8601 后缀怎么读
2026-11-05T09:30:00Z:末尾的Z表示 UTC(零时区)。2026-11-05T17:30:00+08:00:东八区,等价于上面的 UTC 09:30。2026-11-05T17:30:00:没有后缀,按本地/所选时区解析——这一条最容易被误读成 UTC。
写接口时建议一律带 Z 或偏移量,让「哪个时区」这件事写在数据里,而不是藏在解析方的默认值里。
切换时区会改变时间戳吗
不会。同一个 Unix 时间戳代表同一个绝对时刻,切换时区只改变日期时间的显示方式,时间戳本身不变。
所以「美国同事看到的时间比我晚一天」并不意味着数据错了——那是同一个时刻在两个时区里的两个写法。只有当你把日期反向转成时间戳、且输入不带时区后缀时,时区选择才真正影响结果。
非整小时偏移与时区数据库
时区不只是整小时。尼泊尔是 +05:45,印度是 +05:30,伊朗是 +03:30。写死「加 8 小时」的代码在这些地方会错半小时。
这个工具用浏览器原生的 Intl 能力,覆盖完整 IANA 时区数据库,包括历史规则变更与非整小时偏移,不需要自己维护时区表。
上面这些都不用装软件,也不用注册:打开页面就能用。
打开时间戳转换 →常见问题
为什么我转出来的日期是 1970 年?
大概率把秒级时间戳当成了毫秒。秒当毫秒会落在 1970-01-19 附近;反过来毫秒当秒会跑到几万年以后。先确认单位,再转换。
输入日期时间时要不要带秒?
可以不带。省略秒会按 0 秒处理。但建议写全,避免「同一分钟内两次转换结果不同」这种看起来像 bug 的现象。
转换过程会把时间数据发到服务器吗?
不会。所有转换都在浏览器内用原生 API 完成,页面不发出任何携带数据的网络请求,断网也能用。