ASP.NET MVC3日期时间格式

时间:2012-09-01 14:17:15

标签: asp.net-mvc-3

我有实体的MVC3项目。 我在DateTime属性上有DisplayFormat(DataFormatString="{0:dd/MM/yyyy hh:mm:ss}")

的数据注释

控制器,带有实体作为参数的方法,并使用相同的实体对象调用视图,显示其日期属性。

因此,我打开浏览器并输入链接http://site/entity/method?dateproperty=01/09/2012 01:02:03(2012年9月1日)并显示09/01/2012 01:02:03(2012年1月9日)。

在视图中我正在使用DisplayFor它显示为dd/MM/yyyy,因为我有一组DisplayFormat。

问题是它的读数是MM/dd/yyyy而不是dd/MM/yyyy,是否有任何解决方案?

P.S。我在web.config globalization中尝试了<sysmte.web>但没有帮助。

1 个答案:

答案 0 :(得分:2)

怀疑问题在于您尚未在属性中指定ApplyFormatInEditMode = true,因此它使用默认格式解析 ,但使用您指定的格式格式化

我绝对不是MVC开发者,但是如果您希望在两个方向上使用相同的格式,我相信您可以将属性更改为:

[DisplayFormat(ApplyFormatInEditMode = true, 
               DataFormatString="{0:dd/MM/yyyy HH:mm:ss}")]

请注意,我已将hh更改为HH,因为我怀疑您需要24小时格式。我实际上建议使用yyyy-MM-ddTHH:mm:ss(ISO-8601)作为URL参数的不太模糊的格式 - 当然还有更加以用户为中心的显示格式。