我们正在开发一个应用程序,该应用程序将提供给包括英国和美国在内的多个地区的客户。在许多 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/