我需要以毫秒精度获得时间。我怎样才能从NSDate
获得它。目前,当我NSLog
时,它只显示最多秒。
答案 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);
希望这很有用。