后来Apple的解决办法是将保存时间的32位二进制数提升到64位,这样时间的最大值可以到292277026596年12月04日15时30分08秒。一般来讲默认为零的时间是1970/1/1的零点,在此基础上每过一秒钟在二进制数上面加1,所以当时间到达2038/1/19日的时候会出现第一位为1的进位,从而使时间变为1901/12/13。
我们现在的手机日历期只有到2036年就没有了,难道是我手机问题吗?
这说明小米的时间计算还是按照32位二进制数做的,咱们先看一个图片:在计算机中的时间实际上是一组32位二进制数,第一个数字用来表示正负,0为正1为负,剩下的则分别对应年月日时分秒。一般来讲默认为零的时间是1970/1/1的零点,在此基础上每过一秒钟在二进制数上面加1,所以当时间到达2038/1/19日的时候会出现第一位为1的进位,从而使时间变为1901/12/13。
一旦发生这样的事情很可能会引起系统崩溃,iOS 9.3之前的系统都会因为认为设置时间引出出现系统崩溃的问题。起初Apple的解决方案是将最大时间期限定在了 2038 年 1 月 1 日 23 时 59 分 59 秒。后来Apple的解决办法是将保存时间的32位二进制数提升到64位,这样时间的最大值可以到292277026596 年 12 月 04 日 15 时 30 分 08 秒。