C# · 12月 27, 2021

c# – 如何将英文数字转换成阿拉伯数字?

我有这个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();