微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/csharp/93448.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐