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
为什么会发生这种情况?
有几种方法可以做到这一点。
任一:
- 更改运行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(字符串)或其重载之一结束,因此这是寻找线索的地方。