mvc查看日期显示格式

时间:2017-12-11 07:49:38

标签: c# asp.net-core-mvc

我的日期数据注释为

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime CreatedOn { get; set; }

在我看来:

 @Html.DisplayFor(item=> item.CreatedOn)

但我的日期显示为11 12 2017,在我看来,11/12/2017的内容。我的/吃了什么?我忘了包括什么?

2 个答案:

答案 0 :(得分:2)

在format-string中,将/包装在单引号中,因此您的模型应如下所示:

[DisplayFormat(DataFormatString = "{0:dd'/'MM'/'yyyy}")]
public DateTime CreatedOn { get; set; }

在页面上呈现时,它使用所需的格式。

Documentation on DataFormatString有关于日期格式的注释,但没有提及有关格式化正斜杠的问题。他们提出的关于设置HtmlEncode = true的解决方案对我不起作用。我在the answer for this similar question.

的备选建议中找到了解决方案

答案 1 :(得分:1)

似乎一切都归结为Culture info。目前看来我们似乎不能在CultureInfo中指定DisplayFormat,所以我最终定义了一个可重用的辅助方法:

public static string FormatDate(this IHtmlHelper helper, DateTime date)
{
  var formattedDate = string.Format(CultureInfo.InvariantCulture, "{0:dd/MM/yyyy}", date);
  return formattedDateWithTime;
}

在我看来:

@Html.FormatDate(Model.CreatedOn)