Цель C: сравнить timeInMillis с текущим временем

В моем приложении для iPhone мне нужно рассчитать разницу во времени между временем создания сообщения на сервере и временем его получения моим телефоном.

Сервер (Java) помещает число, возвращенное System.currentTimeMillis(), в качестве метаданных вместе с сообщением.

Как мне сравнить это число с текущим временем на устройстве? Не удалось найти подходящий метод NSDate для этого сравнения.

Заранее спасибо!


person Srivathsan Canchi    schedule 06.05.2010    source источник


Ответы (2)


Вы можете взглянуть на этот SO-ответ и -timeIntervalSinceDate:.

person Alex Reynolds    schedule 07.05.2010

Вы можете использовать (NUInteger) ([[NSDate date] timeIntervalSince1970] * 1000)

person Gaurav Vaish    schedule 26.09.2013
comment
Но обратите внимание, что методы временного интервала возвращают значение double в секундах. Вы должны сделать некоторые (очень незначительные) преобразования, чтобы получить миллисекунды. - person Hot Licks; 26.09.2013
comment
И обратите внимание, что есть и другие способы — преобразовать временной интервал в NSDate. - person Hot Licks; 26.09.2013
comment
Умножьте на 1000 и введите длинный или NUInteger. - person Gaurav Vaish; 27.09.2013
comment
Я не могу найти точную ссылку на точную разницу во времени между отсчетной датой Apple «GMT» (я полагаю, UT1) 1 января 1970 года и UTC Java, но она будет не более 900 мс и, вероятно, намного меньше. Я думаю, поскольку автор берет время с двух разных часов, в любом случае разницу можно игнорировать? - person Tommy; 27.09.2013
comment
Эпоха / время 1970 г. = 1 января 1970 г., 00:00. - person Gaurav Vaish; 27.09.2013