凶滴们大家好!最近在使用isEqualToDate方法比较相同时间点的两个Date时发现总是不相等,明明是同一时间点为什么会不相等呢?带着这样的疑问调试了一下,输出的时间字符串也完全一样,后来想到了使用timeIntervalSinceDate方法比较了一下,两个Date确实存在不到一秒的时间差,再后来检查了一下代码,发现其中一个Date是从本地沙盒中取出的,生成的时候是一个精确的NSDate,存储在本地后,再取出来时就不是一个精确的NSDate了,自动被“四舍五入”了,精确度只到“秒”。
解决办法:1、比较前将没存储过的Date存储后再取出比较。
2、存储时全部转化成时间戳进行存储,比较时也拿时间戳进行比较(推荐)
网友评论