时间戳转换完全指南: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 位。


使用工具库时间戳转换

操作步骤

  1. 打开 时间戳转换工具
  2. 输入时间戳或选择日期
  3. 自动显示互转结果
  4. 支持秒/毫秒切换

常见转换

输入 秒级时间戳 毫秒级时间戳
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