2016-04-04 10 views
0

Я получаю timestamp для сервера в stringFormat, который находится в miliseconds.Проблема при анализе временной метки в дату и время с использованием Objective-C

Мне нужно его преобразовать в дату и время и показать пользователю.

Я сделал это, используя следующий код:

+ (NSString *)getDateAndMonthFromTimeStamp:(NSString*)timestampString 
{ 
NSTimeInterval timeStamp = [timestampString integerValue]/1000; 

NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeStamp]; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 

[dateFormatter setTimeZone:[NSTimeZone defaultTimeZone]]; 

[dateFormatter setDateFormat:@"dd MMM"]; 

NSString *dateNmonth = [[dateFormatter stringFromDate:date]uppercaseString]; 

return dateNmonth; 
} 

Когда я запускаю его в iPhone6 ​​он работает отлично. Но когда я запускаю его в iPhone 5 и iPhone5, он показывает мне нежелательную дату.

отлаживать код и нашел это:

timestampString = @"1459498716000" 

    NSTimeInterval timeStamp = [timestampString integerValue]/1000; 
//after this timeStamp becomes: 
    timeStamp = 2147483; 

и тогда моя дата становится 1970-01-25 20:31:23 +0000

Я в сомнении, что NSTimeinterval переполнен данными. это правильно?

Как это исправить.

+1

магазин значение временной метки в двойной тип данных – iOS

+0

@DarjiJigar используя двойной не решить мою проблему. – Dalvik

+0

, если вы получаете данные временной метки в строке json, чем почему u конвертировать в nstimeinterval – iOS

ответ

1

попробовать этот код

NSString* takeOffTime = @"1396614600000"; 
double miliSec = takeOffTime.doubleValue; 
NSDate* takeOffDate = [NSDate dateWithTimeIntervalSince1970:miliSec/1000]; 

 Смежные вопросы

  • Нет связанных вопросов^_^