JSON дата для NSDate и обратно - PullRequest
4 голосов
/ 25 января 2011

У меня есть дата JSON, например: 1295804021525, то есть число миллисекунд с 1970 года.

Я написал следующий код для преобразования этого числа в NSDate:

long long seconds = [[payload valueForKey:@"starttime"]longLongValue]/1000;  
NSDate *somedate = [NSDate dateWithTimeIntervalSince1970:seconds];

Что работает и возвращает правильную дату.Сначала мне интересно, если это лучший способ сделать преобразование.

Далее мне интересно, как преобразовать обратно в формат в миллисекундах и затем ввести в URL для отправки обратно на сервер.

У меня есть:

long long date = [somedate timeIntervalSince1970] * 1000;
NSString *urlString = [NSString stringWithFormat:@"http://someurl?since=%qi",date];

Сновапохоже, это работает, но мне было интересно, как я могу получить ту же функциональность, используя NSNumber.

1 Ответ

11 голосов
/ 25 января 2011

При исходном преобразовании вы теряете точность менее секунды. Вы можете сделать что-то вроде

CFTimeInterval seconds = [[payload valueForKey:@"starttime"] doubleValue] / 1000.0;

Второй фрагмент должен быть в порядке.

Я не уверен, почему вы думаете, что использование NSNumber поможет каким-либо образом. С упомянутой модификацией оба этих фрагмента кода просты и должны нормально работать.

...