第 1 课
什么是 Unix 时间戳
纪元、系统为何用整数存时间,以及时间戳常见出现位置。
Unix 时间戳(Unix time / epoch time)表示从固定起点 Unix 纪元 起经过的时间:
1970-01-01 00:00:00 UTC
该时刻定义为 0。之后的时刻为正整数,1970 年之前为负数。
为何用整数而不是字符串?
- 排序简单(
ORDER BY created_at) - 运算方便(时长 = 结束 − 开始)
- 存储层与时区无关——整数表示全球时间线上的一个瞬间;展示时再选 UTC 或本地格式
像 "2024-06-01T12:00:00" 这样的字符串对人友好,但若没有偏移或时区规则就容易产生歧义。
常见出现位置
- 服务器日志——常见为 epoch 秒
- JWT 的
iat/exp——通常为 秒 - JavaScript——
Date.now()返回 毫秒 - PostgreSQL——
EXTRACT(EPOCH FROM ...)返回带小数的 秒 - 移动端统计——不统一,以文档为准
不等于「我电脑上的几点」
1700000000 本身不表示「我所在城市的下午 5 点」。它命名一个全球唯一的瞬间;界面再将其转为本地墙钟时间。
要点
Unix 时间戳是 自 1970-01-01 UTC 起的时间计数。掌握 epoch 后,日志、令牌、数据库与 API 字段都会更好读。