В основном я получаю строку времени даты от API, и я хочу показать в приложении, что это действие произошло '5 часов назад' или '3 дня назад', и так далее...
Я в настоящее время пытаюсь получить NSTimeInterval от [NSDate timeIntervalSinceNow]
метод. И затем преобразовывая временной интервал в NSDate снова с помощью [NSDate dateWithTimeIntervalSince1970:interval]
. И затем проверяя интервал, чтобы видеть, если меньше, что 60/3600/86400/etc, установить правильный формат для вывода объект NSDateFormatter.
Действительно ли это - правильный способ сделать это? Или есть ли более легкий/лучше способ сделать это?
Для этого лучше использовать NSCalendar . Он предназначен для такого преобразования.
NSUInteger desiredComponents = NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSDayCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *elapsedTimeUnits = [[NSCalendar currentCalendar] components:desiredComponents
fromDate:activityDate
toDate:[NSDate date]
options:0];