
Unix时间戳详解 — 概念与转换
📷 Andrey Grushnikov / PexelsUnix时间戳详解 — 概念与转换
了解什么是Unix时间戳、它如何工作,以及如何将其转换为人类可读的日期。每个开发者必备的基础知识。
什么是Unix时间戳?
Unix时间戳(也称为纪元时间或POSIX时间)是自1970年1月1日00:00:00 UTC以来经过的秒数。这个参考点称为"Unix纪元"。
示例
0= 1970年1月1日,00:00:00 UTC1000000000= 2001年9月9日,01:46:40 UTC1710547200= 2024年3月16日,00:00:00 UTC
为什么使用Unix时间戳?
- 通用性 — 没有时区混乱;同一数字在世界各地代表同一时刻
- 可排序 — 事件可以通过简单的整数比较排序
- 紧凑 — 单个整数而不是格式化的日期字符串
- 语言无关 — 每种编程语言都能处理整数
在JavaScript中使用Unix时间戳
// 当前时间戳(秒)
Math.floor(Date.now() / 1000);
// 将时间戳转换为Date对象
new Date(timestamp * 1000);
// 将日期转换为时间戳
Math.floor(new Date('2026-03-16').getTime() / 1000);
2038年问题
存储为有符号32位整数的Unix时间戳将在2038年1月19日溢出。现代系统使用64位整数,大约2920亿年内不会溢出。
毫秒 vs 秒
- Unix时间戳(秒):
1710547200— 10位数 - JavaScript时间戳(毫秒):
1710547200000— 13位数
如果时间戳有13位数,它是以毫秒为单位的。除以1000得到秒数。
立即转换
使用免费的Unix时间戳转换器在Unix时间戳和人类可读日期之间即时转换。