Штамп времени Unix неправильно конвертируется в NSDate - PullRequest
2 голосов
/ 27 января 2011

Я проанализировал API, который возвращает метку unixtime для последнего обновленного значения. Я пытаюсь преобразовать его в NSDate. Код ниже

NSDate *date = [NSDate dateWithTimeIntervalSince1970:[[[feedCount objectAtIndex:i] objectForKey:@"firstitemmsec"] intValue]];
NSLog(@"%@", date);

Когда я NSLog дата, я получаю дату как это:

2038-01-19 03:14:07 +0000

Указанная выше дата явно неверна

В чем ошибка в вышеприведенном коде?

РЕДАКТИРОВАТЬ: моя unixtimestamp

"firstitemmsec":"1264396813500"

Это значение явно больше для int. Так как лучше всего справиться с этой ситуацией

Ответы [ 3 ]

4 голосов
/ 27 января 2011

метки времени Unix указаны в секундах, значение, которое у вас выглядит как число миллисекунд с 1 января 1970 года. Если вы поделите на 1000, вы получите 1264396813, что в соответствии с этого преобразователя is:

Mon, 25 Jan 2010 05:20:13 GMT
2 голосов
/ 27 января 2011

Проверьте значение [[[feedCount objectAtIndex:i] objectForKey:@"firstitemmsec"] intValue] - шансы кажутся хорошими, что это недопустимая метка времени UNIX (хорошо, это потому, что любое значение int на iOS, но, очевидно, это не правильное значение.)

0 голосов
/ 26 октября 2011

Я думаю, есть еще кое-что сделать. Сотрите «500» в конце вашего номера, который является кодом ошибки с сервера, и у вас есть правильное время Unix;)

Возможно, на вашем сервере произошла ошибка или ошибка ... ???

...