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();

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...