C#如何将本地日期转换为UTC时间00:00:00和23:59:59?

C#如何将本地日期转换为UTC时间00:00:00和23:59:59?,c#,asp.net-mvc,datetime,C#,Asp.net Mvc,Datetime,我有一个存储过程,它返回日期范围之间的数据。在将开始日期和结束日期转换为UTC后,我将它们作为参数发送。由于时间的关系,我面临着困难 例如: var now = DateTime.Now(); var startDate = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0); var endDate = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59); 起始日期:2019-08

我有一个存储过程,它返回日期范围之间的数据。在将开始日期和结束日期转换为UTC后,我将它们作为参数发送。由于时间的关系,我面临着困难

例如:

var now = DateTime.Now();
var startDate = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0);
var endDate = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59);
  • 起始日期:2019-08-05T06:11:02.676Z
  • 结束日期:2019-08-05T06:11:02.676Z
我无法获得8月5日的数据

为此,我需要datetime格式,比如

  • 开始日期:2019-08-05T00:00:00
  • 结束日期:2019-08-05T23:59:59

请帮助我导出上述日期时间格式。

只需使用时间集创建两个DateTimes对象,例如:

var now = DateTime.Now();
var startDate = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0);
var endDate = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59);

您可以使用
DateTime.Now.Date()
仅获取
Date
并仅比较日期

var dateAndTime = DateTime.Now;
var date = dateAndTime.Date;

您想将日期转换为格式
2019-08-05T00:00:00
还是想要一个日期字符串?我想要格式为日期=>StartDate:2019-08-05T00:00:00&EndDate:2019-08-05T23:59:59
EndDate:2019-08-05T23:59:59
为什么需要它?如果要进行某种过滤,标准解决方案是使用
EndDateExclusive
并将其设置为
2019-08-06
。然后使用
。这避免了在一天结束时出现毫秒的奇怪边缘情况。这将不会捕获从
endDate
到下一个日期开始之间的任何datetime条目(例如,设置了毫秒)。我强烈建议阅读我之前的评论。