我的日期数据注释为
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime CreatedOn { get; set; }
在我看来:
@Html.DisplayFor(item=> item.CreatedOn)
但我的日期显示为11 12 2017
,在我看来,11/12/2017
的内容。我的/
吃了什么?我忘了包括什么?
答案 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)