Подтвердить что ты не робот

Как получить nsdate с миллисекундной точностью?

Мне нужно получить время с точностью до миллисекунды. Как я могу получить его от NSDate. В настоящее время, когда я NSLog время, оно показывается только до секунды.

4b9b3361

Ответ 1

Вам понадобится использовать метод ниже для преобразования сек. в миллисекунду:

([NSDate timeIntervalSinceReferenceDate] * 1000)

Ответ 2

Для тех, кто хочет получить время в миллисекундах (например, на Java)

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

(протестирован с iOS7 и симулятором iPhone с помощью Xcode 5)

Ответ 3

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);

Надеюсь, что это было полезно.