Como converter NSDate para o formato relativo como "Hoje", "Ontem", "uma semana atrás", "um mês atrás", "um ano atrás"?

Eu quero converter nsdate em formato relativo como"Today","Yesterday","a week ago","a month ago","a year ago","date as it is".

Eu escrevi o seguinte método para isso .. mas de alguma forma é apenas imprimir como é data .. você pode por favor me diga qual deve ser o problema?

// A seguir está minha função que converte a data em string relativa

+(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];

}

Eu tenho string de data com o seguinte formato"2013-10-29T09:38:00"

Quando eu tentei dar o objeto NSDate, então ele sempre me retorna a data nula.
então eu tentei converter essa data parayyyy-MM-dd HH:mm:ssZZZZ então eu passo essa data para funcionar, então é só imprimir data inteira ..

Como resolver este problema?

// A seguir está o código que chamo a função acima

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