时间戳转换完全指南:Unix 时间、时区与日期计算
实用工具(更新于 2026年5月28日)
什么是 Unix 时间戳?
Unix 时间戳是从 1970-01-01 00:00:00 UTC 到指定时间的秒数(或毫秒数)。
1704067200 → 2024-01-01 00:00:00 UTC
1704067200000 → 2024-01-01 00:00:00 UTC (毫秒)
| 类型 | 位数 | 范围 | 使用场景 |
|---|---|---|---|
| 秒级 | 10 位 | ~2038 年 | Linux、MySQL、PHP |
| 毫秒级 | 13 位 | ~2286 年 | JavaScript、Java、API |
2038 问题:32 位系统上秒级时间戳在 2038-01-19 溢出。现代系统已普遍使用 64 位。
使用工具库时间戳转换
操作步骤
- 打开 时间戳转换工具
- 输入时间戳或选择日期
- 自动显示互转结果
- 支持秒/毫秒切换
常见转换
| 输入 | 秒级时间戳 | 毫秒级时间戳 |
|---|---|---|
| 2024-01-01 00:00:00 UTC | 1704067200 | 1704067200000 |
| 2025-06-01 00:00:00 UTC | 1748736000 | 1748736000000 |
| 现在 | Date.now()/1000 |
Date.now() |
时区处理
UTC vs 本地时间
UTC: 2024-06-01 08:00:00
北京时间: 2024-06-01 16:00:00 (UTC+8)
东京时间: 2024-06-01 17:00:00 (UTC+9)
纽约时间: 2024-06-01 04:00:00 (UTC-4, EDT)
关键原则:时间戳是全球统一的(UTC 基准),显示时才转换为本地时区。
JavaScript 中的陷阱
// ❌ 隐式本地时区
new Date('2024-06-01').getTime(); // 可能被解析为本地 0 点
// ✅ 明确 UTC
new Date('2024-06-01T00:00:00Z').getTime(); // 明确 UTC
// ✅ 从时间戳创建(无时区歧义)
new Date(1704067200000); // 全球一致
开发者实战
API 调试
{
"created_at": 1704067200,
"updated_at": 1704153600,
"expires_at": 1706745600
}
粘贴 created_at 到 时间戳转换工具 即可查看人类可读时间。
日志分析
[1704067200] ERROR: Connection timeout
[1704067203] INFO: Retrying...
[1704067210] INFO: Connected
转换后:
[2024-01-01 00:00:00] ERROR: Connection timeout
[2024-01-01 00:00:03] INFO: Retrying... (3 秒后重试)
[2024-01-01 00:00:10] INFO: Connected (7 秒后连接)
Cron 表达式
0 0 * * * → 每天 0:00
0 */6 * * * → 每 6 小时
0 9 * * 1-5 → 工作日 9:00
使用 Cron 说明工具 将 Cron 表达式转为人类可读描述。
相关工具
总结
时间戳是跨系统、跨时区的时间交换标准。区秒级与毫秒级、理解 UTC 基准、避免 JavaScript 日期解析陷阱——这些知识在日常开发调试中频繁用到。工具库 时间戳转换工具 让转换即时完成。
#时间戳#Unix#日期#时区#Cron