Как преобразовать NSDate в относительный формат как «Сегодня», «Вчера», «Неделю назад», «Месяц назад», «Год назад»?

Я хочу, чтобы преобразовать nsdate в относительный формат, как"Today","Yesterday","a week ago","a month ago","a year ago","date as it is".

Я написал следующий метод для него .. но некоторые, как его просто печатать, как это дата .. не могли бы вы сказать мне, в чем должна быть проблема?

// Следующая моя функция, которая преобразует дату в относительную строку

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

}

У меня есть строка даты в следующем формате"2013-10-29T09:38:00"

Когда я пытался дать объект NSDate, он всегда возвращал мне нулевую дату.
поэтому я попытался преобразовать эту дату вyyyy-MM-dd HH:mm:ssZZZZ затем я передаю эту дату в функцию, тогда она просто печатает целую дату ..

Как решить эту проблему?

// Ниже приведен код, который я вызываю вышеупомянутой функцией

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;

Ответы на вопрос(16)

Ваш ответ на вопрос