C# 如何在ASP.NET MVC中本地化日期
我们正在开发一个应用程序,该应用程序将向包括英国和美国在内的多个地区的客户提供。在许多视图页面上,我们显示如下日期:C# 如何在ASP.NET MVC中本地化日期,c#,asp.net,asp.net-mvc,datetime,razor,C#,Asp.net,Asp.net Mvc,Datetime,Razor,我们正在开发一个应用程序,该应用程序将向包括英国和美国在内的多个地区的客户提供。在许多视图页面上,我们显示如下日期: @Model.EventDate.ToString("dd/MM/yyyy HH:mm") @Html.DisplayFor(n => Model.EventDate) 这在英国运行良好,但现在我们正在部署美国版本,它应该是(日/月切换): 显然,我们不希望有两个代码基,一个用于英国,一个用于美国 我们是否可以根据我们所在的地区呈现这样的日期 我猜第一步是呈现如下日期:
@Model.EventDate.ToString("dd/MM/yyyy HH:mm")
@Html.DisplayFor(n => Model.EventDate)
这在英国运行良好,但现在我们正在部署美国版本,它应该是(日/月切换):
显然,我们不希望有两个代码基,一个用于英国,一个用于美国
我们是否可以根据我们所在的地区呈现这样的日期
我猜第一步是呈现如下日期:
@Model.EventDate.ToString("dd/MM/yyyy HH:mm")
@Html.DisplayFor(n => Model.EventDate)
然后添加一个属性:
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}" )]
同样,问题似乎是属性中的格式是硬编码的
有什么想法吗?DateTime.ToString方法有: 另外,format参数支持对不同区域性产生不同结果的格式,例如“d”值: 将于2008年10月1日为反文化制作,但2008年1月10日为美国制作
有关更多信息,请参阅该MSDN文章的“示例”部分。您需要从传入请求中确定区域性字符串,如en US,然后将其映射到自定义格式字符串。然后可以从区域性字符串创建CultureInfo实例。例如:
new CultureInfo("en-US")
然后将其与DateTime.ToString
方法一起使用只需使用受活动文化影响的方法;然后确保在web应用程序中正确设置区域性。
new CultureInfo("en-US")