RevealTheme logo

Unix时间戳转换工具

在Unix时间戳与可读日期之间互相转换。实时更新。

如何使用本工具

  1. 1

    Type or paste a Unix timestamp in seconds into the top field — the bottom field updates to the matching UTC date.

  2. 2

    Or type a date into the bottom field — the top field updates to the matching Unix timestamp in seconds.

  3. 3

    Click 'Now' to fill both fields with the current moment.

  4. 4

    Select and copy the value you need from either field.

什么是Unix时间戳,为什么API都用它?

Unix时间戳(也称为epoch时间或POSIX时间)是一个单一的整数,表示自1970年1月1日00:00:00 UTC以来经过的秒数,这一时刻被称为“Unix纪元”。这一惯例可追溯到20世纪70年代贝尔实验室的首个Unix操作系统。相比可读日期,它的优势在于:它是单个数字,与时区无关,便于比较和进行算术运算,并且在不同系统之间含义明确。每一个数据库、日志文件、JWT、OAuth令牌以及大多数现代API在内部都使用Unix时间戳。JWT的“exp”声明就是一个Unix时间戳;大多数API的“created_at”要么是Unix时间戳,要么是由它派生出的ISO 8601字符串;Linux/macOS上的文件修改时间也以Unix时间戳形式存储。有两种常见的变体需要区分:秒(最初的Unix惯例,用于JWT、OAuth和Linux文件元数据)和毫秒(用于JavaScript的Date.now()、Java的System.currentTimeMillis()以及许多现代API)。10位数的时间戳以秒为单位;13位数的时间戳以毫秒为单位。本工具两者都能处理:将任意格式粘贴到任意字段,我们会自动检测并转换。另一个值得了解的概念是:ISO 8601是标准的可读格式(2025-12-31T23:59:59Z),严格按字母顺序排序,且在任何地方都可解析。当你可以在以Unix整数或ISO 8601字符串存储时间戳之间进行选择时,出于性能考虑选择Unix,出于可读性考虑选择ISO 8601。

常见使用场景

  • 解码JWT负载中的“exp”或“iat”声明,查看它何时过期。

  • 将API响应的时间戳转换为你的本地时区以便调试。

  • 生成用于设置Cookie过期响应头的时间戳。

  • 将数据库时间戳(epoch秒)转换为ISO 8601以便解析日志。

  • 通过相减两个事件的Unix时间戳来计算两者之间的耗时。

  • 使用at命令配合明确的Unix时间戳来调度cron任务。

常见问题

为什么是1970年?
这是贝尔实验室早期Unix系统的惯例。这一选择虽然是任意的,但沿用了下来。最初存储它的32位有符号整数会在2038年1月19日2:14:07 UTC时溢出:这就是“2038年问题”。现代系统使用64位整数,将溢出推迟到了公元292277026596年。
是秒还是毫秒?
Unix时间戳以秒为单位(2025年时为10位数)。JavaScript的Date.now()和Java的System.currentTimeMillis()使用毫秒(13位数)。请务必核对你所调用的API期望的是哪一种:缺少或多出一个1000的系数,是生产环境中头号的时间戳错误。
如何按我所在的时区查看这个时间戳?
Unix时间戳与时区无关:它们在任何地方都表示同一个时刻。将该时间戳传给你所用语言的日期格式化器并指定恰当的时区,即可按你的本地时区显示它。在JavaScript中:new Date(ts*1000).toLocaleString('zh-CN', { timeZone: 'America/New_York' })。
Unix时间和UTC有什么区别?
Unix时间是单个数字;UTC则是一种包含年、月、日、时、分、秒的表示形式。按照惯例,Unix时间戳始终采用UTC:不存在“EST时区下的Unix时间”。显示时可以采用任意时区,但其底层数字是通用的。
闰秒是如何处理的?
Unix时间忽略闰秒:它假定每天恰好有86400秒。这意味着在插入闰秒期间,Unix时间可能会短暂回退或冻结。对大多数应用而言,这是不可见的;对于高精度系统(GPS、金融交易),请使用TAI(国际原子时)。
Unix时间戳可以是负数吗?
可以:它们表示1970年之前的日期。负时间戳在大多数语言中都能正常工作,尽管某些遗留系统会拒绝它们。
什么是ISO 8601时间戳?
ISO 8601是可读日期/时间格式的国际标准:YYYY-MM-DDTHH:MM:SSZ(Z=UTC,或用+HH:MM表示其他偏移)。例如:2025-12-31T23:59:59Z。ISO 8601字符串按字母顺序排序时即为时间先后顺序,因而非常适合日志文件和数据库查询。

相关工具