2

iPadアプリで現在の月と年のみを「2012年11月」のように表示したいのですが、現在月を「MMMM」に、年を「yyyy」にフォーマットして連結しています。これはほとんどのロケールで問題なく機能しますが、「中国」地域では機能しません。

私の現在のコードは、「中国」地域の月と年を次のように表示します。

ここに画像の説明を入力

しかし、これは正しくありません。iOSのカレンダーアプリに表示されているはずなので、

ここに画像の説明を入力

これをどのように達成できるかについてのアイデアはありますか?

編集1:

NSDate *date = [NSDate date];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat=@"MMMM";
NSString * monthString = [[dateFormatter stringFromDate:date] capitalizedString];
dateFormatter.dateFormat=@"yyyy";
NSString * yearString = [[dateFormatter stringFromDate:date] capitalizedString];

lblMonthAndYear.text = [NSString stringWithFormat:@"%@ %@",monthString,yearString];
4

1 に答える 1

5

あなたの日付フォーマッタはロケールをまったく使用していないと思います。ここで重要なのは、フォーマット文字列だけでなく、現在のロケールを使用してテンプレートを作成することです。次に例を示します。

NSString *dateFormat = [NSDateFormatter dateFormatFromTemplate:@"MMMM d"
                                                       options:0
                                                        locale:[NSLocale currentLocale]];
dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = dateFormat;
于 2012-11-21T03:53:25.170 に答える