在我的ASP.NET MVC5项目中,我想用DateTime
编辑Html.TextBox
类型,以本地时间的短日期格式显示从数据库返回的日期。在Chrome浏览器和input type="date"
标记中使用HTML5,我必须使用ISO-8601格式的value
属性。我可以轻松弄清楚如何执行此操作的唯一方法是在我的编辑器模板中使用日期格式字符串"{0:yyyy-MM-dd}"
。
如果将日期格式字符串硬编码到"{0:yyyy-MM-dd}"
是显示日期的唯一方法,或者是否有其他方法可以使用短日期格式指定符合的文化或模板格式,请告诉我ISO-8601日期standards。例如,"{0:d}"
以某种方式CultureInfo.CreateSpecificCulture(something)
。
我知道由于input type=date
不断发展的支持,不一定建议使用HTML5,这不是这个问题的内容。我也意识到"{0:yyyy-MM-dd}"
可能比使用文化容易得多,我只是很好奇。
我的cshtml EditorTemplate为我的可空DateTime
类型:
@model DateTime?
@if (Model != null)
{
@Html.TextBox("", Model, "{0:yyyy-MM-dd}", new { @type = "date" }) // all datetime's in my preexisting database deal with just the date portion.
}
else
{
@Html.TextBox("", "", new { @type = "date" })
}