我正在构建一个多语言的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>
答案 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