Мне нужно получить время с точностью до миллисекунды. Как я могу получить его от NSDate
. В настоящее время, когда я NSLog
время, оно показывается только до секунды.
Как получить nsdate с миллисекундной точностью?
Ответ 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);
Надеюсь, что это было полезно.