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

本文关键字:设置 小时 添加 | 更新日期: 2023-09-27 18:30:36

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

我知道 C# 中有一个AddHours(...)的方法DateTime但我看不出它在这种情况下有什么帮助。

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

var dateTime = DateTime.Now;  //example date
dateTime.AddDays(1).Date.AddHours(8)
你可以根据

构造函数覆盖实例化你的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);

您可以将 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 对象是不可变的,不能设置任何属性。您只能使用上述方法或类似方法创建具有所需属性的新实例。

    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 :-)
我认为

这应该可以做到,假设一个名为 oldDate 的变量保存您从数据库中获得的值:

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