如何从Model.FirstOrDefault()日期转换为短日期格式

时间:2019-01-29 22:05:31

标签: c# asp.net-mvc razor

我正在尝试将日期格式化为短日期格式。在我的视图中使用@ Model.FirstOrDefault()检索日期。我怎样才能重新格式化该短格式? 我也希望能到一个广告一天的日期晚于查看。

我尝试使用.Value.ToShortDateString,但这会给我以下错误:“无法将方法组'ToShortDateString'转换为非委托类型'object'。您打算调用该方法吗?”

我尝试过

@Model.FirstOrDefault().kurser.startdato.Value.ToShortDateString;

哪个给我错误。当我刚使用时:

@Model.FirstOrDefault().kurser.startdato

我得到以下结果:07-01-2019 00:00:00。我想要的是2019年7月1日。这是否有可能,还是我需要一种完全不同的方法?

4 个答案:

答案 0 :(得分:2)

如果起始日期为DateTime 您可以格式化DateTime toString(" "); 像这样:@Model.FirstOrDefault().kurser.startdato.ToString("hh:mm tt",null); 该示例将为您提供DateTime的小时和分钟 如果那是你的意思。 这是一个链接,可用来格式化String format datetime

类型的格式

答案 1 :(得分:1)

我建议使用DataAnnotations。 只需进入模型类,并在date属性之前添加这些注释

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime startdato {get;set;}

还需要添加相关的using指令

using System.ComponentModel.DataAnnotations;

并最终添加所需的参考

System.ComponentModel.DataAnnotations

答案 2 :(得分:1)

您可以通过

var shortDate = yourVariable.ToString("MM-dd-yyyy");

这将花费您的日期并使用.ToString()格式化

答案 3 :(得分:1)

ToShortDateString是一种方法。因此,需要通过添加括号来调用它:

@Model.FirstOrDefault().kurser.startdato.Value.ToShortDateString()