如何将格式为23:59:59的日期时间转换

3

我有两个日期变量FromDatetoDate

将这些日期转换为以下格式并将其作为参数传递到存储过程中:

两个变量都是DateTime类型的Fromdate、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,怎么在代码中转换呢?

todate: 2013-10-11 23:59:59.000


FromDate和toDate是否带有时间组件? - Farhan Ghumra
FromDate和toDate变量的初始值是什么? - Aleksei Chepovoi
如果你想要一天中的最后一刻,你实际上是想要2013-10-11 23:59:59.999吗? - Code Uniquely
4个回答

5
toDate.ToString("yyyy-MM-dd 23:59:59.000");

无论 toDate 是只有日期还是包含时间,输出结果都将相同,符合你的需求。

谢谢提供简单的方法,但我更喜欢使用Add方法和TimeSpan,这可能是更好的选择 :) - Neo

2

我相信你想要toDate包括该日期内的所有分钟,而不考虑日历时间的实际时间部分。

以下表达式应该可以实现这个结果:

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

Wal的回答实际上更简单。

您还应该使用InvariantCulture执行ToString()操作,因为您可能会得到其他内容作为日期和时间字段分隔符的字符,这可能会使您的数据库引擎混淆。


1
您可以获取一天的结束时间并使用ToString()方法将其转换为字符串,具体方法如下:
toDate.Date.AddDays(1).AddMilliseconds(-1)

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接