timestamp 2025-03-15
编程中的 Unix 时间戳和日期处理
关于 Unix 时间戳、时区处理、日期解析和软件中常见日期相关错误的一切。
时间处理是编程中最复杂的领域之一。Unix 时间戳提供了表示时间的通用方式,但有许多需要注意的陷阱。
什么是 Unix 时间戳?
Unix 时间戳是从 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)以来经过的秒数。
秒 vs 毫秒
10 位数是秒,13 位数是毫秒。
2038 年问题
32 位系统将 Unix 时间戳存储为有符号 32 位整数。2038 年 1 月 19 日之后将发生溢出。
解决方案:使用 64 位时间戳。
时区处理
常见错误
1. 假设服务器时区:始终以 UTC 存储时间
2. DST 错误:一小时可能重复或跳过
3. 时区名称模糊性:使用 IANA 时区标识符
最佳实践
- 以 UTC 存储所有时间戳
- 仅在显示时转换为本地时间
- 使用 ISO 8601 格式
- 使用 IANA 时区标识符
常见日期错误
1. 月份偏移:JavaScript 月份从 0 开始
2. 闰年问题
3. 日期比较:始终比较时间戳
使用我们的时间戳转换工具即时转换 Unix 时间戳。