自分でも何度か調べてしまったので記録しておく。
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の言語設定関連の情報取得についての解説 – 強火で進め を見るのがよさそう。