如何使用C#将datetime中英文文本中的月份名称转换为阿拉伯文本?

时间:2017-10-12 04:45:57

标签: asp.net .net visual-studio asp.net-mvc-4 c#-4.0

我的日期显示于2013年7月12日。我使用的格式为“dd MMMM yyyy”。我想用阿拉伯语文本显示月份文本,即7月。反正呢?

结果得到يوليه而不是我的客户يوليو说:7月是阿拉伯语中的“يوليو”,而在网站上它显示为“يوليه”。哪个错了, 谁可以帮我这个事?

请找到以下代码。

我尝试过:

CultureInfo uiCulture1 = CultureInfo.CurrentUICulture; //'ar-AE'
DateTime dDateTime2 = DateTime.Parse(dt.ToString(), uiCulture1, System.Globalization.DateTimeStyles.AssumeLocal);
lblDate.Value = dt.ToString("dd MMMM yyyy");

3 个答案:

答案 0 :(得分:0)

我认为问题是

dt.ToString()
<。>在Date.Parse中。 dDateTime2将设置为12月7日而不是7月12日,因为我认为有问题的文化在日期格式中默认为dd-mm-yyyy。

var dt = new DateTime(2013, 07, 12);
Console.WriteLine(dt.ToString("dd MMMM yyyy")); //12 July 2013

CultureInfo uiCulture1 = new CultureInfo("ar-AE"); //'ar-AE'
DateTime dDateTime2 = DateTime.Parse(dt.ToString(), uiCulture1, System.Globalization.DateTimeStyles.AssumeLocal);

Console.WriteLine(dDateTime2.ToString("dd MMMM yyyy")); // 07 December 2013

Console.WriteLine(dt.ToString("dd MMMM yyyy", uiCulture1)); //12 يوليو 2013

答案 1 :(得分:0)

在dateTime.toString()

中提供文化信息
        var dateTime = DateTime.Now;

        var uiCulture = new CultureInfo("ar-AE");
        Console.WriteLine(dateTime.ToString("dd MMM yyyy",uiCulture));

答案 2 :(得分:0)

试试这个

var dateTime = DateTime.Now;
var month = DateTime.Now.ToString("MMMM", new CultureInfo("ar-AE"));
Console.WriteLine(month);

结果أكتوبر