我在实体中有一个时间数据类型属性字段:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:hh:mm}")]
[DataType(DataType.Time)]
public DateTime BeginTime { get; set; }
在剃刀视图中,我有此代码来创建和编辑
@Html.EditorFor(model => model.BeginTime, new { htmlAttributes = new { @class = "form-control" } })
在创建时,我可以使用时间选择器以正确的格式填写此字段,例如下午 01:15。 在数据库上,它以正确的日期时间格式"2017-10-12 13:15:00.000"存储。
但在编辑时,它显示凌晨 01:15。如果我再次保存对象,它会修改数据库损坏数据的字段,时间为上午 01:15("2017-10-12 01:15:00.000")。
我试过这个:
在"hh:mm tt"中设置属性的显示格式
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:hh:mm tt}")]
[DataType(DataType.Time)]
public DateTime BeginTime { get; set; }
但是在编辑时,它为字段取一个空值,例如 (--:-- ---) 删除保存的数据。
有人知道如何在编辑视图上解决此格式问题吗?
试试这个:-
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:HH:mm}")]
欲了解更多信息:-hh vs hh :-Java HH:mm 和 hh:mm 在 SimpleDateFormat 上的区别
希望它能奏效。