2010年5月7日金曜日

書式付き日時のロケール指定

書式付き日時のロケールを指定しない場合、デフォルトでは英語表記で出力されるようです。
これを日本語の日時で出力するように指定するには、NSDateFormatterクラスのsetLocaleメソッドを使います。


    // 現在日時(世界標準時)を取得
    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];

    NSLog([form stringFromDate:dt]);

ロケール指定が無い場合、日時に「Friday, May 7, 2010」等と出力されますが、
日本のロケールを指定したので、「2010年5月7日金曜日」等と出力されるようになりました。

ロケール指定子には、以下のものが使用できるようです。

ja_JP日本語
en_US英語(アメリカ)
en_GB英語(イギリス)
fr_FRフランス語
de_DEドイツ語
it_ITイタリア語
es_ESスペイン語
zh_Hans_CN中国語
ko_KR韓国語

0 件のコメント:

コメントを投稿