2010年5月7日金曜日

和暦の出力

日時を出力する時にロケール指定で「日本(ja_JP)」を指定すると、「2010年5月7日金曜日」等と、一応日本語で出力されるようになりますが、これはあくまでも西暦での出力であり、日本独自の表記ではありません。
これを「平成xx年xx月xx日x曜日」等と日本独自の表記で出力するようにするには、カレンダークラスに日本のカレンダーを指定します。


    // 現在日時(世界標準時)を取得
    NSDate* dt = [NSDate date];
   
    // 時刻書式指定子を設定
    NSDateFormatter* form = [[NSDateFormatter alloc] init];
    [form setDateStyle:NSDateFormatterFullStyle];
    [form setTimeStyle:NSDateFormatterNoStyle];
   
    // ロケールを設定
    NSLocale* loc = [[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP"];
    [form setLocale:loc];
   
    // カレンダーを指定
    NSCalendar* cal = [[NSCalendar alloc] initWithCalendarIdentifier: NSJapaneseCalendar];
    [form setCalendar: cal];
   
    // 和暦を出力するように書式指定
    [form setDateFormat:@"GGyy年MM月dd日EEEE"];
   
    NSLog([form stringFromDate:dt]);

    [form release];
    [cal release];

0 件のコメント:

コメントを投稿