日期格式ASP.Net核心

时间:2017-02-08 23:10:46

标签: asp.net-core

我试图以dd MMM yyyy的形式格式化我的日期,但我总是得到美国格式mm / dd / yyyy。 我在我的ViewModel中添加了数据注释,如列出的here,但我仍然有问题。我甚至尝试过没有成功的前标签助手(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>

感谢您的帮助

我正在使用ASP.Net Core 1.1.0

西尔

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以使用ParseExact()来获得预期的格式。

假设您的格式string.Format("{0} {1}", Date, Time)格式为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);