4

所以我的场景基本上是这样的:如果用户有一个阿拉伯语语言环境,一个日期被格式化成这个字符串:١٩‏/١٠‏/٢٠١٢ ٣:٢١ م

数字是阿拉伯数字,日期是根据阿拉伯语言环境/区域格式以某种方式排序/格式化的。问题是某些用户的语言环境可能是阿拉伯语,但语言设置为英语(因为他/她可能无法阅读阿拉伯语)。

有没有办法只将数字更改为阿拉伯语,同时保留来自语言环境的格式化程序中的所有其他内容?也就是说,根据区域设置/区域格式(保留顺序)格式化该日期,但使用英文数字而不是阿拉伯数字。我看不出苹果为我们提供的任何方式做出这样的改变。

提前致谢!

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 回答