我如何才能改变我的DateTime变量“s”的时间?
DateTime s = some datetime;
我如何才能改变我的DateTime变量“s”的时间?
DateTime s = some datetime;
当前回答
试试这个
var NewDate = Convert.ToDateTime(DateTime.Now.ToString("dd/MMM/yyyy")+" "+"10:15 PM")/*Add your time here*/;
其他回答
碰巧看到这篇文章,因为我正在寻找相同的功能,这可能会做什么人想要的。取原日期,更换时间部分
DateTime dayOpen = DateTime.Parse(processDay.ToShortDateString() + " 05:00 AM");
DateTime出了什么问题。AddSeconds方法,您可以添加或减去秒?
你不能改变DateTime值——它是不可变的。但是,您可以将变量更改为新的值。要更改时间,最简单的方法是创建具有相关时间的TimeSpan,并使用DateTime。日期属性:
DateTime s = ...;
TimeSpan ts = new TimeSpan(10, 30, 0);
s = s.Date + ts;
S现在是相同的日期,但在上午10点半。
注意,DateTime不考虑日光节约时间的转换,在两个方向上表示“朴素”格里高利时间(参见DateTime文档中的备注部分)。唯一的例外是. now和. today:它们检索反映这些事件发生时的当前系统时间。
这就是促使我开始Noda Time项目的原因,现在这个项目已经可以投入生产了。它的zoneeddatetime类型通过将其链接到tz数据库条目而变得“可感知”。
将. date添加到日期中将其设置为午夜(00:00)。
MyDate.Date
注意,等价的SQL是CONVERT(DATETIME, CONVERT(DATE, @MyDate))
这个方法之所以这么好,是因为它既快速输入,又易于阅读。额外的好处是不需要从字符串进行转换。
例如,要将今天的日期设置为23:30,使用:
DateTime.Now.Date.AddHours(23).AddMinutes(30)
当然,您可以替换DateTime。现在或MyDate,你可以选择任何日期。
如果已经将时间存储在另一个DateTime对象中,则可以使用Add方法。
DateTime dateToUse = DateTime.Now();
DateTime timeToUse = new DateTime(2012, 2, 4, 10, 15, 30); //10:15:30 AM
DateTime dateWithRightTime = dateToUse.Date.Add(timeToUse.TimeOfDay);
TimeOfDay属性是一个TimeSpan对象,可以传递给Add方法。因为我们使用了dateToUse变量的Date属性,所以我们只得到日期并添加时间跨度。