时间戳与日期互转

37 个工具

在 Unix 时间戳与可读日期之间转换。

免费使用,无需注册。JSON、密码、2FA 等工具在浏览器本地处理。

时间戳与日期互转

在 Unix 时间戳与可读日期之间转换。

免费

介绍

粘一个时间戳看日期,或者粘一个日期拿时间戳。值得先知道的两个坑是单位和时区,两者产生的答案都看起来合理却是错的,下面分别说。

使用方法

输入时间戳或日期字符串,选择方向。可读日期按浏览器所在时区显示,所以同一个时间戳在同事那里会是另一个墙上时间。

单位这个坑

Unix 时间从 1970 年初开始计数,不同生态用的单位不同。多数后端用秒,多数 JavaScript 用毫秒,所以一个值跨过这条边界就会落进 1970 或者遥远的未来。位数是最快的检查:十位是秒,十三位是毫秒,其它长度值得在相信这次转换之前多看一眼。

时间戳没有时区

这个数字是一个瞬间,在哪里都一样。时区只在它被渲染成日期时才介入,所以同一个值在两台机器上显示成两个墙上时间,而且两个都不算错。把日志条目和一张截图对时之前,先确认各自是按哪个时区渲染的,再去判断时间对不上。

它们通常出现在哪里

JWT 里的 exp 和 iat 字段、不为人类格式化的日志行、用整数存 epoch 的数据库列,以及要求时间戳而不是日期的排期格式。读一个令牌的过期时间大概是来这里最常见的理由,它也能快速分清一个凭据是过期了还是被拒绝了。

一眼能看出问题的数值

零就是纪元本身,1970 年 1 月 1 日,通常说明某个字段从来没被设置过,而不是那时发生了什么。落在 2038 年的日期暗示上游某处有个有符号 32 位的限制。一堆记录整齐地停在零点,说明本该存时间戳的地方存了日期。这个数字说的往往是代码的事,而不是事件的事。

常见问题

秒和毫秒怎么区分?

十位是秒,十三位是毫秒。搞错会得到 1970 年附近或者几万年后的日期,知道往哪看就一眼认出来。

按哪个时区显示?

你浏览器的时区。时间戳本身是一个不带时区的瞬间,渲染成日期时必须选一个。

会上传吗?

不会,计算在页面里完成。

为什么我的日期差了一天?

几乎总是因为一个不带时间的日期,它在一个时区被解释成零点,在另一个时区就显示成前一天的傍晚。

相关工具

时间戳与日期互转 | CheckKit