Because that's exactly what you've told it to do. :)
What you've got there would work fine as a display template. For an editor template, you'll need to render an editable control.
Here's a simplistic example:
@model DateTime?
@{
var htmlAttributes = new { type = "date", @class = "form-control", placeholder = ViewData.ModelMetadata.Watermark };
}
@Html.TextBox("", Model?.ToString("yyyy-MM-dd"), htmlAttributes)
NB: The
HTML date
input[
^] uses the unambiguous format
"yyyy-MM-dd"
both for the
value
attribute and when posting the value back to the server. Most browsers will automatically adjust this to match the user's display settings.