我有变量:
DateTime crd = a.CreationDate; (shown as a variable in C# but available in razor views)
我想使用以下格式将这些显示为日期:11/06/2011 02:11
理想情况下,我想为此提供某种HTML帮助程序。那里的任何人都有可能满足我需求的东西吗?
答案 0 :(得分:20)
您可以像this answer一样创建显示模板或编辑器模板,但格式将适用于给定范围内的所有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
答案 1 :(得分:16)
在您的模型中,您可以根据需要设置[DisplayFormat]属性格式
[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
pubilc DateTime CreationDate{ get; set }
答案 2 :(得分:3)
怎么样
@ crd.ToShortDateString()
答案 3 :(得分:3)
使用此代码格式化您的日期:
@string.Format("{0:ddd}",Convert.ToDateTime(Html.DisplayFor(model => model.Booking.BookingFromDate).ToString()))
如果您的日期字段包含必需属性,那么您不想验证null
值。
另外,你可以使用三元运算符
答案 4 :(得分:1)
尝试Razor View
@ Html.Raw(item.Today_Date.Date.ToString(“ dd.MM.yyyy”))
答案 5 :(得分:0)
出于完整性考虑,还可以使用字符串插值。提出此问题时,我认为这不是可用的功能。
@($"{crd:dd/mm/yyyy HH:mm}")
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated
答案 6 :(得分:-2)
如果你有一个日期列表,并想抓住第一个:
Begin Date: @string.Format("{0:MM/dd/yyyy}", Convert.ToDateTime(Model.aList.Where(z => z.Counter == 1).Select(z => z.Begin_date).First()))