🕐 时间戳完全指南:Unix 时间戳与日期互转详解

2026年5月9日 · 阅读约 8 分钟

时间戳(Timestamp)是计算机系统中表示时间最常用的方式之一。无论你是开发者、运维人员还是数据分析师,理解时间戳都是必不可少的技能。

什么是 Unix 时间戳?

Unix 时间戳(也称为 Epoch 时间)是从 1970年1月1日 00:00:00 UTC(Unix 纪元)到当前时间的总秒数。这是一个全球统一的时间表示方式,不受时区影响。

例如:

10位时间戳 vs 13位时间戳

很多人会遇到时间戳位数不一致的问题:

将毫秒级转换为秒级很简单:毫秒值 / 1000(取整)。使用我们在线时间戳转换工具可以一键互转。

各编程语言中的时间戳操作

JavaScript

// 获取当前时间戳(毫秒)
const now = Date.now(); // 1700000000000

// 时间戳转日期
const date = new Date(1700000000000);
console.log(date.toISOString()); // "2023-11-14T22:13:20.000Z"

// 日期转时间戳
const ts = new Date("2023-11-15").getTime(); // 1700006400000

Python

import time
from datetime import datetime

# 获取当前时间戳(秒)
ts = time.time()  # 1700000000.123

# 时间戳转日期
dt = datetime.fromtimestamp(ts)
print(dt.strftime("%Y-%m-%d %H:%M:%S"))

# 日期转时间戳
dt = datetime(2023, 11, 15)
ts = dt.timestamp()

PHP

// 获取当前时间戳
$ts = time(); // 1700000000

// 时间戳转日期
echo date("Y-m-d H:i:s", 1700000000);

// 日期转时间戳
echo strtotime("2023-11-15 10:00:00");

时间戳的常见应用

2038年问题

32位有符号整数的最大值是 2147483647,对应 2038年1月19日 03:14:07 UTC。之后,32位时间戳会溢出变成负数。这就是著名的 2038年问题,类似于当年的 Y2K Bug。现代系统已普遍使用 64 位整数来避免此问题。

时区处理建议

在线工具推荐

如果你需要快速转换时间戳,可以直接使用我们的 时间戳转换工具,支持秒级和毫秒级互转,即时显示对应的 UTC 和北京时间。

常见问题

Q: 为什么我收到的时间戳是 13 位而其他人是 10 位?

这是因为计量精度不同。13 位是毫秒精度(JavaScript/Java 默认),10 位是秒精度(Unix/PHP/Python 默认)。使用前注意确认精度。

Q: 时间戳是唯一的吗?

在同一系统内,时间戳是随时间递增的,但同一秒内可能产生相同的时间戳。如需全局唯一标识,应使用 UUID 或自增 ID。

Q: 如何验证时间戳的有效性?

使用我们的时间戳转换工具,输入后会自动核验并转换为易读的日期格式,让你立即确认是否正确。