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" })
但没有进展
如果你真的坚持不为应用程序/页面设置文化(它会咬你)。 您可以使用它:
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))