在比较Xcode 6.3.2中的两个日期时,NSDateFormatter得到错误的毫秒差异

时间:2015-06-18 15:02:04

标签: ios objective-c date

$file

我正在通过dateStr = 2015-06-18 18:37:57与当前日期时间进行比较。 总是以毫秒为单位得到差异。

1 个答案:

答案 0 :(得分:2)

因为您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 );

你现在所做的是得到小数点后的秒和毫秒,然后你removing毫秒,然后你乘以1000.这太迟了。

或者,正如rmaddy正确建议的那样,首先使用long:

long timeInMS1 = [[NSDate date] timeIntervalSince1970] * 1000;
long timeInMS2 = [dtTime1 timeIntervalSince1970] * 1000;