Unix时间戳转换器
时间戳转日期
自动检测秒或毫秒。
日期转时间戳
选择日期和时间,将其转换为Unix时间戳。
自 Unix 纪元(1970年1月1日UTC 00:00:00)以来的秒数
自动检测秒或毫秒。
选择日期和时间,将其转换为Unix时间戳。
同一当前时刻以多种常见格式实时更新显示:
| 格式 | 当前值 |
|---|---|
| Unix 时间戳(秒) | — |
| Unix时间戳(毫秒) | — |
| ISO 8601 (协调世界时) | — |
| RFC 2822(UTC) | — |
Unix 时间(也称为纪元时间、POSIX 时间或 Unix 时间戳)是一种描述时间点的系统。它是自 Unix 纪元(定义为1970年1月1日星期四UTC 00:00:00)以来经过的秒数。它在类 Unix 操作系统和许多其他计算系统中被广泛使用。
Unix 时间的主要优点是其简单性。它以一个单一、被普遍理解的整数表示时间,并持续递增。这使得存储、比较和进行时间戳计算变得非常容易,无需担心时区、夏令时或不同的日历系统。例如,要计算两个事件之间的持续时间,只需相减它们的 Unix 时间戳。
虽然这个原始数字非常适合计算机,但对人类来说并不太友好。为了弥合这一差距,开发者和技术爱好者使用一种叫做 纪元转换器 的工具。你可以用它立即将任何时间戳转换成人类可读的日期,或反向操作,找到特定日期的时间戳。
与 Unix 时间相关的一个著名问题是“2038 年问题”。它类似于 Y2K 问题。许多早期计算机系统被设计为将 Unix 时间戳存储为 32 位有符号整数。一个有符号的 32 位整数可以表示的范围是从 -2,147,483,648 到 2,147,483,647。
最大值 2,147,483,647 将在2038年1月19日UTC 03:14:07达到。下一秒,整数将溢出并回绕到其最小值,这个值会被系统解释为1901年的日期。这可能导致依赖于 32 位时间表示的遗留软件出现广泛故障。
解决方案是使用64 位整数来存储时间戳。64 位整数的最大值如此之大,大约可以持续 2920 亿年,不会溢出,从而有效解决了未来可预见的问题。大多数现代操作系统和软件已经过渡到 64 位时间表示。
一个重要的技术细节是,Unix 时间不考虑闰秒。虽然 UTC(协调世界时)偶尔会添加闰秒以保持我们的时钟与地球自转同步,但 Unix 时间戳会忽略它们,继续线性计数。
这意味着 Unix 时间并不是真正的 UTC 表示。更准确地说,它是秒的线性计数。当发生闰秒时,Unix 时间有时会重复一秒以保持同步。这一细节对于科学和高精度应用至关重要,但对于大多数通用计算来说,差异可以忽略不计。
created_at、updated_at)。
Unix 纪元是 Unix 系统时间的起始时刻:1970 年 1 月 1 日 00:00:00 UTC。Unix 时间戳就是自那一刻起经过的秒数。
该日期被Unix早期开发者选为方便、整数的起始点,接近20世纪70年代初系统创建的时间。此后它一直是标准参考点。
Unix时间从UTC定义的纪元开始计数,不受时区影响,因此同一时间戳在任何地方都代表同一瞬间。由于忽略闰秒,它更应被描述为秒的线性计数,而非UTC的完美表示。
标准的Unix时间戳是从纪元开始计算的整秒数,当前日期的此类时间戳为10位数字。许多系统(包括JavaScript)改用毫秒计数,产生的数值是前者的1000倍,为13位数字。
使用32位有符号整数存储时间戳的系统只能表示到2038年1月19日03:14:07 UTC,之后数值溢出,被误读为1901年的日期。解决方法是使用64位整数存储时间戳。