DateTime的格式不正确

本文关键字:不正确 格式 DateTime | 更新日期: 2023-09-27 18:23:39

我有一个属性如下:

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

当我使用时

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

我得到的结果如下:

17.07.2013 

为什么会发生这种情况?

DateTime的格式不正确

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

任一:

  • 更改运行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(字符串)或其重载之一结束,因此这是寻找线索的地方。