在这个团队的ASP.NET MVC项目中,有一个JPStudent
索引视图,带有lambda表达式:
@Html.DisplayFor(modelItem => item.JPStartDate)
JPStartDate
是DateTime
模型的JPStudent
属性。 Index
视图返回带有日期的时间戳,但是我需要它仅显示日,月和年。
我知道常见的答案是将DateTime
转换为字符串以便执行此操作。最初,我要将其转换为字符串,并将其作为另一个属性添加到列表中,因为我需要维护返回item.JPStartDate
的相同的lambda表达式(我不应该将该表达式弄乱,因为根据团队规则)。然后,我将在新属性的表达式中切换出item.JPStartDate
。但是,当我尝试将日期字符串添加为属性列表中的新属性时,模型文件中出现错误。
JPStudentsController
设置:
jPStudent.JPStartDate = DateTime.Now;
所以我在这里尝试了将字符串转换为ddmmyy
并得到
无法将字符串隐式转换为DateTime
错误。我在这里有点难受。我只需要提取日期,月份和年份,而不必弄乱Index
视图的设置方式,以便将date属性返回到该视图。
有人在这种特殊情况下有什么建议吗?我可能错过了一些简单的方法,而我只是现在没有考虑。如果有人对DateTime
中的日期,月份和年份有任何建议,我将不胜感激!
答案 0 :(得分:1)
您要从DateTime获取年,月和日吗?那是对的吗?如果是这样,您可以只使用Day,Month和Year属性:
var jpStartDate = DateTime.Now;
var day = jpStartDate.Day;
var month = jpStartDate.Month;
var year = jpStartDate.Year;
答案 1 :(得分:1)
通过这种方式,您将更改值: DateTime jpStartDate = DateTime.Now;
DateTime reduced = new DateTime(jpStartDate.Year, jpStartDate.Month, jpStartDate.Day, 0, 0, 0);
或
reduced = jpStartDate.Date;
这取决于您是只更改可视化还是更改值。