字体:大 中 小
护眼
关灯
上一页
目录
下一页
第145章 重构经典游戏(2) (第4/9页)
也只能回溯到UTC时区1970年1月1日00:00也是这个原因。 仅仅是设置成这个时间的话不会有什么问题。 但涉及到一些特殊的在局部关键功能具有查询过往信息的规则的时候 将时间设置成UTC时区1970年1月1日00:00很容易出问题。 尽管多数时候可以通过人为的因素避免触发这个漏洞。 但蘋果手机开机的时候就有一个这样强制查询过往信息的机制这个几乎无法避免。 这个机制没办法取消,因为关机重启之后手机肯定是要读取一部分先前的日志数据的。 这种情况下如果时间戳是正常时间的话,那么读取先前的日志数据并不会有什么问题。 但当UTC时区1970年1月1日00:00的时候,这个时候时间戳的时间是0。 当局部时间比时间戳0点更早的情况下。 应该怎么表示比时间戳0点更早的时间? 似乎没什么好办法。 尽管没别的好办法,系统是机器。 又不是拥有智慧的生物,它一样是要通过查询机制找到更早时间的。 这个时候就会在时间戳0的基础上进行-1cao作。 (这是为了在系统时间戳表达的时间上减去相差的秒数来查询之前的内容) 不过在0的基础上-1就比较悲催了。 得到的结果并不是-1。 0-1≠-1? 听起来很匪夷所思,但实际上在程序里面涉及到这种现象比比皆是。 这与二进制表达负数的方式有关系。 因为Unix采用了二进制
上一页
目录
下一页