最近遇到一个bug,在iPhone上获取当前的时间戳,没有问题,而用iPad来测试的时候,出现了时间戳不对。当时的代码 (需要精确到毫秒,所以*1000)
NSTimeInterval t = [[NSDate date] timeIntervalSince1970]*1000; NSString *timestamp = [NSString stringWithFormat:@"%ld", (long)t]; NSLog(@"timestamp =%@",timestamp);
后来,查了很多资料,发现测试iPad是32位的,iPhone是64位的,32位只有4个字节,64位的有8个字节,里面的long*1000时,32位的iPad溢出了,所以出现了时间戳不对。修改改后的代码
NSTimeInterval t = [[NSDate date] timeIntervalSince1970];
long long time = t*1000;
NSString *timestamp = [NSString stringWithFormat:@"%lld", time];
NSLog(@"timestamp =%@",timestamp);
原文:http://www.cnblogs.com/DWdan/p/4846210.html