Unix 时间戳与日期转换器
将 Unix 时间戳转换为可读的日期和时间,或将任意日期转换为 Unix 时间戳。支持秒与毫秒。
时间戳 → 日期
日期 → 时间戳
Frequently asked questions
什么是 Unix 时间戳?
Unix 时间戳是自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的秒数——这个参考点称为 Unix 纪元(Unix epoch)。它把任意时间点表示为一个整数,便于存储、比较和做运算。它也是大多数操作系统、数据库、API 和编程语言使用的标准时间格式。
如何把 Unix 时间戳转换成日期?
把时间戳输入转换器,它会返回对应的 UTC 时间和你的本地时区时间。工具会自动识别你输入的是秒(10 位数字)还是毫秒(13 位数字)。你也可以反向转换:选择日期和时间,获得对应的 Unix 时间戳。
Unix 时间的秒与毫秒有什么区别?
最初的 Unix 时间戳单位是秒。大多数服务端系统——PHP、Python、Go、Bash、SQL 数据库——使用秒。JavaScript 的 Date.now() 和 new Date().getTime() 返回的是毫秒(Unix 秒 × 1000)。当前秒级时间戳通常是 10 位数字,毫秒级是 13 位数字。把两者搞混,是 JavaScript 前端把时间戳发送给只接受秒的后端时最常见的 bug 之一。
为什么 Unix 时间从 1970 年 1 月 1 日开始?
这个日期由 1970 年代初贝尔实验室的 Unix 开发者选定,作为一个方便且足够接近当时的起点。除了是一个“圆整且较近”的日期之外,并没有特殊意义。其他系统使用不同的纪元:Windows FILETIME 从 1601 年 1 月 1 日开始;GPS 时间从 1980 年 1 月 6 日开始;NTP 从 1900 年 1 月 1 日开始。
什么是 2038 年问题?
把 Unix 时间戳存为有符号 32 位整数的系统,只能表示到 2038 年 1 月 19 日(时间戳 2,147,483,647)。此后数值会溢出为一个很大的负数,表示 1901 年的某个日期。现代 64 位系统不受影响。但遗留的嵌入式系统、较旧的数据库和 32 位软件仍可能受影响,需要在那之前完成迁移。
如何在我的编程语言里获取当前 Unix 时间戳?
JavaScript:Math.floor(Date.now() / 1000)。Python:import time; int(time.time())。PHP:time()。Bash:date +%s。PostgreSQL:EXTRACT(EPOCH FROM NOW())::int。MySQL:UNIX_TIMESTAMP()。Go:time.Now().Unix()。这些都返回从 Unix 纪元开始到当前的秒数。
