首先计算机上有个名词,叫时间戳。

日历上以后有2038年吗 日历有2037年吗日历上以后有2038年吗 日历有2037年吗


日历上以后有2038年吗 日历有2037年吗


如果不明白,可以百度详细了解。

我简略说一下,时间戳是个十位数

格林威治1970年1月1日0点0分0秒为 000000000

现在是

时区:UTC/GMT +8.00 2021-12-02 17:57:42

变成时间戳就是1638439062

你问为什么2037年之后没了。 因为32位计算机系统 int型数就是2147483647

折算成时间就是 UTC/GMT +8.00 2038-01-19 11:14:07

而早期的安卓系统,内置一个 time控件,他的数据没有那么,所以到2037-12-31就没了。

注意!! 是到2037后就没了,2038没有,2037还是有的,你的问题应该就是个道听途说的问题,你的问题本身就是存在问题的,并不是“2036年之后为什么没有2037年”而应该是“2037年之后为什么没有2038年”

如果你见过没有2037年的bug,欢迎你截图、录视频来打我的脸。 当然这个bug大部分的手机都已经修复了,我手里的华为P40P 鸿蒙系统 红米K30 MIUI安卓系统 苹果IOS11系统,全部都不存在这个bug

我的手机最多也只能翻到5000年,也是够长的了,虽然咱们都活不到那个时候,但是能看到那个时候的年月日也很不错

我手机的年份一直往上翻都有,根本翻不完,我翻到了40几几年都还在有,别传谣也别信谣!

我看我的日历有2037年,甚至往后一点的都有

为了防止卡2038 BUG

我的也是2043年都有

我的日历翻到2112年了。

世界末日到底是哪一天?这个无厘头的问题一直有着各种各样的离奇。当你打开手机,关闭自动设置时间,往未来的方向滑动数字时,你会发现时间停在了2038年。

不仅是手机,在电脑上,当你尝试将时间从2037年再往上调整时,会发现不管怎么按设置按钮,日期都不会继续改变。

2038年到底会发生什么?为什么各种设备都无法“逾越”2038年?在网上搜寻2038,你还能发现有人专门设置了倒计时网页。这其中包含了一个更加的时间: 2038年1月19日 3点14分7秒 。而下一秒,你的电子设备将会 穿越回到1901年 。

的 “2038问题” ,将在此刻爆发。

问题发生在2038年1月19日 3点14分7秒的下一秒。这一天的03:14:08不会到来, 迎接你的将会是 1901年12月13日20:45:52 。

对于很多电子设备而言,这是个毁灭性的打击。文件的创建与修改、应用软件的运行、网络系统的同步…… 时间作为一个关键数值,在整个电子系统里起着重要的作用 。因此有一阵子苹果手机的语音助手Siri,还把这一天当成了“世界末日”。为什么是这一天?Siri回答中的也给出了。

Unix、32位,这两个词让2038年的这一天注定成为末日。Unix是一种作系统,这种系统中计时方式是以1970年1月1日 00:00:00为基准,按秒为单位进行增减。比如到2022年1月1日0点,只需要 用基准值加上1640966400秒 。而我们现在使用的安卓、苹果系统都属于类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分7秒。 下一秒,数据就会出现“装不下”的情况,发生溢出 。此时位符号位从0变成1,本来的加号变成了减号,时间突然穿越到过去。

(从上到下分别是二进制秒数、对应的十进制秒数、32位Unix系统时间、实际时间。超过2147483647后,符号位会变成1(负号),整个数字会突然发生翻转,回到1901年。)

这个存在于将来的问题,它会给我们带来怎样的影响?回溯过往, 一次又一次的“千年虫”问题已经给了我们一些预告 。

2000年,千禧年。而在很多应用程序看来, 这一年会变成1900年 。

同样因为硬件资源宝贵,早期程序使用了年份的后两位数字来表示日期,而 前两位数都默认为19 。这个不起眼的时间问题,在整个世界引发了巨大的关注。政务系统、银行系统、航空系统等多个系统都可能受到影响而失效。全球各地对这一问题进行了响应,试图解决这一问题。我国多次发文强调这一问题的重要性。美国也推出了有关千年虫问题的法案,以敦促各行业共享信息解决此类问题。

多亏人们对“千年虫”的高度重视,使得这一问题在集中爆发前得以解决。但在此之后,类似“千年虫”的却依然层出不穷。

2010年的周,德国约3千万张同时“失效”。持卡人不仅无法直接刷卡消费,连在自动取款机上取钱都成问题。这不仅影响了本国居民的生活,也使得在外度的德国人滞留在当地。

由于不同编码方式存在异, 2010在德国的银行系统中被错误地识别成2016 。也因此“被过期”了。同样的情况出现在使用Windows Mobile系统的手机上: 你在2010年天收到的新年短信,会被系统显示成2016年 。

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

就在今年年初,“2022年虫”让微软的程序员体会了新年大加班。1月1日,微软的邮件服务系统Exchange突然中断,使用该服务的用户都无法发送电子邮件。 微软随后给出了声明,称该问题与日期检查失败以及新年的变化有关 。简单点说,和2038问题一样,时间“溢出”了。好在微软团队加班加点,在当天解决了该问题。

在未来,“类千年虫”问题一定还会出现。对于可以预料的问题,人们已经开始尝试提供解决方法。比如使用新的格式存储时间信息。与此同时,系统团队提供的新内核也在解决32位平台上的“ 历史 问题”。你也不用太担心,毕竟到那时,你应该已经换了好几波手机了。

不过,再遇到类似的突发Bug也很正常。 因为世界上总在发生情理之中、意料之外的事情 。

参考文献

[1]Year 2038 Problem Countdown.

[2]The Project 2038 Frequently Asked Questions (FAQ).

[3]Why does Siri say the world will end on January 2038?

[4]Unix time.

[5]Unix Time Stamp - Epoch Converter.

[6]Unix-like.

[7]2038年问题.

[8]解决计算机2000年问题的进展情况.

[9]话说“千年虫”.

[10]Clinton Urges Americans To Act On Y2K Problem.

[11]Y2K-type bug hits German cash, credit cards.

[12]Carry cash as well as a card, says German bank association.

[13]Windows Mobile Bug Dates Messages from 2016.

[14]NASA Declares End to Deep Impact Comet Mission. .

[15]Exchange Year 2022 Problem: FIP-FS Scan Engine failed to load – Can’t Convert “2201010001” to long (2022/01/01 00:00 UTC).

[16]Email Stuck in Exchange On-premises Transport Queues.

作者:Owl

编辑:窗敲雨

科学审核:Andrija

本文来自果壳,未经授权不得转载.

如有需要请联系寓意是没有的,只是因为系统只能支持时间戳到2037年。

原因嘛,从1970年1月1日00:00分到2038年的某一时刻,正好是2的31次方数量级的秒数(2147483648)

顺便说24x60x60x365x68=2 144 448 000 也就是说,2038年,现在的32位系统的时间戳在某天会崩掉。。。

只是后面的显示了也没有太大的意义,如果有需要可以用电脑查看一下

你用的什么日历啊,我用的人生日历可以显示到2499年12月。

根本没有这事,我的手机上的日历可以显示2036.2037.2038……

世 界 末 日

重新下载一个

因为现在手机能用到2036年都已经很困难了,到时候还可以更新系统再来更新日历。

因为有的手机无法使用到那么久,而且那个时候应该有新的记时方式。

因为现在根本不需要做到太久以后的日历,过一段时间肯定会更新。

因为现在离2036年还有很长时间,到时候在续写就好了。

这个是因为没有必要再往后设置了,那个时间已经够用了。

这个没有什么好怕的,只是手机没有更新过来而已。等以后更新了就可以了。

必要再往后设置了,那个时间已经够用了,到时候还可以更新系统再来更新日历。

这个完全没有必要担心,等到过了2036年,我们还可以继续更新就行了,其实很简单。

有那么多也没有什么大用,依照人类目前的寿命来看。