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
但我看不出它在这种情况下有什么帮助。
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);