Как я могу отформатировать две NSDate как строку разницы во времени (например, 2 дня назад) и сделать так, чтобы она соответствовала региональному форматированию устройства? - PullRequest
2 голосов
/ 23 декабря 2011

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

dateFormat = [[[NSDateFormatter alloc] init] autorelease]; [dateFormat setDateStyle:NSDateFormatterMediumStyle]

спасибо

1 Ответ

6 голосов
/ 23 декабря 2011

Вы можете включить форматирование относительной даты, выполнив:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.doesRelativeDateFormatting = YES;

. Это даст вам строки даты, которые выглядят как «Вчера», «Сегодня», «Завтра» и т. Д.

если этого недостаточно, то это может быть полезно: http://zetetic.net/code/nsdate-helper

, что категория NSDate не совсем подходит для того, что я хотел, поэтому я добавил свою собственную функцию, основанную на той, которая была в категории .. кажетсяработать, но без гарантий;) конечно, это только дает вам немного информации - это не дает вам форматирование локали и т. д.

- (NSUInteger)daysAgoAgainstMidnight2 {
    // get a midnight version of ourself:
    NSDateFormatter *mdf = [[NSDateFormatter alloc] init];
    [mdf setDateFormat:@"yyyy-MM-dd"];
    NSDate *midnightMe = [mdf dateFromString:[mdf stringFromDate:self]];
    NSDate *midnightNow = [mdf dateFromString:[mdf stringFromDate:[NSDate date]]];

    NSDateComponents *components = [calendar components:(NSDayCalendarUnit)
                                               fromDate:midnightMe                                                             toDate:midnightNow
                                                options:0];
    return [components day];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...