У меня есть следующий ниже метод, который предназначен для извлечения и преобразования unixTimeStamp из вызова API в объект NSDate, с которым я могу легко манипулировать и использовать. По какой-то причине это возвращает неверные значения. Примером может быть, когда unixTimeStamp является 1385152832, дата должна бытьdateWithTimeIntervalSince1970 не возвращает правильную дату
Пт, 22 ноября 2013 20:40:31 GMT 22 ноября 2013 в 3:40:31 вечера EST
но вместо выплевывает : 45852-09-07 08:13:52 EST. Кто-нибудь знает, почему это произойдет?
-(NSDate *)messageDate
{
NSTimeInterval unixTimeStamp = [[self messageDateString] doubleValue];
NSDate *messageDate = [NSDate dateWithTimeIntervalSince1970:unixTimeStamp];
NSAssert(messageDate, @"messageDate should not be nil");
return messageDate;
}
Как вы форматируете NSDate? Он не будет отображаться так, как вы показываете выше. –
Похоже, ваш 'unixTimeStamp' не настроен так, как вы думаете. Когда я пишу 'NSLog (@" Date:% @ ", [NSDate dateWithTimeIntervalSince1970: 1385152832]);' Я получаю 'Date: 2013-11-22 20:40:32 + 0000'. –
Я считаю, что вам может понадобиться NSDateFormatter, чтобы получить правильное строковое представление объекта NSDate. См. Этот [LINK] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/cl/NSDateFormatter) для пример. – dean