如何获得具有毫秒精度的nsdate?

时间:2011-03-19 04:04:08

标签: ios nsdate

我需要以毫秒精度获得时间。我怎样才能从NSDate获得它。目前,当我NSLog时,它只显示最多秒。

3 个答案:

答案 0 :(得分:29)

您需要使用以下方法转换秒数。毫秒:

([NSDate timeIntervalSinceReferenceDate] * 1000)

答案 1 :(得分:6)

对于那些想要以毫秒计算时间的人(比如Java)

double timestamp = [[NSDate date] timeIntervalSince1970];
int64_t timeInMilisInt64 = (int64_t)(timestamp*1000);

(使用Xcode 5测试iOS7和iPhone模拟器)

答案 2 :(得分:4)

Kees关于毫秒计算是正确的,但您可能只想考虑处理时间间隔的小数部分,因为您可以使用NSDateComponents将所有时间组件缩减到第二个。如果使用类似下面的内容,则可以为其添加毫秒组件:

/*This will get the time interval between the 2
  dates in seconds as a double/NSTimeInterval.*/
double seconds = [date1 timeIntervalSinceDate:date2];

/*This will drop the whole part and give you the
  fractional part which you can multiply by 1000 and
  cast to an integer to get a whole milliseconds
  representation.*/
double milliSecondsPartOfCurrentSecond = seconds - (int)seconds;

/*This will give you the number of milliseconds accumulated
  so far before the next elapsed second.*/
int wholeMilliSeconds = (int)(milliSecondsPartOfCurrentSecond * 1000.0);

希望这很有用。