0

ユーザーが 3 つの UITextFields で誕生日を入力できるフォームを作成しています: 1 つは月、1 つは日、1 つは年です。ユーザーの日付形式に基づいて配置したいと思います。
例: [ 月 ] [ 日 ] [ 年 ] はアメリカのユーザー向け、[ 日 ] [ 月 ] [ 年 ] はヨーロッパのユーザー向けなど
国別の日付形式のマップ: http://en.wikipedia.org/wiki/ Date_format_by_country#地図

そのフォーマットを取得する最も簡単な方法は何ですか?

現在、2000 年 10 月 20 日の日付を設定し、文字列を解析しています。

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:20];
[components setMonth:10];
[components setYear:2000];
NSDate *date = [calendar dateFromComponents:components];

NSLog(@"%@", [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterNoStyle]);

しかし、私はすでにあまりにも多くの異なるフォーマットを持っているので、それは正しいことではないと思います:

米国: 10/20/00
FR: 20/10/00
日本: 2000/10/20
スウェーデン: 2000-10-20

4

2 に答える 2

1

を活用できますNSDateFormatter dateFormatFromTemplate:options:locale:

NSString *base = @"MM/dd/yyyy";
NSLocale *locale = [NSLocale currentLocale];
NSString *format = [NSDateFormatter dateFormatFromTemplate:base options:0 locale:locale];

の値はformat、ロケールに基づいて適切な形式で調整されます。ここでのトリックは、 、、およびformatがどのような順序で見つかったかをスキャンすることです。Mdy

于 2013-04-18T23:59:23.447 に答える