Как получить время начиная со строки от объекта NSDate?

В основном я получаю строку времени даты от API, и я хочу показать в приложении, что это действие произошло '5 часов назад' или '3 дня назад', и так далее...

Я в настоящее время пытаюсь получить NSTimeInterval от [NSDate timeIntervalSinceNow] метод. И затем преобразовывая временной интервал в NSDate снова с помощью [NSDate dateWithTimeIntervalSince1970:interval]. И затем проверяя интервал, чтобы видеть, если меньше, что 60/3600/86400/etc, установить правильный формат для вывода объект NSDateFormatter.

Действительно ли это - правильный способ сделать это? Или есть ли более легкий/лучше способ сделать это?

5
задан akv 9 January 2010 в 18:57
поделиться

1 ответ

Для этого лучше использовать NSCalendar . Он предназначен для такого преобразования.

NSUInteger desiredComponents = NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSDayCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *elapsedTimeUnits = [[NSCalendar currentCalendar] components:desiredComponents 
                                                                   fromDate:activityDate 
                                                                   toDate:[NSDate date] 
                                                                   options:0];
7
ответ дан 13 December 2019 в 19:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: