NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateStr = [NSString stringWithFormat:@"%@",[[cachedPostArray objectAtIndex:0] objectForKey:@"date_time"]];
NSDate *dtTime1 = [dateFormat dateFromString:dateStr];
double timeInMS1 =(long) (floor([[NSDate date] timeIntervalSince1970]) * 1000 );
double timeInMS2 =(long) (floor([dtTime1 timeIntervalSince1970]) * 1000 );
NSString *diffTimestamp = [NSString stringWithFormat:@"%f",timeInMS1 - timeInMS2];
我正在传递 dateStr = 2015-06-18 18:37:57 与当前日期时间进行比较。 始终以毫秒为单位获得差异 0。
最佳答案
因为你floor
早期的值:
double timeInMS1 =(long) (floor([[NSDate date] timeIntervalSince1970]) * 1000 );
double timeInMS2 =(long) (floor([dtTime1 timeIntervalSince1970]) * 1000 );
实际上应该没有 floor
或没有类型转换和 floor
稍后(在乘以 1000 之后):
double timeInMS1 = floor([[NSDate date] timeIntervalSince1970] * 1000 );
double timeInMS2 = floor([dtTime1 timeIntervalSince1970] * 1000 );
你现在做的是得到秒数和小数点后的毫秒数,然后你删除
毫秒数,然后你乘以1000。这太晚的。
或者,正如 rmaddy 正确建议的那样,首先使用 long:
long timeInMS1 = [[NSDate date] timeIntervalSince1970] * 1000;
long timeInMS2 = [dtTime1 timeIntervalSince1970] * 1000;
关于ios - NSDateFormatter 在比较 Xcode 6.3.2 中的两个日期时出现错误的毫秒差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30919017/