什么是时间戳
时间戳是表示某一时刻的数值。最常见的是 Unix 时间戳——从 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数(或毫秒数)。比如 1720780800 对应 2024-07-12 12:00:00 UTC。时间戳在编程、日志、数据库、API 中无处不在。
为什么需要转换
- 看日志:日志里全是时间戳,人眼看不懂,要转成可读时间
- 调试 API:接口返回时间戳,要确认对不对
- 跨时区:UTC 时间戳转本地时间显示
- 数据库:存的是时间戳,展示要格式化
常见时间格式
Unix 时间戳
- 秒级:10 位数字(如 1720780800)
- 毫秒级:13 位数字(如 1720780800000,JS/Java 常用)
ISO 8601
形如 2024-07-12T12:00:00Z,国际标准格式,API 常用。结尾 Z 表示 UTC。
本地时间
如 2024-07-12 20:00:00,带时区偏移,因地区而异。
DocsAll 时间戳转换工具
用 时间戳转换工具 一键互转:
- 打开 时间戳工具
- 输入时间戳 → 自动显示可读时间;或输入时间 → 得到时间戳
- 支持秒/毫秒切换
- 复制结果
转换示例
| 时间戳(秒) | UTC 时间 | 北京时间(UTC+8) |
|---|---|---|
| 0 | 1970-01-01 00:00 | 1970-01-01 08:00 |
| 1720780800 | 2024-07-12 12:00 | 2024-07-12 20:00 |
常见坑
秒 vs 毫秒
JS 的 Date.now() 返回毫秒(13 位),Python 的 time.time() 返回秒(10 位)。混用会差 1000 倍,转换前先确认单位。
时区
同一时间戳在不同时区显示不同。北京时间比 UTC 早 8 小时,1720780800 在 UTC 是中午 12 点,在北京是晚上 8 点。后端存 UTC,前端按用户时区显示是常见做法。
2038 年问题
32 位 Unix 时间戳在 2038-01-19 会溢出。现代系统多用 64 位,不受影响,但老旧嵌入式系统需注意。
负时间戳
1970 年之前的时间用负数表示,部分工具不支持,转换 1969 年以前的日期要注意。
实用建议
- 后端统一存 UTC 时间戳,前端按需转本地时区
- 日志分析时,用工具批量把时间戳转可读时间,比心算快百倍
- 调试接口时,先确认返回的是秒还是毫秒
时间戳转换是开发日常高频操作,把工具存进书签,随用随开。