如何在Razor视图中格式化DateTime?

Sam*_*tar 12 asp.net-mvc asp.net-mvc-3

我有变量,如:

DateTime crd = a.CreationDate; (shown as a variable in C# but available in razor views)
Run Code Online (Sandbox Code Playgroud)

我想用格式显示这些日期:11/06/2011 02:11

理想情况下,我想为此提供某种HTML帮助程序.那里的任何人都有可能满足我需求的东西吗?

Jus*_*lle 21

您可以像在此答案中一样创建显示模板或编辑器模板,但格式将应用于给定范围内的所有DateTime变量(可能是好的或坏的).

使用DisplayFormat属性可以很好地定义各个字段的格式.

请记住使用@Html.DisplayFor(model=>model.crd)和/或@Html.EditorFor(model=>model.crd)语法来实现上述任一方法.

您始终可以DateTime.ToString()在视图中使用该方法以获得更多临时格式.

@crd.ToString("MM/dd/yyyy HH:mm") // time using a 24-hour clock
Run Code Online (Sandbox Code Playgroud)


Dam*_*ith 16

在您的模型中,您可以根据需要使用格式设置 [DisplayFormat]属性

[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
pubilc DateTime CreationDate{ get; set }
Run Code Online (Sandbox Code Playgroud)


小智 5

使用此代码格式化您的日期:

@string.Format("{0:ddd}",Convert.ToDateTime(Html.DisplayFor(model => model.Booking.BookingFromDate).ToString()))
Run Code Online (Sandbox Code Playgroud)

如果您的日期字段具有 required 属性,那么您不想验证null值。否则,您可以使用三元运算符