相对日期格式,过去日期的输出?

时间:2011-08-19 15:29:56

标签: objective-c ios cocoa-touch nsdateformatter date-formatting

我正在使用-[NSDateFormatter setDoesRelativeDateFormatting:]将日期显示为“今天”或“昨天”。我只关注过去的日期,但很好奇我会看到哪些选项本地化为英国。

只需

  • “今天”
  • “昨天”

或其他更令人费解的事情

  • “前天”

是否列出了可能的输出,以便我可以了解正确显示它们所需的屏幕空间?

1 个答案:

答案 0 :(得分:8)

是。运行以下程序时,它们会在您的控制台窗口中列出:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        NSDateFormatter * formatter = [[NSDateFormatter  alloc] init];
        [formatter setDateStyle:NSDateFormatterFullStyle];
        [formatter setDoesRelativeDateFormatting:YES];

        NSCalendar * cal = [[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
        NSDateComponents * minusOneDay = [[NSDateComponents alloc] init];
        [minusOneDay setDay:-1];
        NSDate * today = [NSDate date];
        NSDate * date = [NSDate date];

        while( 1 > [[cal components:NSYearCalendarUnit fromDate:date toDate:today options:0] year] ){

            NSLog(@"%@", [formatter stringFromDate:date]);
            date = [cal dateByAddingComponents:minusOneDay
                                        toDate:date
                                       options:0];
        }

    }
    return 0;
}

在我的语言环境中,列表似乎只是“明天”,“今天”和“昨天”。