Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 更改NSDateFormatter的数字符号_Objective C_Ios_Nsdateformatter_Nslocale - Fatal编程技术网

Objective c 更改NSDateFormatter的数字符号

Objective c 更改NSDateFormatter的数字符号,objective-c,ios,nsdateformatter,nslocale,Objective C,Ios,Nsdateformatter,Nslocale,所以我的场景基本上是这样的:如果一个用户有一个阿拉伯语区域设置,那么一个日期被格式化成以下字符串:£٩‏/١٠‏/٢٠٢٣:٢٣م 数字为阿拉伯语,日期按照阿拉伯语地区/地区格式以某种方式排序/格式化。问题是,一些用户可能使用阿拉伯语,但语言设置为英语(因为他/她可能无法阅读阿拉伯语) 是否有一种方法可以只将数字更改为阿拉伯语,同时保留格式化程序中来自区域设置的所有其他内容?也就是说,根据地区/地区格式(保留顺序)设置日期格式,但使用英语数字而不是阿拉伯数字。我看不出苹果为我们提供了任何方式来做

所以我的场景基本上是这样的:如果一个用户有一个阿拉伯语区域设置,那么一个日期被格式化成以下字符串:£٩‏/١٠‏/٢٠٢٣:٢٣م

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

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


提前谢谢

以下帖子可能会回答您的问题:


对于每个格式化的日期字符串,您将调用它10次(0,1,2,…,8,9)。这可能会对您有所帮助。

您必须使用一个具有英文数字符号的区域设置标识符。例如:

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 م

可能重复的为什么不使用条件字体,就好像字体是英语一样呢。。。。如果字体为阿拉伯语…/。/?我不鼓励这样做。我们至少可以考虑更改NSDateFormatter的区域设置,而不是字符串替换。问题还在于格式本身的顺序。从右到左而不是从左到右。有关不同地区的完整日期列表,请检查以下内容:
الخميس 14 جانفي | 02:02 م