【问题标题】:how to convert datetime in format 23:59:59如何将日期时间转换为 23:59:59 格式
【发布时间】:2026-02-13 07:55:01
【问题描述】:

我有两个约会 FromDatetoDate

像下面这样转换日期并作为参数传递给存储过程:

两个变量都是DateTime FromDate,DateTime toDate变量

初始值类似于{10/1/2013 12:00:00 AM}

我已使用以下代码将其转换为 {10/1/2013 00:00:00}

  sparamFromDate.Value = FromDate.ToString("yyyy-MM-dd HH:mm:ss");

  sparamToDate.Value = toDate.ToString("yyyy-MM-dd HH:mm:ss");

这给了我 FromDate 的预期结果:2013-10-11 00:00:00.000

但我需要以下格式的 todate,如何将其转换为代码?

到日期:2013-10-11 23:59:59.000

【问题讨论】:

  • FromDate 和 toDate 是否有时间分量?
  • FromDate 和 toDate 变量的初始值是多少?
  • 如果你想要一天的结束 - 你真的不想要 2013-10-11 23:59:59.999 吗?

标签: c# asp.net-mvc date datetime


【解决方案1】:
toDate.ToString("yyyy-MM-dd 23:59:59.000");

toDate 只是日期还是具有时间组件都没有关系 - 输出将是相同的,并且是您想要的。

【讨论】:

  • 感谢简单的一个,但我更喜欢添加方法和时间跨度云是更好的选择:)
【解决方案2】:
toDate.Value = toDate.ToString("yyyy-MM-dd HH:mm:ss.nnn");

【讨论】:

    【解决方案3】:

    我相信您要求 toDate 包含该日期内的所有分钟,而不管日历时间的实际时间部分。

    下面的表达式应该达到这个结果:

    toDate.Date.Add(new TimeSpan(0, 23, 59, 59, 999)).ToString("yyyy-MM-dd HH:mm:ss.nnn");
    

    沃尔的回答其实更简单。

    您还应该使用 InvariantCulture 来执行 ToString() 操作,因为您最终可能会使用“:”或“-”以外的其他内容作为日期和时间字段分隔符。这可能会混淆您的数据库引擎。

    【讨论】:

      【解决方案4】:

      您可以获取一天结束的 DateTime,然后获取 ToString(),使用:

      toDate.Date.AddDays(1).AddMilliseconds(-1)
      

      【讨论】: