技术科普

Unix纪元:为什么从1970年1月1日开始

计算机系统中常见的时间戳,多从1970年1月1日00时00分00秒UTC开始计数。这个起点被称为Unix纪元。

为什么是1970年

Unix系统在20世纪70年代开发,设计者需要一个统一的起始时间。1970年1月1日接近系统诞生时间,便于用32位整数表示。这个选择后来成为事实标准,被大量系统沿用。

时间戳如何表示

Unix时间戳记录从纪元开始的秒数,不包含闰秒。当前时间戳约为17亿秒。编程语言和数据库通常提供转换函数,把时间戳转换为本地时间。

2038年问题

  • 32位有符号整数最大约21.4亿秒,对应2038年1月19日。
  • 超过该时刻,时间戳可能溢出为负数。
  • 64位系统可以表示更长时间,但旧系统仍需升级。
  • 嵌入式设备和老软件是重点排查对象。

时区与显示

Unix时间戳本身是UTC基准,不包含时区信息。显示为当地时间时,需要结合时区数据库转换。跨时区系统应存储时间戳或UTC时间,避免存储本地时间字符串。

小结

Unix纪元从1970年开始,是计算机世界的时间原点。理解它,才能正确处理时间戳和时区。