NSDateFormatter *変数 = [《NSDateFormatter*》 setLocale:《NSLocale*》];これで、NSFormatterにロケール情報が設定されます。後は、stringFromDate:メソッドでNSDateをフォーマットすれば、指定した形式でテキストが得られる……となれば簡単なんですが、実はこの前にやるべきことがあります。
NSLocale* 変数 [[NSLocale alloc] initWithLocaleIdentifier:《NSString*》];initWithLocaleIdentifier:では、国や地域を示すテキストを用意します。日本の場合、@"ja"または@"ja_JP"と指定をします。米国なら@"en_US"とすればいいでしょう。こうして作成されたNSLocaleをsetLocale:で設定すればいいわけです。
[《NSDateFormatter*》 setDateStyle:スタイルの種類 ];設定は、日付と時刻のそれぞれについて行います。スタイルの種類は、Foundationフレームワークに用意されている以下の値のいずれかを指定します。
[《NSDateFormatter*》 setTimeStyle:スタイルの種類 ];
非表示 :NSDateFormatterNoStyleこれらで日時の表示形式を指定し、ようやくstringFromDate:でフォーマットしたテキストを得られるようになります。ざっと利用例を掲載しておきましょう。
短い形式:NSDateFormatterShortStyle
標準形式:NSDateFormatterMediumStyle
長い形式:NSDateFormatterLongStyle
NSDate* date = [NSDate date];ここでは、@"ja_JP"に指定したNSLocaleを作成し、日付を長い形式、時刻を標準形式でそれぞれ設定してフォーマットをしています。自由なフォーマット形式で出力したければ、先のinitWithDateFormat:でフォーマット形式を指定したほうが簡単ですが、システムに用意されている標準的な形式のほうが、システムの表示形式変更などにも自動的に対応できます。
NSDateFormatter* fmt = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc]
initWithLocaleIdentifier:@"ja"];
[fmt setDateStyle:NSDateFormatterLongStyle];
[fmt setTimeStyle:NSDateFormatterMediumStyle];
[fmt setLocale:locale];
NSLog(@"%@",[fmt stringFromDate:date]);
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※ロケールを使ったフォーマットの例 #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSDate* date = [NSDate date]; NSDateFormatter* fmt = [[NSDateFormatter alloc] init]; NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja"]; [fmt setDateStyle:NSDateFormatterLongStyle]; [fmt setTimeStyle:NSDateFormatterMediumStyle]; [fmt setLocale:locale]; NSLog(@"%@",[fmt stringFromDate:date]); } return 0; }
<< 前へ | 次へ >> |