MVC 4 在视图中将回历日期转换为公历日期?

MVC 4 Convert Hijri Date to Gregorian Date in the View?

我正在构建一个多语言 MVC 4 Web 应用程序(英语、西班牙语、阿拉伯语......),对于我遵循的国际化部分 This Tutorial,到目前为止一切都很好,除了一些小细节,在选择时阿拉伯语,当我想要公历时,所有日期数据都以回历 (02/04/1436) 显示,并且由于我需要 cultureInfo 是动态的,所以我无法为网络应用程序设置 default/Global 文化。有没有办法通过指定接受特定文化的日期来解决这个问题?

型号

    [Display(Name = "EntryDate", ResourceType = typeof(Resources.i18n))]
    [DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime EntryDate { get; set; }

查看

<td>@Html.DisplayFor(modelItem => item.EntryDate)</td>

您可以使用以下代码根据所选选项获取文化并相应地转换日期。

CultureInfo us = new CultureInfo("en-US");
string shortUsDateFormatString = us.DateTimeFormat.ShortDatePattern;
string shortUsTimeFormatString = us.DateTimeFormat.ShortTimePattern;

这将帮助您根据所选选项控制日期并以您的特定格式显示它们。

找到了,谢谢大家

CultureInfo arSA = new CultureInfo("ar-SA");
arSA.DateTimeFormat.Calendar = new HijriCalendar();
var dateValue = DateTime.ParseExact("29/08/1434", "dd/MM/yyyy", arSA);

它 returns 2013 年 7 月 7 日