手机、平板、电脑的初始日期,为什么只能最早设置到1970年1月1日?

在2016年2月12日,据披露,如果把苹果iPhone、iPad等设备的系统时间设置为1970年1月1日,随后重启设备,它会无法正常启动。苹果公司正式承认了漏洞存在,但是尚未公布具体的引发原因。

手机变砖了还有救吗(为什么手机变砖)(1)

手机变砖了还有救吗(为什么手机变砖)(2)

苹果解决这个bug的手段也很简单粗暴。对此采用的策略是在随后的固件更新中将时间禁止调整到2000年以前。哈哈

手机变砖了还有救吗(为什么手机变砖)(3)

其实除了电子设备的系统日期,电脑、手机上的各种文件、文件夹的日期,也是不会比1970年1月1日更早的了

手机变砖了还有救吗(为什么手机变砖)(4)

java代码System

手机变砖了还有救吗(为什么手机变砖)(5)

the milliseconds since January 1, 1970, 00:00:00 GMT.

UNIX时间的开始:1970年1月1日

1970年1月1日作为时间计算起点只是当年UNIX系统设计的选择,并不是其他系统的。UNIX的发展几乎超越其他系统,她的选择也就成了POSIX标准。安卓手机的操作系统核心是Linux,苹果iOS的核心是Mach FreeBSD,这都是符合POSIX标准的UNIX类系统,时间的定义当然也是沿用了UNIX的设计。

可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX)是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称,其正式称呼为IEEE Std 1003,而国际标准名称为ISO/IEC 9945

所以这也就解释了1970年1月1日问题。。。

2000年问题?

手机变砖了还有救吗(为什么手机变砖)(6)

2000年问题,中国大陆及香港常称为千年虫问题,是指由于计算机程序设计的一些问题,使得计算机在处理2000年1月1日以后的日期和时间时,可能会出现不正确的操作,从而可能导致一些敏感的工业部门(比如电力,能源)和银行,政府等部门在2000年1月1日零点工作停顿甚至是发生灾难性的结果。

手机变砖了还有救吗(为什么手机变砖)(7)

2000年问题在英文中通常缩写为Y2K。其中Y表示“year”也就是年,而K则表示拉丁前缀“kilo”,表示1000。Y2K也可用来指2000年。

一般来说,由于计算机程序中使用两个数字来表示年份,如1998年被表示为“98”、1999年被表示为“99”;而2000年被表示为“00”,这样将会导致某些程序在计算时得到不正确的结果,如把“00”误解为1900年。在嵌入式系统中可能存在同样的问题,这有可能导致设备停止运转或者发生更加灾难性的后果。

由于世界上各地的政府和企业都对两千年问题给予足够关注,1999年1月1日到2000年3月1日并没有出现大范围的计算机故障。

2038年问题?

手机变砖了还有救吗(为什么手机变砖)(8)

手机变砖了还有救吗(为什么手机变砖)(9)

CPU和配合的计算机操作系统,都是32位,所以时间也是用32位表示。就是2的31次方-1 !

System.out.println(Integer.MAX_VALUE); 2147483647

Integer 在JAVA内用32位表示,因此32位能表示的最大值是2147483647。

另外1年365天的总秒数是 31536000,2147483647/31536000 = 68.1,也就是说32位,即2147483647秒,最多能表示的时间是68年。

1970 68=2038

手机变砖了还有救吗(为什么手机变砖)(10)

2038年问题可能会导致某些软件在2038年1月19日3时14分07秒之后无法正常工作。所有使用POSIX时间表示时间的程序都将受其影响,因为它们以自1970年1月1日经过的秒数(忽略闰秒)来表示时间。超过此一瞬间,时间将会“绕回”且在内部被表示为一个负数,并造成程序无法工作,因为它们无法将此时间识别为2038年,而可能会依个别实现而跳回1970年或1901年。因此可能产生错误的计算机动作。

10000年问题?

手机变砖了还有救吗(为什么手机变砖)(11)

10000年问题:许多需处理日期的程序会在2000年时将年份错误显示为1900年、19100年或100年,因为编程人员直接在以两位数记录的年份前面加上"19"以简化程序或节省内存空间。这类的日期显示错误不太可能在10000年来临时再度发生,因为这种记录方式在此时是没有用处的。然而,部分程序在处理日期时只会显示末4码的年份。这可能会导致10000年被显示为"0000年"。

实际上,在10000年时,由于未来科技及软件的进步-不再只以少数几个数字表示年份,这可能不再是个问题。

最后对比一下32位和64位操作系统

手机变砖了还有救吗(为什么手机变砖)(12)

所谓32位、64位操作系统和相关硬件,是指CPU一次能处理队列序令的能力,32位的当然是一次性执行32位的数据,64位的当然是一次性执行64位的数据。

手机变砖了还有救吗(为什么手机变砖)(13)

理论上来说,64位处理器的运算能力,要比32位的要强一倍,当然还要看CPU的其他指标,这个不能一概而论。

2的32次方是32位操作系统能够管理的内存数,正是4294967296位,换算下来,这个数据正好是4GB。

手机变砖了还有救吗(为什么手机变砖)(14)

64位系统支持的内存量,就要比32位的大很多,目前64位桌面级的Windows系统,最大可以支持128GB的内存,不少家庭的电脑配备的内存容量,还是4GB、8GB的级别,所以64位操作系统 64位硬件,将是未来很长一段时间里,我们选购软硬件平台的最佳选择。

,