推荐榜 短消息 big5 繁体中文 找回方式 手机版 广 广告招商 主页 VIP 手机版 VIP 界面风格 ? 帮助 我的 搜索 申请VIP
客服
打印

[国内] 1970年为何如此特殊?为啥电脑手机的时间只能设置到19701月1日?[14P]

购买/设置 醒目高亮!点此感谢支持作者!本贴共获得感谢 X 4

1970年为何如此特殊?为啥电脑手机的时间只能设置到19701月1日?[14P]

今天,就来和大家简单地聊一下,有关手机、平板、电脑的初始日期,为啥只能最早设置到1970年1月1日的事儿吧。
还记得大概一年之前,苹果手机出过的一个Bug么?
用户把系统日期调整成1970年1月1日,就会导致手机无限死机,重启也不能解决问题,只能送到苹果官方售后的天才吧(Genius Bar)寻求帮助。

苹果解决这个bug的手段也很简单粗暴——不让用户将日期设置成1970年1月1日了



无限重启了,真是伤不起~~


其实,更好奇的宝宝们,你们有发现没?其实你们应该也注意到了,除了电子设备的系统日期,电脑、手机上的各种文件、文件夹的日期,也是不会比1970年1月1日更早的了。

不少买过旧手机的小白同学,看到手机、电脑里有一些文件,日期是1970年1月1日的,就会怀疑人家卖给自己的,是一个古董货。

其实没必要这样担心啦,对方要是真卖给你一个1970年的古董,那都是能进博物馆的级别了,这么交易,你还不亏呢~~

即使是这款旧Apple II,最早也已经是上个世纪80年代起的产物了


好的,重回正题~~
要解释这个问题,就要从计算机编程的原理开始了,大家准备好了吗?看不懂没有关系,直接关注加粗的部分就行。
最初,CPU和配合的计算机操作系统,都是32位,所以时间也是用32位表示。
System.out.println(Integer.MAX_VALUE);
2147483647
这个数字是不是很熟悉?没错,就是2的31次方-1 !

Integer 在JAVA内用32位表示,因此32位能表示的最大值是2147483647。
另外1年365天的总秒数是 31536000,2147483647/31536000 = 68.1,也就是说32位,即2147483647秒,最多能表示的时间是68年。

最早出现的UNIX操作系统,考虑到计算机产生的年代和应用的时限(1968年诞生),所以综合取了1970年1月1日作为UNIX TIME的纪元时间,而java自然也遵循了这一约束。

从1970年开始,过了68.1年,最终到了2038年01月19日03时14分07秒,便会到达32位系统表示的最长时间。
过了这个时间点,所有32位操作系统时间便会变为10000000 00000000 00000000 00000000,算下来也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。

2000年之前的几年,人们曾担心“千年虫”问题,但幸好问题都解决了


不少聪明的好奇心宝宝会说了,按刚才的表述方法,32位的时间是相当有限的,那我们把电脑、手机的硬件系统和软件系统,一起升级到64位,或是128位,问题不就解决了么?
是的,你很聪明,计算机工程师们,也是这么想的~~

大家应该都知道次方的威力,2的64次方能表示的数,比2的32次方要高的多得多:
按照上述的规则除以2,那也是一个长达18位的超级大数字,比2147483647要大多了哟~~

感兴趣的同学们,可以计算一下这个数字按秒来计,大概能表达多少年吧~~
emm……还是从1970年1月1日开始计算起,是 292,277,026,596年12月4日15时30分08秒。
啧啧,2亿年后,你我都早已不在了,人类还会存在么~~

大家应该听说过iPhone 5S时代,苹果推出的64位架构的A7吧,后来Android阵营也逐步跟进了,现在基本上主流的电脑、手机,都运行的是64位的操作系统,部分软件,也渐渐开始添加针对64位的支持。

1970年1月1日的开始,和2038年01月19日的故事,到这里就结束了。
最后来给大家做一个简单的科普:所谓32位、64位操作系统和相关硬件,是指CPU一次能处理队列序令的能力,32位的当然是一次性执行32位的数据,64位的当然是一次性执行64位的数据。

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

而且除了运算能力之外,与32位处理器相比,64位处理器的优势还体现在系统对内存的控制上。
还记得我们文章前面提到的2的32次方吗?
没错,32位操作系统能够管理的内存数,正是4294967296位,换算下来,这个数据正好是4GB。
加上系统保留的内存数,和一些其他要利用的空间,32位系统最大支持的内存数,大概只剩下3个G多一点了。

64位系统支持的内存量,就要比32位的大很多,目前64位桌面级的Windows系统,最大可以支持128GB的内存,不少家庭的电脑配备的内存容量,还是4GB、8GB的级别,所以64位操作系统+64位硬件,将是未来很长一段时间里,我们选购软硬件平台的最佳选择。
本帖最近评分记录
  • 金币 +9 送红包!谢谢支持!非常感谢! 2017-9-28 23:04

点此感谢支持作者!本贴共获得感谢 X 4
TOP

还有这种设计限制啊,一直没注意过,去试试
本帖最近评分记录
  • 金币 +3 送红包!谢谢支持!非常感谢! 2017-9-29 14:00

TOP



当前时区 GMT+8, 现在时间是 2025-6-17 06:27