2038年问题

✍ dations ◷ 2025-07-09 23:24:43 #程式错误,2038年,年问题,未来问题

在计算机应用上,2038年问题可能会导致某些软件在2038年1月19日3时14分07秒之后无法正常工作。所有使用POSIX时间表示时间的程序都将受其影响,因为它们以自1970年1月1日经过的秒数(忽略闰秒)来表示时间。这种时间表示法在类Unix(Unix-like)操作系统上是一个标准,并会影响以其C编程语言开发给其他大部分操作系统使用的软件。在大部分的32位操作系统上,此“time_t”数据模式使用一个有正负号的32位整数(signed int32)存储计算的秒数。依照此“time_t”标准,在此格式能被表示的最后时间是2038年1月19日03:14:07,星期二(UTC)。超过此一瞬间,时间将会“绕回”(wrap around)且在内部被表示为一个负数,并造成程序无法工作,因为它们无法将此时间识别为2038年,而可能会依个别实现而跳回1970年或1901年。因此可能产生错误的计算及动作。

有少数的情况下,在制定规格时,特别规定以无正负号的32位整数(unsigned int32)存储 POSIX 时间,因此错误会被延后到 2106 年。例如比特币区块链中的区块时间戳记,就是以这种方法存储。

目前并没有针对现有的CPU/操作系统搭配的简单解决方案。直接将POSIX时间更改为64位模式将会破坏对于软件、数据存储以及所有与二进制表示时间相关的部分的二进位兼容性。更改成无符号的32位整数则会影响许多与两时间之差相关的程序。不过,那时使用32位系统的计算机可能会很少。

大部分64位操作系统已经把time_t这个系统变量改为64位宽。不过,其他现有架构的改动仍在进行中,不过预期“应该可以在2038年前完成”。然而,直到2006年,仍然有数以亿计的32位系统在运行中,特别是许多嵌入式系统。相对于一般电脑科技18至24个月的革命性更新,嵌入式系统可能直至使用寿命终结都不会改变。32位time_t的使用亦被编码于文件格式,例如众所周知的ZIP文件压缩格式。其能存在的时间远比受影响的机器长。

新的64位运算器可以记录至约2900亿年后的292,277,026,596年12月4日15:30:08,星期日(UTC)。

相关

  • 原始部落原始社会根据马克思历史唯物主义,是人类社会发展的第一阶段,到目前为止,还没有发现世界上有哪个民族没有经历过原始社会。人类出现,原始社会也就产生了。但是它的消亡则各地参差
  • 反日义兵运动义兵运动是19世纪末至20世纪初期朝鲜半岛民众反抗日本侵略者的大规模武装斗争。朝鲜半岛称这些自发抵抗外国侵略的武装为“义兵”或“义军”:1099。甲午战争之后,日本为铲除
  • 大宝积经《大宝积经》,梵文Mahā ratnakūṭa sūtra,又称《宝积经》,为一百二十卷,唐朝菩提流志等译,收入《大正新脩大藏经》第十一册。此经主要讲述菩萨修行法及授记成佛等,为大乘佛教宝
  • 海地华人海地华人,是指移民到海地的华人或祖先是华人的海地人。人口大约230人。华人最早是在1890年代来到海地,主要在海地政府和公司工作。另一批华人是在1970年代从台湾来到,并在首都
  • 成都师范学院成都师范学院(英语:Chengdu Normal University, CDNU),座落于四川省会成都,前身为创建于1955年的四川教育学院。2012年3月,学院经教育部批准改建更名为成都师范学院。成都师范学院
  • 壹河柳乃助壹河柳乃助(壱河 柳乃助,11月14日 - )是日本的漫画家,插画家。血型是A型。16岁初次投稿作品《天使录用考试进行中!》获得新GI GANGAN杯佳作奖,17岁《BORN AGAIN》获得第6回新世纪
  • 同步卫星同步卫星:其公转与轨道中央星自转的周期与方向均相同的卫星。 其与星球之间引力与卫星向心力相等 m g = m v
  • 翁贝托·博尔索翁贝托·博尔索(意大利语:Umberto Borsò,1923年4月3日-2018年11月26日),出生于拉斯佩齐亚,意大利歌剧男高音。2018年11月26日逝世于罗马。
  • 约翰·加拉门迪约翰·加拉门迪(John Garamendi;1945年1月24日-)是美国的一位商人和政治人物。在2009年至2013年期间,他是加利福尼亚州第3选举区选出的美国众议院议员。他的党籍是民主党。他也曾
  • 克尔什科核电站克尔什科核电站(斯洛文尼亚语:Jedrska elektrarna Krško,JEK,或Nuklearna elektrarna Krško,NEK,克罗地亚语:Nuklearna elektrana Krško)是位于斯洛文尼亚克尔什科镇的一座核电站