返回博客
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 时间戳。