北京时间

收集整理一些天气与时间日期相关的信息

iphone时间比北京时间快 苹果时间比北京时间快

当前日期:2025-01-13 15:40:20

解释为什么iPhone时间调整到1970就变砖头

解释为什么iPhone时间调整到1970就变砖头

你或许已经得知,在 iPhone 5s以上的 64位 iOS装置上,把时间调整到 1970年 1月 1日,甚至 1970年的任何时间,都会直接让 iPhone变砖……

希望你不是通过亲自尝试才了解到的……

事实上,你不需要特别深入的计算机知识,就可以明白为什么 iPhone将时间调到 1970年会变砖:

拥有丰富的 iOS和 Mac装置 Bug研究经验的技术人士 Tom Scott认为,这是 iOS系统背后的 UNIX时间戳的整数下溢(Unix Epoch Integer Underflow)所导致的问题。

为此,我们撰写了一份文字版的傻瓜说明,告诉你为什么 iPhone时间调到 1970年会变砖。

UNIX时间

UNIX时间是当年的计算机工程师们为了在系统中更加清楚明了表达时间,所引入的一个设定。

正常人表达时间是这样的:2016年 2月 17日下午 12:54:41

UNIX系统表达时间是这样的:1455684881

你可能会问:为什么计算机不能像正常人那样表达时间呢?

如果你学过中学地理可能会明白,由于全世界有 24个时区,每个时区在同一时刻的时间都不一样,结果导致如果计算机系统像人一样记录时间将会异常的复杂,导致各种各样的故障。因此,你也可以理解为,UNIX程式设计师们为了省事儿,开发了一个小程式……在这个程式的基础上,UNIX系统再通过你的电脑或手机所处的地理位置计算时区,告诉你正确的时间。

具体来说,协调世界时 1970年 1月 1日 0时 0分 0秒被设定为 UNIX时间的“零时”。上面那组数字的意义:现在距离 1970年 1月 1日 0时 0分 0秒,过了多少秒。

这个系统一直沿用至今。

明白 UNIX时间,继续往下讲你就能明白了。

二进位制、位元系统、整数溢位和整数下溢

看上去超级复杂的四个词……但别着急,一步一步看你就能看懂。

计算机,包括 PC、手机等等,采用二进位制(0和 1)来表达一切,因为这意味着计算晶片上每一个电晶体的两个状态:关和开。所有调到 1970年而变砖的 iOS装置都是 64位的。这意味着,这台装置最多可以储存处理 64个二进位制位元,也就是 64个 0或 1。

举个例子:我在写到这篇文章的这一段的时候,查了一下当前的时间:

东八区 2016年 2月 17日下午 12:04:51

然后我拿这个时间到 UNIX时间转换器里转换了一下,得到:

1455681891

再用十进位制转二进位制,得到:

01010110110000111111000101100011,

你能看到这段二进位制数是 32位的——32个 0或 1。这是因为,直到 2038年 1月 19日的凌晨 3时 14分之前,我们的时间在计算机里都可以用 32位的 UNIX时间系统,也就是 32个 0或 1来表示。

数位太多可能观察起来有点复杂,不如我们找一个 2位的系统来说明一下。等号前面是二位数,等号后面是十位:

00= 0

01= 1

10= 2

11= 3

这意味着一个 2位的系统最高能计的整数是 3,这个数字在计算机学里叫做“二进位制暂存器宽度”。

再找一个 4位的系统:

0000= 0, 0001= 1, 0010= 2, 0011= 3, 0100= 4, 0101= 5….

以此类推,1111= 15

一个 4位系统最高能计的整数,也即其二进位制暂存器宽度是 15。(更方面计算二进位制暂存器宽度的公式为 2的 n次方– 1,其中 n等于系统的位数。)

现在你明白计算机系统的位元系统了!那么整数溢位是怎么回事?

如果你在一个 2位的系统上尝试计十进位制的“4”,会发现系统从“3”的 11变回了 00;同理,如果你在一个 4位的系统上尝试计十进位制的“16”,会发现系统变回了 0000,这便是“整数溢位”。

再同理,如果你在一个 4位的系统上尝试计负数,比如-1的话,系统会从 0000跳到 1111,也就是十进位制的“15”。这是因为这个整数格式不支援负数,也就是我们讨论的“整数下溢”。

Tom Scott用电脑游戏《文明》初代里的甘地来解释这个不算 bug的 bug:游戏初始时,印度执政者甘地的进攻值只有 1(准确反映了现实世界里甘地的“非暴力”哲学思想)。然而在游戏进行中如果不断降低甘地的进攻值,降低到 0,进而降低到 0以下的话,整数系统就乱了,导致甘地的实际进攻值突然被提到最高——这是因为《文明》的系统里采用的整数格式遇到了“整数下溢”……

这么傻帽的问题为什么解决不了?

事实上,已经解决了……

UNIX整数格式的确有允许负数存在的版本,然而苹果凑巧目前没有在 64位 iOS装置的 UNIX时间系统里采用这个版本,也就遇到了 1970年的变砖 Bug……

随便抓起手边任何一个智慧装置(比如你的 64位 iPhone),尝试把系统时间往最早调(千万别真的调),你会发现绝大多数的最早时间限制都在 1970年 1月 1日。正如前面第一个小章节提到的,这是 UNIX时间的起点,也是你的 iPhone能够正确显示的最早时间。

day-freeze-bug

系统时间调到 1970年 1月 1日 0时 0分 0秒,这个操作从计算机原理上本身不会直接导致你的 iPhone变砖。可一旦你的手机里储存了之前的简讯、电子邮件,或者已经过期的日历项,这会导致系统在追溯时间时最终定位到了一个比 1970年 1月 1日 0时 0分 0秒更早的时间。

这样,你的 iPhone的 UNIX时间变成了一个负整数——也就是在二进位制数 64个 0的基础上,发生了一次整数下溢。从 0000000000000000000000000000000000000000000000000000000000000000变成了 1111111111111111111111111111111111111111111111111111111111111111。

接下来,iPhone会发现你老婆一秒钟前给你发来的简讯,发生在二进位制 64个 1所代表的 UNIX时间中。换算成人类的时间,也就是 292277026596年 12月 4日 15时 30分 6秒。

可能由于苹果公司 iPhone在设计的时候根本没想过这台装置能在大约 8000年以后开机,也就显示不了超过五位数的年份,更别提一个十二位数的年份了。

因此,你的 iPhone,就这样变砖了。换句话说,你的 iPhone,跪倒在永生的宇宙万物面前了。

为什么iphone的时间改为1970年就会变成砖头

因为苹果iOS用unix核心,unix时间戳小于0系统就挂了,这是unix系统决定的,苹果无法决定

为什么iPhone的时间改为1970年就会变成砖头

苹果官方在美国时间2月15日回应,承认手动将iOS装置的日期设定到1970年5月或之前时间,iOS装置将无法重启,并表示即将释出一个系统更新以解决这一问题。不过,具体是等到iOS 9.3更新,还是提前推出一个漏洞修复版本,目前并未披露。对于产生漏洞的原因,苹果方面并未解释,不过各路技术人员分析称,最合乎逻辑的原因是与时区有关。iOS装置是利用二进位制来储存时间,时间起点是世界标准时间1970年1月1日0点0分0秒,即UTC时间。如果在北京将iPhone时间设定为1970年1月1日0点0分0秒,UTC时间是1969年12月31日16时0分0秒,就出现了时间负值,从而引起装置崩溃。

一个bug,没考虑过会有人调整到这个时间,,,,最新ios921已经修复

为什么iphone调时间会变砖

系统问题吧。不过售后那里可以解决的,听说可以很快解决。建议不要尝试,售后帮你操作要收服务费的。手机没有问题又不能换机的

因为iphone支援的最早时间是19700101,而这是美国时间,在中国陆地调到19700101的话与美国有一个时差,也就是说时间比1970早,系统不能识别,所以变砖

iphone调时间会变砖为什么

iPhone手机时间调到1970年1月1日以前就会变砖,因为现在软体设计用的是32位演算法,1970年是时间极限,超过这个时间,时间的资料库爆了。

iPhone调时间1970变砖怎么办

调时间1970变砖的原因:

对iPhone来说,时间是一个整型变数,而变数值是从1970年1月1日开始的秒数。如果将时间设定为1970年1月1日,那么这个值将变为0。这本身不会带来问题,但如果手机试图显示一个早于这一时间点的时间,例如这一时间点的几小时前,那么这个值会变成负数,从而导致系统崩溃。

iPhone调时间1970变砖的解决方法:

1、针对所有64位处理器的iOS装置,拆机并拆出电池,放置10分钟后重新安装。

电量充足的情况下,等待数小时,当Unix时间戳的数值大于等于0,系统时间生效,可正常开机。

2、针对已越狱装置的防范,新增Cydia源:repo.ziph0n./,安装BrickingDate外挂,注意:此外挂只可以防止人为修改时间,并无法防止程式码恶意篡改时间。

3、升级到最新的9.3的版本就可以解决这个问题,另外9.3版本在苹果官网已经推送。

自己手贱,设定了1970.1.1,结果在这问。

这问题就是刷机都解决不了。

现在的解决办法只有两种:

1、如果希望有售后:拿着手机到售后解决。

2、如果不怕没售后:拆掉电池放10分钟再插上电池就能用了。

为什么把手机时间调整为1970.1.1,重启后就会变砖

这是苹果手机IOS系统的一个漏洞(bug),这是因为苹果iOS系统时间使用Unix时间戳(Unix epoch),将世界标准时间(UTC)的1970年1月1日0点0分0秒的值设定为0,当时钟出现小于0的情况时,会导致系统崩溃。

注:原因来自网际网路非苹果官方,苹果公司已公开承认的确有此漏洞但尚未公布原因。

iphone时间不准

苹果手机自动设置时间不准:可关闭时间自动设置,再设定日期与时间。

具体步骤:

1.点击“设置”:

2.点击设置里面的"通用"

3.在通用界面下选择"日期与时间"。

4.根据自己的习惯选择是否开启"24小时制"。我们一般将时间设置为"自动设置",手机会自动获取互联网上的时间。时区选择为北京。

5.如果想手动设置时间,就把自动设置关闭,在下方滑动选择时间。

扩展资料:

有时候苹果手机的时间显示不太准准确,又不知道是什么原因导致的,根据官网回答,出现这个原因的方法有很多。系统BUG、越狱问题、定位服务、网络连接等等都可能导致时间不准。

1、关闭时间自动设置,再设定日期与时间,此外itunes上面还有个选项是同步PC时间和日期的,你要看看是不是打开了这个选项,否则你一旦同步就会同步电脑上的时间和日期。

2、可以开启自动设置功能,自动设置时间是和网络对时的,不准了会自动对时。

3、自动设置时间不准原因有很多,比如网络不通畅,这个要对比网络时间的,偶尔也回有延迟,时区不正确,手机本身损坏等等。时区一般是不会有问题的,一般就是延迟问题。如果是手机本身的问就麻烦了,零件太复杂,比如时间晶振老化或者损坏供电不足一类,建议去售后检测一下。

4、若网络连接正常,且定位服务(设置-隐私-定位服务)已经开启。可重新对日期与时间进行设置,先关闭,等待片刻后再开启自动设置。

相关内容