Анонимный пользователь
Дополнительно
iPhone: Как получить текущие миллисекунды?
Каков наилучший способ получения текущего системного времени в миллисекундах?
216
18
Если вы хотите использовать его для относительной синхронизации (например, в играх или анимации), лучше использовать CACurrentMediaTime().
Это рекомендуемый способ;
NSDate
берет синхрочасы из сети и будет иногда икать при повторной синхронизации с сетью.Он возвращает текущее абсолютное время в секундах.
Если вам нужна только десятичная часть (часто используется при синхронизации анимации),
Она возвращает количество секунд с момента эпохи в виде двойки. Я почти уверен, что вы можете получить доступ к миллисекундам из дробной части.
Я протестированные всех других ответов на iPhone 4s и iPad 3 (выпусков).
CACurrentMediaTime
имеет минимум накладных расходов с небольшим перевесом.timeIntervalSince1970
гораздо медленнее, чем другие, вероятно, из-заNSDate
экземпляра накладных, хотя это может не иметь значения для многих случаях использовать.Я'd рекомендую
CACurrentMediaTime
если вы хотите, наименьших издержек и Дон'т ум добавлением кварца структуры зависимостей. Или gettimeofday, если мобильность является приоритетом для вас.айфон 4С
для iPad 3
В Swift мы можем сделать функцию и сделать следующим образом
Хотя его прекрасно работать в Свифт 3.0 но мы можем изменить и использовать класс
дата
вместо `NSDate в 3.0Свифт 3.0
Пока я нашел gettimeofday` хорошим решением на iOS (для iPad), когда вы хотите выполнить какое-интервал оценки (скажем, по частоте кадров, времени рендеринга кадров...) :
Чтобы получить миллисекунд на текущую дату.
Свифт 4+:
Свифт 2
Свифт 3
Это может быть полезно знать о CodeTimestamps, которые предоставляют оболочкой Маха-функциями времени. Это дает вам наносекундного разрешения данных сроков - 1000000x более точным, чем миллисекунд. Да, миллион раз точнее. (С префиксами Милли, микро, нано, каждый в 1000 раз более точные, чем в прошлом.) Даже если вы Don'т нужна CodeTimestamps, проверьте код (он'с открытым исходным кодом), чтобы увидеть, как они используют Маха, чтобы получить данные о времени. Это будет полезно, когда вам нужно больше точности и хотите быстрее вызова метода, чем подход NSDate.
http://eng.pulse.me/line-by-line-speed-analysis-for-ios-apps/
Мне нужен
NSNumber объект, содержащий точный результат
[[NSDate дата] timeIntervalSince1970]`. Поскольку эта функция была вызвана много раз, и я не't действительно нужно создать NSDate объект, перформанс был не велик.Так, чтобы получить формат, что исходная функция дает мне, попробуйте это:
Что должно дать вам тот же результат, как
[[NSDate дата] timeIntervalSince1970]
Попробуйте это :
В этом примере dateWithTimeIntervalSince1970 используется в сочетании форматера @то"гггг-ММ-ДД чч:мм:СС.ССС", Что будет возвращать дату в год, месяц, день и время часы, минуты, секунды и миллисекунды. Пример : "на 2015-12-02 04:43:15.008-то". Я использовал NSString, чтобы быть уверенным, что формат будет написано раньше.
[CFAbsoluteTimeGetCurrent()][1]
Это в принципе такой же ответ, как написал @TristanLorach, просто перекодируется на Свифт 3:
}
Это то, что я использовал для Swift
использовал этот сайт, чтобы проверить точность http://currentmillis.com/
[NSDate timeIntervalSinceReferenceDate]
- еще один вариант, если вы не хотите включать фреймворк Quartz. Он возвращает двойное значение, представляющее секунды.