【问题标题】:TimeOfDay without seconds and millisecond [duplicate]TimeOfDay 没有秒和毫秒[重复]
【发布时间】:2013-12-04 13:10:52
【问题描述】:

我的 asp.net mvc Web 应用程序中有以下代码,其中 StartDate 的类型为 DateTime?:-

@item.StartDate.Value.TimeOfDay

上面将显示当前时间,包括秒和毫秒,例如,我不想要:-

10:17:54.6023744

但是有没有办法用 AM 或 PM 只显示小时:分钟? 谢谢

【问题讨论】:

  • 使用格式和适当的格式字符串。例如 HH:mm 将显示 24 小时,只有分钟日期

标签: c# asp.net-mvc razor


【解决方案1】:

DateTime 的重载为 ToString(),它允许您传递 custom format

DateTime dt = DateTime.Now;
String strDate="";
strDate = dt.ToString("MM/dd/yyyy");   // 07/21/2007 
strDate = dt.ToString("dddd, dd MMMM yyyy");   //Saturday, 21 July 2007
strDate = dt.ToString("dddd, dd MMMM yyyy HH:mm"); // Saturday, 21 July 2007 14:58
strDate = dt.ToString("dddd, dd MMMM yyyy hh:mm tt"); // Saturday, 21 July 2007 03:00 PM
strDate = dt.ToString("dddd, dd MMMM yyyy H:mm"); // Saturday, 21 July 2007 5:01 
strDate = dt.ToString("dddd, dd MMMM yyyy h:mm tt"); // Saturday, 21 July 2007 3:03 PM
strDate = dt.ToString("dddd, dd MMMM yyyy HH:mm:ss"); // Saturday, 21 July 2007 15:04:10
strDate = dt.ToString("MM/dd/yyyy HH:mm"); // 07/21/2007 15:05
strDate = dt.ToString("MM/dd/yyyy hh:mm tt"); // 07/21/2007 03:06 PM
strDate = dt.ToString("MM/dd/yyyy H:mm"); // 07/21/2007 15:07
strDate = dt.ToString("MM/dd/yyyy h:mm tt"); // 07/21/2007 3:07 PM
strDate = dt.ToString("MM/dd/yyyy HH:mm:ss"); // 07/21/2007 15:09:29
strDate = dt.ToString("MMMM dd"); // July 21
strDate = dt.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK"); // 2007-07-21T15:11:19.1250000+05:30    
strDate = dt.ToString("ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"); // Sat, 21 Jul 2007 15:12:16 GMT
strDate = dt.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss"); // 2007-07-21T15:12:57
strDate = dt.ToString("HH:mm"); // 15:14
strDate = dt.ToString("hh:mm tt"); // 03:14 PM
strDate = dt.ToString("H:mm"); // 5:15
strDate = dt.ToString("h:mm tt"); // 3:16 PM
strDate = dt.ToString("HH:mm:ss"); // 15:16:29
strDate = dt.ToString("yyyy'-'MM'-'dd HH':'mm':'ss'Z'"); // 2007-07-21 15:17:20Z
strDate = dt.ToString("dddd, dd MMMM yyyy HH:mm:ss"); // Saturday, 21 July 2007 15:17:58
strDate = dt.ToString("yyyy MMMM"); // 2007 July

【讨论】:

  • 我们可以从this 引导日期选择器添加一个默认时间,例如:datepicker value + TimeofDay 吗?
【解决方案2】:

这将为您完成:

@item.StartDate.Value.TimeOfDay.ToString("HH:mm tt");

【讨论】:

    【解决方案3】:

    我想你正在寻找这个:

    StartDate.Value.TimeOfDay.ToString("hh:mm tt")
    

    【讨论】:

      【解决方案4】:

      使用 ToString(string) 重载并指定格式:

      StartDate.Value.TimeOfDay.ToString("hh:mm tt")
      

      这将与

      相同
      StartDate.Value.ToString("hh:mm tt")
      

      【讨论】:

      • OP 希望有时间在hours,minutesAMPM 但不是与seconds 所以而不是ss tt 会帮助他IMO跨度>
      • 对,我改了
      【解决方案5】:

      如果您使用的是 .NET 4 或更高版本,则可以在转换为字符串时指定格式字符串:

      @item.StartDate.Value.TimeOfDay.ToString("hh mm tt")
      

      但为什么不直接格式化日期/时间而不提取 TimeOfDay?这也适用于早期版本的 .NET:

      @item.StartDate.Value.ToString("hh mm tt")
      

      【讨论】:

        【解决方案6】:

        你试过DateTime.Date吗?

        理想情况下是这样

        @item.StartDate.Value.Date
        

        编辑:

        我没有正确阅读问题,请看这里DateTime.ToString(string)

        【讨论】:

        • 请再读一遍问题。
        • 啊……是的,我现在明白了。好决定。也许这会有所帮助DateTime Formatting
        • 如果您可以使用上述评论/链接编辑您的答案,那就太好了。
        猜你喜欢
        • 2011-04-27
        • 1970-01-01
        • 1970-01-01
        • 2012-06-08
        • 2018-05-17
        • 1970-01-01
        • 2016-08-25
        • 1970-01-01
        • 2018-10-17
        相关资源
        最近更新 更多