
iphone
原因非常的简单,是一种时间计算方式出现了问题,原因可能在于苹果采用了ISO制式时间标准,却没有考虑到跨年对应的问题导致时间对应错乱。
国外TUAW网站首先刊出类似推测,但其中有严重ISO时间概念错误已经被指出;本文是在其基础上进行的重新整理和推测。

手机
举例说明:2012年第50周的星期二按照ISO标准以描述为:2012-W50-2
公历日期(Gregorian calendar)则是按照这样的方式来显示计算日期的:YYYY-MM-DD
举例说明:2012年12月11日公历日期的描述:2012-12-11
其实IOS日期的2012-W50-2 刚好对应 公历的2012-12-11
而是ISO标准下,如何判定新年另有规定:自动判定新年包含第一个周四的那周为第一周,也就是说:
2012年12月30日:2012-W52-7
2012年12月31日:2013-W01-1
2013年1月1日:2013-W01-2
2013年1月2日:2013-W01-3
2013年1月3日:2013-W01-4(周四)
2013年1月4日:2013-W01-5
2013年1月5日:2013-W01-6
2013年1月6日:2013-W01-7
2013年1月7日:2013-W02-1
这里就是苹果IOS 6勿扰模式出现bug最可能存在的问题,苹果设定这个功能的时候,很可能使用了ISO时间制式采用周循环,但是却没考虑到跨年变动的问题,设定的时候,误将2013年的第一个周循环设定为从1月7日开始,而2013新年前六天(可能)被判定为2012年的第53周(ISO制式的确在某些年份会出现第 53周),但事实上根本就不存在这些时间,所以勿扰模式并没有自动关闭。
在现有IOS 6系统尚未进行任何软件更新的情况下,大家可以进行这样一个测试来巩固上面的说法:把时间调整到2014年、2015年、2016年只要新年的第一天是周五、周六、周日,就不会出现问题(前提是要提前一天设定勿扰模式,不可当天设定,当天设定会变成周日也不行)。
对于苹果的做法来说,没有在这几天发布一个软件更新补丁,而是让用户等待这端错乱时间结束,可能是出于多方面考虑,但毫无疑问的是,此次的bug绝对是苹果在制定勿扰模式功能的时候,在跨年日期计算上出了差错,并非意外。
而苹果也会在未来的软件更新中修复这一问题,所以大家根本不必担心2014年的时候会出现该问题。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号