MVC 4在视图中将Hijri日期转换为格里高利日期?

时间:2015-01-14 02:21:36

标签: c# asp.net-mvc asp.net-mvc-4

我正在构建一个多语言的MVC 4 Web应用程序(英语,西班牙语,阿拉伯语...),对于我跟随This Tutorial的国际化部分,到目前为止一切都很好,除了细节,选择阿拉伯语时,所有日期数据都显示在Hijri(02/04/1436),当我想要公历时,由于我需要cultureInfo是动态的,我不能为网络应用设置默认/全球文化。有没有办法通过指定采取特定文化的日期来解决这个问题?

模型

    [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>

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

我找到了它,谢谢大家。

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

它返回7/7/2013