32位unix时间戳哪一年耗尽

如题所述

格林尼治时间2038年1月19日凌晨03:14:07(北京时间:2038年1月19日中午11:14:07)。2038年问题可能会导致某些软件在2038年无法正常工作,所有使用POSIX时间表示时间的程序都将受其影响。

因为它们的时间起点是格林尼治时间1970年1月1日0时0分0秒,依照此“time_t”标准,在此格式能被表示的最后时间是第2147483647秒(代表格林尼治时间2038年1月19日凌晨03:14:07)。

扩展资料:

在32位系统上,time_t能表示的最大值为0x7ffffffff,当time_t取最大值时表示系统时间为2038-01-19 03:14:07,但时间再往后走时,那time_t会溢出变成一个负值,此时系统时间会倒流回到1901年,届时操作系统和上层软件都会运行错出。

对于服务器来说,早早就换到了64系统操作系统,2038年问题不复存在。而对于嵌入式设备来说,现在还有大量32位系统在全球各地运行,谁也无法保证这些系统在2038年之前就能光荣退役。

另外对于64位操作系统,上面还会运行着32位的应用程序,它的2038年问题一样对人们造成威胁,不可小视。

参考资料来源:百度百科-2038年问题

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-21
此类系统的Unix时间戳最多可以使用到格林威治时间2038年01月19日03时14分07秒(二进制:01111111 11111111 11111111 11111111)。其后一秒,二进制数字会变为10000000 00000000 00000000 00000000,
发生溢出错误,造成系统将时间误解为1901年12月13日20时45分52秒。这很可能会引起软件故障,甚至是系统瘫痪。使用64位二进制数字表示时间
的系统(最多可以使用到格林威治时间292,277,026,596年12月04日15时30分08秒)则基本不会遇到这类溢出问题。本回答被提问者和网友采纳