千年虫已成记忆, 2038 年问题即将迎面而来,我们只剩下 21 年的时间了。
所谓的 2038 年问题是指类 Unix 系统的时间表示 time_t 使用的是一个 32 位整数,从 1970 年 1 月 1 日开始计算秒数,到 2038 年 1 月 19 日 3 时 14 分 07 秒将超过 32 位长度,导致所有使用这种时间表示法的程序停止工作。
在 64 位系统上,time_t 使用的是 64 位整数,所以一种解决方法似乎是等待所有的 32 位系统全部被淘汰,问题就迎刃而解了。
但即便还有 21 年,32 位系统还会一直存在下去。因为 32 位系统作为一种廉价的微控制器,仍然有可用之处。这些廉价的系统一旦部署就可能会被人忽视,也几乎不可能更新。
为了应对 2038 年问题,流行的 GNU C Library(glibc )项目发表了一个处理 2038 年问题的设计文档草稿。