我的数据库中有几个DateTime字段。正常情况下,我刚刚在我的模型中创建了如下代码:
[Display(Name = "Downtime start")]
public DateTime? Downtime_start { get; set; }注意:它必须是可空的。
所以这很好用。但问题是,它还到处显示秒,这有点恼人。
所以我不能通过在我的模型中做一些解析来解决这个问题吗?像这样的东西?
private string Parsed_Downtime_start;
[Display(Name = "Downtime_start")]
public DateTime? Downtime_start
{
get
{
if (Parsed_Downtime_start != null)
{
return DateTime.Parse(Parsed_Downtime_start);
}
else
{
return null;
}
}
set
{
if (value != null)
{
Parsed_Downtime_start = value.Value.ToString("MM/dd/yyyy hh:mm tt");
}
else
{
Parsed_Downtime_start = null;
}
}
}这并没有真正改变任何事情。但是,如果我以另一种方式将其作为字符串保存到DB中,并将其解析为DateTime,则可以很好地工作。但我并不是真的想将DateTimes作为字符串保存在数据库中。
发布于 2014-09-01 19:43:16
这个问题的解决方案变得有点复杂,因为我必须让它与Javascript Datetimepciker插件一起工作。(https://github.com/xdan/datetimepicker),并且格式必须非常具体。
所以我最终创建了一个帮助器方法。
namespace MvcHtmlHelpers
{
public static class MvcHtmlHelpers
{
public static string ToString(this DateTime inputDate, bool FixTime)
{
if (FixTime)
{
string returnString;
if (inputDate == DateTime.MinValue)
{
returnString = "N/A";
}
else
{
returnString = inputDate.ToShortDateString() + ' ' + inputDate.ToShortTimeString();
}
return returnString;
}
return inputDate.ToString();
}
}
}我的表单有一个“查看阶段”和一个由编辑按钮控制的“编辑模式阶段”。我重载了.Value.ToString(true)方法来使用helper方法来正确地格式化日期。
<section class="col col-4">
<label class="label">@Html.DisplayNameFor(model => model.Downtime_start)</label>
<label class="input edit-case">
<i class="icon-append fa fa-calendar"></i>
<input type="text" id="Downtime_start" value="@Model.Downtime_start.Value.ToString(true)">
</label>
<label class="input state-disabled view-case">
<i class="icon-append fa fa-calendar"></i>
<input type="text" id="lbl_Downtime_start" disabled="disabled" value="@Model.Downtime_start.Value.ToString(true)">
</label>
</section>发布于 2014-08-15 15:43:02
试着使用
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]它适用于EditorFor和DisplayFor帮助器
发布于 2014-08-15 15:45:28
当您使用此属性时
Convert.ToDateTime(Downtime_start).ToLongDateString()反转(保存到db)应允许小时、秒和分钟。
https://stackoverflow.com/questions/25322803
复制相似问题