asp.net MVC - 上午/下午不显示



我的模型中有以下字段:

[DataType(DataType.Time)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:hh:mm:ss tt}")]
public DateTime TimeFrom { get; set; }

在我看来,使用以下代码:

@Html.DisplayFor(modelItem => item.TimeFrom)

但是当我启动应用程序时,它显示的只是例如 01:00:00

为什么它不显示上午/下午?

从这篇MSDN文章中,我提取了以下内容:

// This example displays the following output to the console: 
//       d: 6/15/2008 
//       D: Sunday, June 15, 2008 
//       f: Sunday, June 15, 2008 9:15 PM 
//       F: Sunday, June 15, 2008 9:15:07 PM 
//       g: 6/15/2008 9:15 PM 
//       G: 6/15/2008 9:15:07 PM 
//       m: June 15 
//       o: 2008-06-15T21:15:07.0000000 
//       R: Sun, 15 Jun 2008 21:15:07 GMT 
//       s: 2008-06-15T21:15:07 
//       t: 9:15 PM 
//       T: 9:15:07 PM 
//       u: 2008-06-15 21:15:07Z 
//       U: Monday, June 16, 2008 4:15:07 AM 
//       y: June, 2008 
//        
//       'h:mm:ss.ff t': 9:15:07.00 P 
//       'd MMM yyyy': 15 Jun 2008 
//       'HH:mm:ss.f': 21:15:07.0 
//       'dd MMM HH:mm:ss': 15 Jun 21:15:07 
//       'Month: M': Month: 6 
//       'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00

基于此,您似乎只需要以下内容:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:T}")]

获取"9:15:07 PM"作为输出。警告:我还没有测试过这个以确保它有效。

我也不确定为什么你拥有的"tt"没有得到尊重。您是否尝试过使用属性将值写入代码以确保其正常工作?

 string formattedString = myObject.TimeFrom.ToString("{0:hh:mm:ss tt}");

这可能有助于您获得见解,以确保您拥有正确的格式字符串。

更新

我刚刚对我的一个日期字段进行了测试,并将其更改为具有以下内容的时间字段:

    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy hh:mm:ss tt}", ApplyFormatInEditMode = true)]
    [DataType(DataType.Time)]
    public DateTime LastInventory { get; set; }

DateTime.Now 的输出为"06/20/2015 03:12:33 PM"

相关内容

  • 没有找到相关文章

最新更新