我有这个C#代码
DateTime.Now.ToString("MMMM dd,yyyy");
现在线程正在加载阿拉伯文化.所以结果是这样的
???? 19,2010
但我不想让“2010”和“19”以英文(也称为拉丁语或West Arabic数字) – 我想要“阿拉伯数字”,如“2”.
我试过了
DateTime.Now.ToString("MMMM dd,yyyy",CultureInfo.GetCultureInfo("ar-lb"));
给出了相同的结果.
那么任何想法?
解决方法
你的这个解决方法(只列出所有的文化,你想在字符串数组中使用这个数字):
private static class ArabicNumeralHelper { public static string ConvertNumerals(this string input) { if (new string[] { "ar-lb","ar-SA" } .Contains(Thread.CurrentThread.CurrentCulture.Name)) { return input.Replace('0','\u06f0') .Replace('1','\u06f1') .Replace('2','\u06f2') .Replace('3','\u06f3') .Replace('4','\u06f4') .Replace('5','\u06f5') .Replace('6','\u06f6') .Replace('7','\u06f7') .Replace('8','\u06f8') .Replace('9','\u06f9'); } else return input; } }
然后使用该方法,对于您想要的所有字符串,您都可以使用“中央阿拉伯数字”,如下所示:
DateTime.Now.ToString().ConvertNumerals();