DateTime的格式不正确

时间:2013-07-17 12:34:51

标签: c# asp.net-mvc datetime asp.net-mvc-4

我有如下财产:

[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime ? EndDate { set; get; }

当我使用

@Html.DisplayFor(modelItem => item.EndDate)

我得到如下结果:

17.07.2013 

为什么会这样?

1 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点。

或者:

  • 更改运行Web应用程序的用户的区域设置
  • 格式化时使用正确的CultureInfo对象
  • 在当前线程上设置默认的CultureInfo对象
  • 逃避斜杠

格式化时提供CultureInfo对象:

@Html.DisplayFor(modelItem => item.EndDate.ToString("dd/MM/yyyy", CultureInfo.GetCulture("en-US")))

设置默认的CultureInfo对象:

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCulture("en-US");

要转义斜杠,请使用单引号:

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

请注意,所有代码都以DateTime.ToString(string)或其中一个重载结束,因此您可以在此找到线索。