2038年问题

✍ dations ◷ 2025-06-08 05:46:03 #程式错误,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)。

相关

  • 互补分布在语言学中,当两个语言成分(辅音、元音、词素等)不能在同一个环境中出现,即处于互补分布。当两个以上的语音成分处于互补分布时,这两种成分一般可以视为同一个音位的条件变体。但
  • 国内各地区HDI安哥拉各地区人类发展指数列表给出了安哥拉国内各地区在2017年的人类发展指数(HDI)。
  • 盂兰盆节盂兰盆节(日语:お盆/おぼん Obon)是日本的传统节日,即当地的中元节与盂兰盆节,或简称御盆节。日本在飞鸟时代由隋唐时期的中国传入盂兰盆节,后来与当地民俗结合,具有独特的庆祝方式
  • 高钴酸盐高钴酸盐可表示为M3CoO4,是钴元素目前发现的最高价化合物。在400℃和100个大气压下加热四氧化三钴与氧化钠的混合物可以制得不纯的高钴酸钠(Na3CoO4):也可以用类似方法制备高钴
  • 国际纯化学和应用化学联合会国际纯化学和应用化学联合会(英语:International Union of Pure and Applied Chemistry,简称IUPAC,/ˈaɪjuːpæk, ˈjuː-/),又译为国际纯粹与应用化学联合会、国际纯化学与应用
  • 会泽正志斋会泽正志斋(日语:会沢 正志斎,1781年6月5日-1863年8月27日),日本江户时代后期水户学民族主义思想家。1799年,参与汇编《大日本史》。1825年,撰写了新论,如德川国防政策和西方船只对日
  • 区位经济区位经济(location economies)是指在最适合某个活动的地点执行价值创造活动,所产生的经济利益,不论此地点在世界何处,只要是在运输成本和贸易障碍能够容许的情况下。简单的说,就
  • 卡迈勒·詹祖里卡迈勒·詹祖里 (阿拉伯语:كمال الجنزورى‎, IPA:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans U
  • 齐姜齐姜可能被称为以下姜姓齐氏的公族女性之一:
  • 巴吉卡车租赁百捷卡车租赁公司((英文)Budget Truck Rental, LLC)是一家专门出租卡车、拖车的汽车租赁公司,隶属于美国安飞士·百捷集团(Avis Budget Group, Inc.)旗下。2002年百捷集团自纽约证