Asp.net core 日期格式ASP.Net内核

Asp.net core 日期格式ASP.Net内核,asp.net-core,Asp.net Core,我正在尝试将我的日期格式化为dd-MMM-yyyy格式,但我总是使用美国格式mm/dd/yyyy。 我已经在ViewModel中添加了数据注释,如列表所示,但仍然存在问题。我甚至尝试过以前的标签助手(TextBoxFor),但都没有成功: 视图模型 [DataType(DataType.Date, ErrorMessage = "Date only")] [DisplayName("Date to"), DisplayFormat(DataFormatString = "{0:dd MMM yy

我正在尝试将我的日期格式化为dd-MMM-yyyy格式,但我总是使用美国格式mm/dd/yyyy。 我已经在ViewModel中添加了数据注释,如列表所示,但仍然存在问题。我甚至尝试过以前的标签助手(TextBoxFor),但都没有成功:

视图模型

[DataType(DataType.Date, ErrorMessage = "Date only")]
[DisplayName("Date to"), DisplayFormat(DataFormatString = "{0:dd MMM yyyy}", ApplyFormatInEditMode = true)]
public virtual DateTime? date_to { get; set; }
查看

<label asp-for="date_to" class="col-md-2 control-label"></label>
            <div class="col-md-4">
                @*@Html.TextBoxFor(x => x.date_to, new { @class = "form-control datepicker", placeholder = "Sampling date to" })*@                
                <input type="datetime" asp-for="date_to" class="form-control datepicker" placeholder="Sampling date to"/>
            </div>

@*@Html.TextBoxFor(x=>x.date_to,新的{@class=“form control datepicker”,placeholder=“Sampling date to”})*@
谢谢你的帮助

我正在使用ASP.NETCore1.1.0


Sylvain

您应该使用EditorFor,默认情况下它应该呈现一个文本框(如果没有,您可以将自己的编辑器放入)。EditorFor应该尊重您的DataFormatString(TextBoxFor不尊重)。

您可以使用
ParseExact()
来获取所需的格式

假设您有字符串
string.Format(“{0}{1}”,日期,时间)
格式
DD/MM/YYYY hh:MM tt
比如
07/05/2017 12:00 PM
,那么您可以通过

DateTime.ParseExact(string.Format("{0} {1}", Date, Time), 
      "DD/MM/YYYY hh:mm tt", CultureInfo.InvariantCulture);

DisplayFormat不适用于
TextBoxFor
,只能在
EditorFor/DisplayFor