加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 03:54:07 所属栏目:百科 来源:网络整理
导读:我有这个C#代码 DateTime.Now.ToString("MMMM dd,yyyy"); 现在线程正在加载阿拉伯文化.所以结果是这样的 ???? 19,2010 但我不想让“2010”和“19”以英文(也称为拉丁语或West Arabic数字) – 我想要“阿拉伯数字”,如“2”. 我试过了 DateTime.Now.ToString(
我有这个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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读