在这种情况下,如何更改DateTime以排除时间戳?

时间:2018-12-08 00:26:08

标签: c# datetime model-view-controller

在这个团队的ASP.NET MVC项目中,有一个JPStudent索引视图,带有lambda表达式:

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

JPStartDateDateTime模型的JPStudent属性。 Index视图返回带有日期的时间戳,但是我需要它仅显示日,月和年。

我知道常见的答案是将DateTime转换为字符串以便执行此操作。最初,我要将其转换为字符串,并将其作为另一个属性添加到列表中,因为我需要维护返回item.JPStartDate的相同的lambda表达式(我不应该将该表达式弄乱,因为根据团队规则)。然后,我将在新属性的表达式中切换出item.JPStartDate。但是,当我尝试将日期字符串添加为属性列表中的新属性时,模型文件中出现错误。

JPStudentsController设置:

jPStudent.JPStartDate = DateTime.Now;

所以我在这里尝试了将字符串转换为ddmmyy并得到

  

无法将字符串隐式转换为DateTime

错误。我在这里有点难受。我只需要提取日期,月份和年份,而不必弄乱Index视图的设置方式,以便将date属性返回到该视图。

有人在这种特殊情况下有什么建议吗?我可能错过了一些简单的方法,而我只是现在没有考虑。如果有人对DateTime中的日期,月份和年份有任何建议,我将不胜感激!

2 个答案:

答案 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;

这取决于您是只更改可视化还是更改值。