iOS在不同手机转换时间戳获取到的数值进行比较会出现不同的值的问题

   今天无意中发现在不同版本中(我使用的是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类型,再进行加减乘除比较就可以了.




猜你喜欢

转载自blog.csdn.net/xtyzmnchen/article/details/71214013