时间戳转日期 - Unix Timestamp 转换为日期时间

输入 Unix 时间戳,实时转换为可读的日期时间格式

时间戳转日期工具

输入 Unix 时间戳

常见时间戳示例

以下是一些常见的 Unix 时间戳及其对应的日期时间(UTC):

时间戳 单位 对应日期时间 (UTC) 说明
0 1970-01-01 00:00:00 Unix 纪元起始点
946684800 2000-01-01 00:00:00 千禧年
1700000000 2023-11-14 22:13:20 17 亿秒里程碑
1700000000000 毫秒 2023-11-14 22:13:20 等同于 1700000000 秒(毫秒格式)
2147483647 2038-01-19 03:14:07 32 位整数最大值(2038 年问题)

各语言时间戳转日期示例

JavaScript

JavaScript // 秒级时间戳转日期 const timestamp = 1700000000; const date = new Date(timestamp * 1000); console.log(date.toISOString()); // 输出: 2023-11-14T22:13:20.000Z // 毫秒级时间戳转日期 const timestampMs = 1700000000000; const date2 = new Date(timestampMs); console.log(date2.toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' })); // 输出: 2023/11/15 06:13:20

Python

Python import datetime # 秒级时间戳转日期 timestamp = 1700000000 dt = datetime.datetime.fromtimestamp(timestamp) print(dt.strftime('%Y-%m-%d %H:%M:%S')) # 输出: 2023-11-15 06:13:20 (依系统时区) # 转换为 UTC dt_utc = datetime.datetime.utcfromtimestamp(timestamp) print(dt_utc.strftime('%Y-%m-%d %H:%M:%S')) # 输出: 2023-11-14 22:13:20

PHP

PHP // 秒级时间戳转日期 $timestamp = 1700000000; echo date('Y-m-d H:i:s', $timestamp); // 输出: 2023-11-14 22:13:20 (依服务器时区) // 指定时区 $dt = new DateTime("@$timestamp"); $dt->setTimezone(new DateTimeZone('Asia/Shanghai')); echo $dt->format('Y-m-d H:i:s'); // 输出: 2023-11-15 06:13:20

MySQL

MySQL -- 时间戳转日期 SELECT FROM_UNIXTIME(1700000000); -- 输出: 2023-11-15 06:13:20 (依数据库时区) -- 指定格式 SELECT FROM_UNIXTIME(1700000000, '%Y-%m-%d %H:%i:%s'); -- 输出: 2023-11-15 06:13:20 -- 转换为 UTC SELECT CONVERT_TZ(FROM_UNIXTIME(1700000000), @@session.time_zone, '+00:00'); -- 输出: 2023-11-14 22:13:20

常见问题 FAQ

为什么转换结果差了 8 小时?

Unix 时间戳本身是以 UTC(协调世界时)为基准的。中国位于 UTC+8 时区,因此如果你将时间戳转换为 UTC 时间,结果会比本地时间早 8 小时。这不是错误,只是时区差异。请在工具中选择 Asia/Shanghai 时区即可显示本地时间。

10 位和 13 位时间戳有什么区别?

10 位时间戳是以「秒」为单位,例如 1700000000;13 位时间戳是以「毫秒」为单位,例如 1700000000000。两者表示的是相同的时间点,区别在于精度。JavaScript 的 Date.now() 返回的是毫秒级时间戳,而大多数后端语言(如 PHP、Python)默认使用秒级时间戳。

时间戳的起始时间是什么?

Unix 时间戳的起始时间(又称为 Unix 纪元,Unix Epoch)是 1970 年 1 月 1 日 00:00:00 UTC。时间戳值为 0 就代表这个时间点。所有的 Unix 时间戳都是从这个时刻开始计算经过的秒数(或毫秒数)。

如何判断输入的是秒还是毫秒?

最简单的方法是看数字的位数:10 位数字通常是秒级时间戳(范围约从 1970 到 2286 年),13 位数字通常是毫秒级时间戳。例如 1700000000 是秒,1700000000000 是毫秒。本工具提供单位选择功能,你可以手动选择「秒」或「毫秒」来确保转换正确。

负数时间戳代表什么?

负数时间戳表示 1970 年 1 月 1 日之前的时间。例如 -86400 代表 1969 年 12 月 31 日 00:00:00 UTC。某些系统和程序语言支持负数时间戳,但并非所有工具都能正确处理。