所以我的场景基本上就是这样:如果用户有阿拉伯语区域设置,则日期格式化为此字符串:19/10/2013 3:21م
数字为阿拉伯语,日期按照阿拉伯语区域/地区格式以特定方式排序/格式化。问题是某些用户可能有阿拉伯语区域设置,但语言设置为英语(因为他/她可能无法阅读阿拉伯语)。
有没有办法将数字改为阿拉伯语,同时保留了Locale中格式化程序中的所有其他内容?也就是说,根据区域设置/区域格式(保留顺序)格式化日期,但使用英文数字而不是阿拉伯数字。我认为Apple没有任何方式让我们做出这样的改变。
提前致谢!
答案 0 :(得分:1)
您必须使用具有英文数字符号的区域设置标识符之一。 E.g:
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 م
答案 1 :(得分:-1)
以下帖子可能会回答您的问题: String replacement in Objective-C
NSString *str = @"This is a string";
str = [str stringByReplacingOccurrencesOfString:@"string"
withString:@"duck"];
对于每个格式化的日期字符串,您将调用此10次(0,1,2,...,8,9)。也许这会对你有帮助。