MVC ASP.NET 自定义日期时间格式

本文关键字:时间 格式 日期 自定义 ASP NET MVC | 更新日期: 2023-09-27 18:34:11

我有 ASP.NET MVC Create View。

此视图绑定了包含两个 DateTime 对象的 ViewModel:

[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime When { get; set; }
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime Until { get; set; }

我像这样将其绑定到日期选择器:

@Html.EditorFor(model => model.When, new { @class = "form-control ui-datepicker-my" })
@Html.EditorFor(model => model.Until, new { @class = "form-control ui-datepicker-my" })

日期选择器的配置如下:

<script type="text/javascript">
    $().ready(function()
    {
        $(".ui-datepicker-my").datepicker({
            dateFormat: "dd-mm-yy"
        });
    });
</script>

问题是当我发布表单时,我的模型无效。我的意思是日期"22-02-2014"被转换为错误的格式(它试图将"22"读作月份)

我不想惹全球文化。

怎么办?

我试过像这样编辑它:

@Html.EditorFor(model => model.When,"{0:dd-MM-yyyy}", new { @class = "form-control ui-datepicker-my" })

但没有进展

MVC ASP.NET 自定义日期时间格式

如果你真的坚持不为应用程序/页面设置文化(它会咬你)。 您可以使用它:

DateTime.TryParseExact(inputedDateString, formatOfInput, CultureInfo.GetCultureInfo("en-GB"), DateTimeStyles.None, out result))

所以像

DateTime myDate  = DateTime.MinValue;
string valueFromForm = "22-02-2014";
DateTime.TryParseExact(valueFromForm , "dd-MM-yyyy", CultureInfo.GetCultureInfo("en-GB"), DateTimeStyles.None, out myDate))