首页 / 科技创新 / 手机日期设置时间停在2038年前(手机日期设置时间停在2038年怎么办)

手机日期设置时间停在2038年前(手机日期设置时间停在2038年怎么办)

Time:2023-12-26 01:19:34 Read:392 作者:CEO

世界末日是什么时候?这个无意义的问题总是有各种稀奇古怪的答案。当你打开手机系统设置(不是日历),关闭自动时间设置,向未来方向滑动数字时,你会发现时间已经停止在2038年了。

小米和华为可以设置到2037年12月31日,而iPhone只剩下两天了。

手机日期设置时间停在2038年前(手机日期设置时间停在2038年怎么办)

不仅在手机上,在电脑上,当你尝试从2037年向上调整时间时,你会发现无论你如何按设置按钮,日期都不会继续改变。

当日期调整超过2038年时,将于2038年1月1日停止

2038年到底会发生什么?为什么所有类型的设备都无法在2038 年生存?在网上搜索2038,还可以发现有人专门设置了倒计时页面。其中包括更精确的时间:2038 年1 月19 日3:14:07。下一秒,你的电子设备将回到1901 年。

著名的2038问题将在此时爆发。

到2038年,当问题出现时,仍然会有……

2038年,时间摧毁系统

该问题发生在2038年1月19日3:14:07之后的第二秒。这一天的03:14:08不会来。相反,您将在1901 年12 月13 日收到20:45:52 的问候。

使用脚本模拟系统时间,会出现时间跳跃的情况(平台Debian GNU/Linux(内核2.4.22))|威廉波奎特/deepsky.com

对于许多电子设备来说,这是毁灭性的打击。文件的创建和修改、应用软件的运行、网络系统的同步……时间作为一个关键值,在整个电子系统中起着绝对重要的作用。因此,有一段时间,苹果语音助手Siri将这一天视为世界末日。为什么是这一天? Siri 答案中的关键词也给出了答案。

早期Siri对末日问题的回答(这个答案在新版本系统中不再有)

Unix、32位,这两个词让2038年的这一天注定是结束。 Unix是一个操作系统。本系统中的计时方法以1970年1月1日00:00:00为单位,以秒为单位增减。例如,2022年1月1日0:00,只需在基值上加上1640966400秒即可。我们现在使用的Android和Apple系统都是类Unix系统,采用相同的解决方案。

电子系统使用0 和1 存储数据,也称为二进制。如果只用1位数字,则只能表示0和1。如果用2位数字,则可以用00、01、10、11分别表示0、1、2、3这四个数字。随着位数的增加,二进制所能表示的数字也越来越大,但总会有一个上限。如果用32个0和1来存储数字,第一位代表符号,0代表+,1代表-,那么剩下的31位最多可以代表2147483647。在计算机资源非常宝贵的时代,使用32位来存储时间就足够了。

1970 年1 月1 日00:00:00 + 2147483647 秒=2038 年1 月19 日3:14:07。下一秒,数据就装不下了,就会发生溢出。这时,第一个符号位从0变成了1,原来的加号变成了减号,时间突然穿越到了过去。

从上到下分别是二进制秒、对应的十进制秒、32位Unix系统时间、实际时间。超过2147483647,符号位变为1(减号),整个数字突然翻转,回到1901。丨Pemu/Wikicommons

这个问题会对我们未来产生什么影响?回顾过去,一次又一次的千年问题给了我们一些警示。

千年虫来自千年之外

2000年,千禧年。对于许多应用程序来说,年份看起来像是1900 年。

也因为硬件资源宝贵,早期的程序使用年份的最后两位数字来表示日期,前两位数字默认为19。这个不起眼的时间问题引起了全世界的巨大关注。政务系统、银行系统、航空系统等很多系统都可能受到影响而出现故障。世界各地纷纷做出回应,试图解决这个问题。我国已经出台了很多文件强调这个问题的重要性。美国还提出了有关千年虫问题的法案,敦促各行业共享信息以解决此类问题。

感谢人们对千年虫的高度重视,这个问题在集中爆发前得到了解决。但此后,类似千年虫的事件不断出现。

2010年第一周,德国约有3000万张银行卡同时到期。持卡人不仅无法直接刷卡消费,连ATM机取款都成问题。这不仅影响了该国居民的生活,也让正在度假的德国人滞留在当地。

由于编码差异,2010 年在德国银行系统中被错误地识别为2016 年。银行卡也过期了。同样的情况也出现在Windows Mobile系统的手机上:你在2010年第一天收到的新年短信,系统会显示为2016年。

德国加速修复银行系统,但幸运的是没有造成更大的损失。但放眼太空,事情就没那么简单了。 2013年9月,“深度撞击”号飞船突然失去联系,迫使NASA宣布正式结束相关探索任务。 Deep Impact 的首席任务科学家Mike A'Hearn 认为这是一个千年问题。航天器的部分软件无法正确识别2013 年8 月11 日之后的日期,导致计算机不断重新启动。最终,科学家们失去了航天器的信号。

深度撞击与坦普尔1号彗星相遇的模拟|美国宇航局

就在今年年初,2022年的bug让微软程序员尝到了新年加班的滋味。 1月1日,微软的电子邮件服务系统Exchange突然停止服务,使用该服务的用户无法发送电子邮件。微软随后发表声明,称该问题与日期检查失败和新年更改有关。简单来说,就像2038问题一样,时间已经溢出了。幸运的是,微软团队加班加点,当天就解决了问题。

未来,千年虫之类的问题肯定会再次出现。人们已经开始尝试为可预见的问题提供解决方案。例如,使用新的格式来存储时间信息。同时,系统团队提供的新内核也在解决32位平台上的历史问题。你也不用太担心,毕竟到时候你的手机应该已经换好几次了。

不过,再次遇到类似的意外bug也是很正常的。因为世界上总有合理和意想不到的事情发生。

Copyright © 2002-2024 讯肆科技网 版权所有 

免责声明: 1、本站部分内容系互联网收集或编辑转载,并不代表本网赞同其观点和对其真实性负责。 2、本页面内容里面包含的图片、视频、音频等文件均为外部引用,本站一律不提供存储。 3、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除或断开链接! 4、本站如遇以版权恶意诈骗,我们必奉陪到底,抵制恶意行为。 ※ 有关作品版权事宜请联系客服邮箱:478923*qq.com(*换成@)

备案号: 沪ICP备2023025279号-31