C#添加+1天,并将小时设置为08:00:00

时间:2016-01-16 16:43:46

标签: c# datetime

我有来自数据库的DateTime字段,例如:2013-06-18 17:00:00.000 从这个值我需要添加+ 1天,并将小时设置为08:00:00 因此,在这种情况下,新值将为2013-06-19 08:00:00.000 这意味着新的日期值从第8天开始,从第二天开始。

我知道C#中的AddHours(...)方法DateTime,但我不知道在这种情况下它可能会有什么帮助。

5 个答案:

答案 0 :(得分:7)

var dateTime = DateTime.Now;  //example date
dateTime.AddDays(1).Date.AddHours(8)

答案 1 :(得分:1)

您可以按构造函数覆盖实例化DateTime对象 public DateTime(int year, int month, int day, int hour, int minute, int second);

像这样:

string dbDate = "2013-06-18 17:00:00.000";
DateTime inputDate = DateTime.Parse(dbDate).AddDays(1);
DateTime toReturnDate = new DateTime(inputDate.Year, inputDate.Month, inputDate.Day, 8, 0, 0);

答案 2 :(得分:1)

您可以将TimeSpan对象添加到DateTime对象以获取新的DateTimes:

var dt = new DateTime(2013, 06, 13, 17, 55, 54); //17:55:54 at june 13, 2013
var tomorrow8am = dt.Date + // Take only date segment, omitting hours
    TimeSpan.FromDays(1) + // Add 1 day
    new TimeSpan(8, 0, 0); // Add the hour segment`

请注意,DateTime对象是不可变的,您不能设置任何属性。您只能使用上述方法或类似方法创建具有所需属性的新实例。

答案 3 :(得分:0)

    var dateDb = new DateTime(2013,6,1, 17,0,0); // date from database
    var date1 = new DateTime(dateDb.Year, dateDb.Month, dateDb.Day)
             .AddHours(24)
             .AddHours(8);  // this is what you need :-)

答案 4 :(得分:0)

我认为应该这样做,假设一个名为oldDate的变量保存了你从数据库中获得的值:

DateTime newDate = new DateTime(oldDate.Year, oldDate.Month, oldDate.Day, 8, 0, 0).AddDays(1);