我如何计算iOS中的时间?

时间:2012-09-22 18:00:18

标签: objective-c ios nsdate nstimer nstimeinterval

我不想在经过一定时间后设置一个“触发”(并做某事)的计时器。

因此,我对NSTimer类及其方法不感兴趣。

所有我感兴趣的是计算时经过的时间,例如,某些while循环正在执行。我可以使用NSDate,如下所示:

NSDate currentDate = [[NSDate alloc] init];

while(someConditionIsTrue)
{
    // executing..
}

timeElapsed = [self timeIntervalSinceDate:currentDate];

NSLog(@"time elapsed was: %i", timeElapsed);

但是,如果我理解正确,timeIntervalSinceDate:只能计算秒数。

有没有办法可以计算在毫秒中经过的时间?

换句话说,我可以计算的最小单位是什么?以及如何计算?

2 个答案:

答案 0 :(得分:9)

查看CFAbsoluteTimeGetCurrent()

CFAbsoluteTime before = CFAbsoluteTimeGetCurrent();
CFAbsoluteTime after = CFAbsoluteTimeGetCurrent();

答案 1 :(得分:7)

你的第二种方法是正确的。将当前日期保存在NSDate对象中,并使用timeIntervalSinceDate:来获取自那时起的通过时间。结果将是NSTimeInterval类型,它是一个浮点数。它以秒为单位指定时间差,但由于它是一个浮点数,因此它也可以存储几分之一秒。

  

NSTimeInterval总是以秒为单位指定;它产生了   在10,000年的范围内精确到亚毫秒级。