时间戳理解
时间戳是什么?
一个整数,距离一个 约定好的时间 已经过去的时间,这里时间的单位可以是 s ms us ns.
不同语言或者业务场景中, 会根据需要使用不同的精度;
- lua 默认的os库就是以s
- C# ms

时间戳 = 从某个固定起点开始,经过了多少时间
想要统一的怎么办?
没有统一的, Unix系统调用. 先拿到底层的,然后自己再进行封装。
常规实现
距离 UTC 过去的时间就好了,
最常见的起点是:
👉 Unix epoch
也就是:
1970-01-01 00:00:00 (UTC)
不同时区的时间戳一样吗?
一样的, 可以直接比较。
不同时区,再进行一个 转换。
OS怎么拿到一个时间, 电脑怎么知道时间呢?
(1)RTC(Real-Time Clock)
实时时钟芯片
- 主板上有一个独立芯片
- 有电池(关机也能走)
- 存储类似:
2026-05-04 10:00:00 - 类似一个“电子表”
(2)CPU/系统计时器(高频计数器)
比如:
- TSC(Time Stamp Counter)
- HPET
- APIC Timer
👉 本质:
一个不断递增的计数器
例如:
0 → 1 → 2 → 3 → ...
频率可能是:
3GHz → 每秒 3,000,000,000 次
(3) 校准
Network Time Protocol NTP
总结
RTC(提供真实时间)
↓
OS 启动读取
↓
建立 base_time
↓
CPU 计数器持续递增
↓
OS 用“计数差值”推算当前时间
↓
NTP 定期校准

浙公网安备 33010602011771号