如何处理不同ui文化的日期时间

时间:2015-03-09 17:35:50

标签: c# asp.net asp.net-mvc-5

在支持en_Us和nb-NO文化的web mvc5应用程序中,如何处理Datetime对象。 我在模型中有一个ExpiryDate属性。 如何定义ExpDate属性?什么DisplayFormat我必须申请?我如何根据文化将其转换回UI?如何将数据作为有效的日期时间等保存到SQlServer数据库

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:DD.MM.YYYY}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> ExpDate { get; set; }

这有助于[这不会发生在我身上]。仍然混淆了如何在控制器和内部视图中使用模型同时进行fecthing和保存数据

是否有人知道一些包含这些方面的文章,或者任何人都可以发布一些例子来解决这个问题?

1 个答案:

答案 0 :(得分:1)

一般来说,处理这些全球化问题的一个好方法是始终将DateTimes保存为数据库中的UTC,并在业务逻辑级别使用UTC格式。

事实上,直到在用户界面选择要查看的文化(而不仅仅是文化而且还有时区)的渲染时间之前你才知道,最好坚持使用UTC值并使用格式无关的方法,这意味着您不应该将DateTime从/转换为字符串值,而不是在UI中呈现或从数据输入表单中获取它。

如果到目前为止您还没有阅读其他任何内容,我将从这篇文章开始:Beginner's Tutorial on Globalization and Localization in ASP.NET MVC

或简单地通过ASP.NET MVC全球化进行谷歌。

祝你好运