使用方法
- 将时间戳粘贴到“时间戳 → 日期”中。工具会检测其单位是秒、毫秒、微秒还是纳秒;你也可以手动选择单位。
- 查看当地时间、UTC 时间、ISO 8601 格式和 RFC 2822 格式的日期,并复制所需格式。
- 若要反向转换,请在“日期 → 时间戳”下选择日期和时间,并选择使用当地时间还是 UTC。
- 顶部显示的当前 Unix 时间每秒更新一次。暂停后即可复制固定数值。
工作原理
Unix 时间(也称为 epoch 时间或 POSIX 时间)以 1970 年 1 月 1 日 00:00:00 UTC 为起点,统计此后的秒数。在同一时刻,世界各地的 Unix 时间数值相同,因此常用于数据库、日志、API 和文件系统。1970 年以前的时间为负数:-86400 对应 1969 年 12 月 31 日。
不同系统使用的单位不同。Unix 工具、PHP 和大多数 API 使用秒(当前日期为 10 位数);JavaScript 和 Java 使用毫秒(13 位数);一些数据库和追踪系统使用微秒(16 位数)或纳秒(19 位数)。自动检测会根据整数部分的位数判断单位:最多 11 位按秒处理,12–14 位按毫秒处理,15–17 位按微秒处理,18 位及以上按纳秒处理。对于约 1973 年至 5138 年之间的日期,这种判断是准确的;其他日期请手动选择单位。
结果会以多种格式显示。ISO 8601(2023-11-14T22:13:20.000Z)是数据交换标准;其中的 Z 表示 UTC。RFC 2822(Tue, 14 Nov 2023 22:13:20 +0000)用于电子邮件标头和 RSS 订阅。当地时间根据浏览器的时区和语言设置显示,并会考虑夏令时。
Unix 时间不计算闰秒:每一天都恰好是 86,400 秒。日期显示精度为毫秒,这是 JavaScript 日期的精度,因此微秒和纳秒时间戳中多出的位数不会显示在日期中。
示例
读取日志条目
某条日志记录中包含 ts=1700000000。它有 10 位数,因此会按秒处理:对应 2023 年 11 月 14 日星期二 22:13:20 UTC,下方还会显示你所在时区的时间。
JavaScript 的 Date.now() 值
1700000000000 有 13 位数,会按毫秒处理:对应上一个示例中的同一时刻。除以 1,000 后,就能得到 PHP 或 Python 后端所需的 Unix 秒数。
设置 API 令牌的过期时间
若要在 2030 年 1 月 1 日 UTC 午夜过期,请选择该日期并选中“UTC”:得到的 Unix 秒数为 1893456000,可直接用于 exp 声明或缓存标头。
常见问题
如何判断时间戳的单位是秒还是毫秒?
数一下位数。对于近几十年的日期,秒级时间戳为 10 位数(例如 1700000000),毫秒级为 13 位数(例如 1700000000000)。工具会自动判断并告知使用的单位。
Unix 时间戳会受时区影响吗?
不会。时间戳表示一个确定的时刻,在任何地方都相同。只有日历日期和时钟时间的显示会受时区影响,因此工具会同时显示 UTC 时间和当地时间。
什么是 2038 年问题?
将 Unix 时间存储为有符号 32 位整数的系统,最多只能计数到 2,147,483,647,即 2038 年 1 月 19 日 03:14:07 UTC。再过一秒,数值就会溢出。现代系统使用 64 位数值,可以避免这个问题;此工具不受影响。
可以转换 1970 年以前的日期吗?
可以。输入负时间戳,例如 -31536000(1969 年 1 月 1 日),或者在“日期 → 时间戳”中选择更早的日期。
为什么当地时间与 UTC 的差值不是整数小时?
有些时区的偏移量为 30 或 45 分钟(例如印度为 UTC+5:30,尼泊尔为 UTC+5:45),而夏令时会在一年中的一段时间内改变偏移量。显示的当地时间会遵循你设备针对该日期使用的时区规则。
隐私
所有转换均使用浏览器的时钟和日期功能。你输入的内容不会上传、存储或纳入分析。