Jak przekonwertować NSDate na format względny jako „Dzisiaj”, „Wczoraj”, „tydzień temu”, „miesiąc temu”, „rok temu”?

Chcę przekonwertować nsdate na format względny"Today","Yesterday","a week ago","a month ago","a year ago","date as it is".

Napisałem na ten temat następującą metodę ... ale niektóre, jak to po prostu drukować, jak jest data .. czy możesz mi powiedzieć, jaki powinien być problem?

// Poniżej znajduje się moja funkcja, która konwertuje datę na łańcuch względny

+(NSString *)getDateDiffrence:(NSDate *)strDate{
    NSDateFormatter *df = [[NSDateFormatter alloc] init];

    df.timeStyle = NSDateFormatterMediumStyle;
    df.dateStyle = NSDateFormatterShortStyle;
    df.doesRelativeDateFormatting = YES;
    NSLog(@"STRING DATEEE : %@ REAL DATE TODAY %@",[df stringFromDate:strDate],[NSDate date]);
      return [df stringFromDate:strDate];

}

Mam łańcuch daty w następującym formacie"2013-10-29T09:38:00"

Kiedy próbowałem podać obiekt NSDate, zawsze zwracał mi datę zerową.
więc próbowałem przekonwertować tę datę nayyyy-MM-dd HH:mm:ssZZZZ następnie przekazuję tę datę, aby działała, to po prostu drukuje całą datę ..

Jak rozwiązać ten problem?

// Poniżej znajduje się kod, który nazywam powyższą funkcją

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSDate *date = [formatter dateFromString:[threadDict objectForKey:@"lastMessageDate"]];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ssZZZZ"];

NSString *date1 = [formatter stringFromDate:date];
NSDate *date_d = [formatter dateFromString:date1];
NSString *resultstr=[UserManager getDateDiffrence:date];

self.dateLabel.text=resultstr;

questionAnswers(16)

yourAnswerToTheQuestion