今天无意中发现在不同版本中(我使用的是iOS8.1的iPhone 5 和 iOS 10 的iPhone 7)进行测试, 需求中是需要对登录时间戳和退出时间戳进行计算比较的,后面发现将获取到的时间戳转换成int 或者NSInteger 或者 long 进行比较都是不行的,因为在iPhone 5系统中是32位的, 转换出来的值会变化 ,还有一个很奇怪的就是,就算你把当前的时间戳强制转换成NSInteger 类型的,结果都是不行,一进行加减乘除之后得到的结果会一直变化,漂浮不定,不知道你们有没有遇到过.
所以: 最后得到解决的方法就是叫时间戳转换成double类型,这样在哪一款手机中都是可以得到对应的值,例如:
//获取当前时间的时间戳
//-(NSString *)getNowTimestamp{
// NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];
// NSTimeInterval a=[dat timeIntervalSince1970]*1000;
// NSString *timeString = [NSString stringWithFormat:@"%.f", a];//转为字符型
// return timeString;
//}
将字字符串类型转换成double类型:
// double nowTime = [[self getNowTimestamp] doubleValue];
然后将获取到的时间戳转换成double类型,再进行加减乘除比较就可以了.