如何设置时间到当天午夜?

每次我在我的mvc3应用程序中创build一个不可空的date时间,它默认为now(),现在是当前date和当前时间。 我想把它默认为今天的上午12点。

我试图默认时间在我的MVC …但是…以下是不是设置为今天的date@ 12am。 相反,它默认使用当前的date和时间。

private DateTime _Begin = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 12, 0, 0); public DateTime Begin { get { return _Begin; } set { _Begin = value; } } 

我怎样才能设置为不可空date时间的当前date上午12点?

您可以使用DateTime对象的Date属性 – 例如

 DateTime midnight = DateTime.Now.Date; 

所以你的代码示例变成了

 private DateTime _Begin = DateTime.Now.Date; public DateTime Begin { get { return _Begin; } set { _Begin = value; } } 

PS。 回到你原来的代码设置小时为12会给你当天中午的时间,所以相反,你可以使用0

 var now = DateTime.Now; new DateTime(now.Year, now.Month, now.Day, 0, 0, 0); 

我相信你正在寻找DateTime.Today 。 文档说明

An object that is set to today's date, with the time component set to 00:00:00.

http://msdn.microsoft.com/en-us/library/system.datetime.today.aspx

你的代码是

 DateTime _Begin = DateTime.Today; 

只需要将其设置为

DateTime.Now.Date

  Console.WriteLine(DateTime.Now.Date.ToString("yyyy-MM-dd HH:mm:ss")); Console.Read(); It shows "2017-04-08 00:00:00" on my machine. 

使用上面的一些build议,以下function和代码正在searchdate范围:

设置时间组件设置为00:00:00的date

 public static DateTime GetDateZeroTime(DateTime date) { return new DateTime(date.Year, date.Month, date.Day, 0, 0, 0); } 

用法

 var modifieddatebegin = Tools.Utilities.GetDateZeroTime(form.modifieddatebegin); var modifieddateend = Tools.Utilities.GetDateZeroTime(form.modifieddateend.AddDays(1)); 

尝试一下……

DateTime Date = DateTime.Now.AddHours(-DateTime.Now.Hour).AddMinutes(-DateTime.Now.Minute).AddSeconds(-DateTime.Now.Second);

OutPut会…

07/29/2015 00:00:00