系统最早由肯·汤普逊、丹尼斯·里奇和道格拉斯·麦克罗伊于1969年在at&t的贝尔实验室开发。
unix系统有很多衍生产物。
ios基于的darwin正是unix的分支之一。
ios作为一个系统一定程度上继承了unix的特性。
既然是系统,那么不可避免会涉及到计时的问题。
与人类一般使用“年+月+日”的计数格式不同。
unix采用了一种完全不同的计时方式:
在unix系统中计时方式是先将(utc时区)1970年1月1日00:00设定为0点。
随后计算到目前为止所经过的秒数。
举个栗子。
2014年6月22日18时30分25秒。
表示出来的话为1403433025秒。
换算成对应的二进制在unix系统下表示时间。
这种计时方法被称为时间戳。
ios系统也沿袭了unix这一计时方法。
也正因此,ios中时间的设定最多也只能回溯到utc时区1970年1月1日00:00也是这个原因。
仅仅是设置成这个时间的话不会有什么问题。
但涉及到一些特殊的在局部关键功能具有查询过往信息的规则的时候
将时间设置成utc时区1970年1月1日00:00很容易出问题。
尽管多数时候可以通过人为的因素避免触发这个漏洞。
但蘋果手机开机的时候就有一个这样强制查询过往信息的机制这个几乎无法避免。
这个机制没办法取消,因为关机重启之后手机肯定是要读取一部分先前的日志数据的。
这种情况下如果时间戳是正常时间的话,那么读取先前的日志数据并不会有什么问题。
但当utc时区1970年1月1日00:00的时候,这