c# - 你如何在 ASP.NET MVC 中本地化日期

标签 c# asp.net asp.net-mvc datetime razor

我们正在开发一个应用程序,该应用程序将提供给包括英国和美国在内的多个地区的客户。在许多 View 页面上,我们显示这样的日期:

@Model.EventDate.ToString("dd/MM/yyyy HH:mm")

这在英国运作良好,但现在我们正在部署美国版本,它应该类似于(日/月切换):

@Model.EventDate.ToString("MM/dd/yyyy HH:mm")

显然,我们不希望有 2 个代码库,1 个用于英国,1 个用于美国。

无论如何我们可以根据我们所在的地区呈现这样的日期吗?

我的猜测是第一步会像这样呈现日期:

@Html.DisplayFor(n => Model.EventDate)

然后添加一个属性:

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}" )]

同样的问题似乎是格式在属性中被硬编码。

有什么想法吗?

最佳答案

DateTime.ToString 方法有一个 version with two arguments :

public string ToString(
  string format,
  IFormatProvider provider
)

此外,格式参数支持针对不同文化产生不同结果的格式 - 例如“d”值:

date.ToString("d", provider) 

将为 de-DE 文化生成 01.10.2008,但为 en-US 生成 10/1/2008。

有关更多信息,请参阅该 MSDN 文章的示例部分。

关于c# - 你如何在 ASP.NET MVC 中本地化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35413030/

相关文章:

c# - 使用 BindingSource 将文本框链接到数据集

c# - 有没有比使用字符串数组更好的方法来组织这些数据?

asp.net-mvc - 我可以在不依赖客户从 PayPal 单击 "Return to site"的情况下从 PayPal Standard 获得订单确认吗?

asp.net-mvc - Controller 处理应用程序流,那么我的业务逻辑去哪里了?

C# 将 MyType 列表转换为对象列表

c# - 如何使用c#实现非二叉树结构

asp.net - 现在开始 ASP.NET 5 Web 项目是否太早?

c# - 删除 RadGrid 中的第 11 行使其变为空白

iphone - 从 Web 服务 4.0 返回 JSON

jquery - 将脚本文件添加到 MVC4 应用程序和 _Layout.cshtml 混淆