2017-02-08 87 views
2

我想格式化我的日期形式爲dd MMM yyyy但我總是得到美國格式mm/dd/yyyy。 我已在我的ViewModel中添加了數據註釋,例如列出的here,但我仍然遇到此問題。我甚至沒有sucess試圖前者標籤助手(TextBoxFor):日期格式ASP.Net核心

視圖模型

[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> 

謝謝您的幫助

我使用ASP.Net核心1.1.0

Sylvain

+0

DisplayFormat不適合'TextBoxFor'工作,並可以在'EditorFor/DisplayFor'僅用於 – Set

回答

0

您應該使用EditorFor,默認情況下它應該呈現文本框(如果沒有,您可以放置​​自己的編輯器)。 EditorFor應該尊重你的DataFormatString(TextBoxFor不)。

0

您可以使用ParseExact()來獲得預期的格式。

假設你有串string.Format("{0} {1}", Date, Time)格式DD/MM/YYYY hh:mm tt07/05/2017 12:00 PM那麼你可以做到這一點,

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