Unix 时间戳转换

实时显示当前 Unix 时间戳,支持时间戳转日期时间、日期时间转时间戳、秒/毫秒互转及多时区转换,所有计算在浏览器本地完成。

当前 Unix 时间戳
──────────
秒 (seconds)
─────────────
毫秒 (milliseconds)

时间戳 → 日期时间

输入时间戳查看转换结果。

日期时间 → 时间戳

基于浏览器本地时区换算。

在上方选择日期和时间。

这个工具有帮到你吗?

什么是 Unix 时间戳

Unix 时间戳(Unix Timestamp / Epoch Time)是指从 1970 年 1 月 1 日 00:00:00 UTC 开始到当前时间的总秒数。它是一个整数,不包含时区信息,因此在不同时区之间传递时间数据时非常可靠。几乎所有编程语言和数据库都支持时间戳,它是计算机系统中表示时间的通用方式。

时间戳的常见用途

时间戳广泛应用于日志记录、数据库存储、API 接口、缓存过期控制、文件修改时间等场景。例如,MySQL 的 UNIX_TIMESTAMP() 函数、Redis 的 TTL 过期机制、HTTP 头中的 Last-Modified 字段都使用时间戳。在处理跨时区的国际化应用时,使用时间戳存储、在显示时转换为本地时间是最佳实践。

秒级和毫秒级时间戳的区别

秒级时间戳是 10 位整数(如 1700000000),毫秒级是 13 位整数(如 1700000000000)。JavaScript 的 Date.now() 返回毫秒级,而 Python 的 time.time() 和 PHP 的 time() 返回秒级。本工具自动识别输入的时间戳位数,10 位按秒处理,13 位按毫秒处理,避免手动转换出错。

特殊时间戳参考

Unix 纪元0
千禧年 (Y2K)946684800
2038 年问题2147483647
3000 年32503680000

各语言获取时间戳

JavaScript
Date.now()                        // milliseconds
Math.floor(Date.now() / 1000)     // seconds
Python
import time
int(time.time())                  # seconds
Go
time.Now().Unix()                 // seconds
time.Now().UnixMilli()            // milliseconds
PHP
time()                            // seconds
MySQL / SQL
SELECT UNIX_TIMESTAMP()           -- seconds
SELECT UNIX_TIMESTAMP() * 1000    -- milliseconds
Rust
use std::time::SystemTime;
SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).unwrap().as_secs()

常见问题

什么是 Unix 时间戳?
Unix 时间戳(也称 Epoch Time 或 POSIX 时间)是自 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数。它是一种与时区无关的时间表示方式,广泛用于编程、数据库和 API 中。
时间戳是秒还是毫秒?
Unix 时间戳通常以秒为单位(10 位数字),但 JavaScript 和许多现代 API 使用毫秒精度(13 位数字)。本工具会根据输入长度自动判断单位。
如何在代码中获取当前时间戳?
JavaScript: Date.now()(毫秒)或 Math.floor(Date.now()/1000)(秒);Python: import time; int(time.time());PHP: time();MySQL: UNIX_TIMESTAMP()。
什么是 2038 年问题?
32 位系统将时间戳存为有符号整数,最大值为 2147483647,对应 2038 年 1 月 19 日。之后将溢出归零,影响老旧系统。现代 64 位系统不受此限制。
为什么从 1970 年 1 月 1 日开始计时?
Unix 操作系统于 1970 年代初期开发,设计者选择该日期作为起点,称为 Unix 纪元。这一日期本身并无特殊含义,只是一个约定俗成的标准。