[iPhone SDK] 日時のローカライズ

自分でも何度か調べてしまったので記録しておく。

Objective-Cで日時を表示したい場合、単純に [NSDate date] で現在日時を取得して表示すると、GMT(Greenwich Mean Time) になってしまうようだ。
これに対して、NSDateFormatter でフォーマットして表示すると、iPhoneに設定されているLocaleで時刻がフォーマットされるようだ。

	NSDateFormatter *formatter = [[[NSDateFormatter alloc]init]autorelease];
	[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
	NSString *dateString = [formatter stringFromDate:aDate];

Localeを自分で取得したい場合は、[NSLocale preferredLanguages] で取得した配列を利用する。

	NSArray *array = [NSLocale preferredLanguages];
	NSString *lang = [array objectAtIndex:0];	
	if([lang isEqualToString:@"ja"]) { 
        // 日本の場合
	} else {
        // その他の言語の場合
    }	

詳しくは iPhoneの言語設定関連の情報取得についての解説 – 強火で進め を見るのがよさそう。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.