6

-[NSDateFormatter setDoesRelativeDateFormatting:]日付を「今日」または「昨日」として表示するために使用することを検討しています。私は過去の日付だけを見ていますが、英国向けにローカライズされたオプションを知りたいです。

ただ

  • "今日"
  • "昨日"

またはもっと複雑なもの

  • 「昨日の前日」

それらを正しく表示するために必要な画面スペースのアイデアを得ることができるように、可能な出力はどこかにリストされていますか?

4

1 に答える 1

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;
}

私のロケールでは、リストは「明日」、「今日」、「昨日」のようです。

于 2011-08-19T18:56:25.783 に答える