2014-01-31 3 views
0

У меня есть этот метод, который возвращает мне значение времени в NSString.Не правильно разобрать переменную

- (NSString *) date:(NSString *)lafecha; 
{ 

    NSString *dateStr = lafecha; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"]; 
    NSDate *date = [dateFormat dateFromString:dateStr]; 

    NSTimeInterval comparacion = [date timeIntervalSinceNow]; 

    NSMutableString *returnDate; 

    //positiveValue 
    int comparacionInHours = abs(comparacion/3600); 

    //returning the correct date 
    if (comparacionInHours < 1) { 
     NSLog(@"%d mins ago", (comparacionInHours/60)); 
     returnDate = [NSMutableString stringWithFormat:@"%d mins ago", (comparacionInHours/60)]; 
     return returnDate; 
    } 
    else if ((comparacionInHours > 1) && (comparacionInHours < 24)) { 
     NSLog(@"%d hours ago", (comparacionInHours)); 
     returnDate = [NSMutableString stringWithFormat:@"%d hours ago", (comparacionInHours)]; 
     return returnDate; 
    } 
    else if (comparacionInHours > 24) { 
     NSLog(@"%@", date); 
     return returnDate; 
    } 
    else { 
     return returnDate; 

    } 
} 

Когда я пытаюсь получить возвращаемое значение, оно всегда возвращает меня нулю.

NSMutableString *stringDate = [[NSMutableString alloc] init]; 


for (NSDictionary *story in stories){ 

    stringDate = [story objectForKey:@"pubDate"]; 
    NSLog(@"%@", [self date:stringDate]); 
} 

Если я пытаюсь с простой датой NSString как «Wed, 1 января 2014 17:05:13 +0000» она работает, но , когда я делаю это в перечислении не работает.

Любая помощь?

+0

Вы проверили значение '[история objectForKey : @ "PubDate"] '? Что это? –

+0

Значения таковы: все они ** ср, 01 янв. 2014 17:05:13 + 0000 ** – user3241911

+0

Распечатайте около десятка из них и разместите их здесь. –

ответ

0

Если входы выглядеть «Wed, 01 Jan 2014 17:05:13 +0000» (от Вашего комментария), то ваша дата строка формата должна быть "EEE, d LLL yyyy HH:mm:ss Z"

+0

«EE» должно работать нормально, согласно [спецификации ] (http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns). Но вы правы, что это, вероятно, должно быть «LLL» (или «MMM»). –

+0

Это не проблема, так как я тестировал ее с 'NSString * dateStr = @" ср, 29 янв 2014 09:54:10 +0000 "; NSDateFormatter * dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat: @ "EE, d LLLL yyyy HH: mm: ss Z"]; NSDate * date = [dateFormat dateFromString: dateStr]; NSTimeInterval comparacion = [date timeIntervalSinceNow]; ' И он отлично работал. – user3241911

+0

Пробовал это, но он не работал – user3241911

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