Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET MVC中本地化日期_C#_Asp.net_Asp.net Mvc_Datetime_Razor - Fatal编程技术网

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")