4

したがって、私のシナリオは基本的に次のとおりです。ユーザーがアラビア語ロケールを持っている場合、日付は次の文字列にフォーマットされます: ١٩ /١٠ /٢٠١٢ ٣:٢١ م

数字はアラビア語で、日付はアラビア語のロケール/地域形式に従って特定の方法で順序付け/形式設定されます。問題は、ロケールがアラビア語で、言語が英語に設定されているユーザーがいる可能性があることです (アラビア語を読めない可能性があるため)。

ロケールのフォーマッタで他のすべてを保持しながら、数字だけをアラビア語に変更する方法はありますか? つまり、ロケール/地域の形式 (順序を保持) に従ってその日付を形式設定しますが、アラビア数字ではなく英数字を使用します。Apple が私たちにそのような変更を加える方法を提供したとは思えません。

前もって感謝します!

4

2 に答える 2

1

英語の数字記号を持つロケール識別子のいずれかを使用する必要があります。例えば:

NSDateFormatter *dateFormatter = [NSDateFormatter new];
dateFormatter.dateFormat = @"EEEE dd MMM | hh:mm a";
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"ar_TN"];
NSLog(@"%@", [dateFormatter stringFromDate:[NSDate date]]);

これは印刷されます:

الخميس 14 جانفي | 02:02 م
于 2016-01-14T19:07:35.207 に答える
-1

次の投稿があなたの質問に答えるかもしれません: Objective-Cでの文字列の置換

NSString *str = @"This is a string";

str = [str stringByReplacingOccurrencesOfString:@"string"
                                 withString:@"duck"];

フォーマットされた日付文字列ごとに、これを10回呼び出します(0,1,2、...、8,9)。多分これはあなたを助けるでしょう。

于 2013-03-19T13:26:52.750 に答える