Unix 时间戳是什么?
Unix 时间戳是从 UTC 1970年1月1日 00:00:00 到某个时刻的秒数(或毫秒数)。这是计算机领域最常用的时间表示方式,贯穿服务器存储、API 传输、日志记录等场景。
10位 vs 13位
- 10位(秒级):
1699999999,标准 Unix 时间戳,JS 的Date.now()会除以 1000 取整 - 13位(毫秒级):
1699999999000,Java、JavaScript 等语言默认使用毫秒级
互转关系:秒级 × 1000 = 毫秒级
常见场景的时间戳
// JavaScript
Date.now() // 1699999999000(毫秒)
Math.floor(Date.now()/1000) // 1699999999(秒)
// Python
import time
time.time() // 1699999999.123(秒,浮点数)
int(time.time()) // 1699999999(秒)
// Node.js
Date.now() // 毫秒
Date.now() / 1000 | 0 // 秒
2038年问题
32位系统的 Unix 时间戳最大值是 2147483647(即 2038年1月19日 03:14:07 UTC)。32位系统到 2038 年后会产生整数溢出,时间会变成负数。现代系统均已迁移到64位,无此问题。
时区注意事项
时间戳本身是 UTC 时间,与时区无关。显示给用户时需要转换为本地时区:
// UTC 时间戳 → 北京时间
function tsToBeijing(ts) {
return new Date(ts * 1000).toLocaleString('zh-CN', {timeZone: 'Asia/Shanghai'});
}
// JS 毫秒时间戳直接用 Date
new Date(1699999999000).toLocaleString('zh-CN', {timeZone: 'Asia/Shanghai'})
常见问题
Q: 1699999999 是哪天?
2024年11月14日(具体时分秒请用工具转换)。
Q: API 返回的时间戳是毫秒还是秒?
没有统一标准!必须看文档或根据数值大小判断:大于 10^12 则是毫秒,小于则通常是秒。
Q: 负数时间戳代表什么?
1970 年之前的日期,如 -86400 = 1969年12月31日。
在线转换
使用 Unix 时间戳转换 在浏览器里直接转换秒级/毫秒级时间戳,支持批量转换和时区显示。
常见问题
Q: 如何使用 unix时间戳转换 相关工具?
A: 这类工具一般有明确的输入框和输出框,按提示输入内容,点击对应按钮即可得到结果。建议先用简单示例测试功能是否正常,再处理实际数据。
A: 这类工具一般有明确的输入框和输出框,按提示输入内容,点击对应按钮即可得到结果。建议先用简单示例测试功能是否正常,再处理实际数据。
Q: unix时间戳转换 适合在什么场景使用?
A: 根据具体工具类型决定。格式转换工具适合处理第三方数据,编码工具适合加密传输,压缩工具适合文件上传前处理。多积累工具使用经验,遇到问题时能快速判断用哪个工具解决。
A: 根据具体工具类型决定。格式转换工具适合处理第三方数据,编码工具适合加密传输,压缩工具适合文件上传前处理。多积累工具使用经验,遇到问题时能快速判断用哪个工具解决。
Q: 有没有更好的替代工具?
A: 不同工具有不同侧重,重点是理解原理。可以同时安装多个类似工具,实际使用中对比效果,选择最顺手的一个。随着使用经验增加,你也能判断工具的好坏。
A: 不同工具有不同侧重,重点是理解原理。可以同时安装多个类似工具,实际使用中对比效果,选择最顺手的一个。随着使用经验增加,你也能判断工具的好坏。