我如何才能改变我的DateTime变量“s”的时间?

DateTime s = some datetime;

当前回答

一个衬套

var date = DateTime.Now.Date.Add(new TimeSpan(4, 30, 0));

将带回今天的日期,时间为4:30:00,取代DateTime。现在对于任何date对象

其他回答

将. date添加到日期中将其设置为午夜(00:00)。

MyDate.Date

注意,等价的SQL是CONVERT(DATETIME, CONVERT(DATE, @MyDate))

这个方法之所以这么好,是因为它既快速输入,又易于阅读。额外的好处是不需要从字符串进行转换。

例如,要将今天的日期设置为23:30,使用:

DateTime.Now.Date.AddHours(23).AddMinutes(30)

当然,您可以替换DateTime。现在或MyDate,你可以选择任何日期。

你不能改变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数据库条目而变得“可感知”。

DateTime出了什么问题。AddSeconds方法,您可以添加或减去秒?

如果你有一个像2014/02/05 18:19:51这样的DateTime,并且只想要2014/02/05,你可以这样做:

_yourDateTime = new DateTime(_yourDateTime.Year, _yourDateTime.Month, _yourDateTime.Day)
  DateTime s;
//s = datevalue
                s = s.AddMilliseconds(10);
                s = s.AddMinutes(10);
                s = s.AddSeconds(10);
                s = s.AddHours(10);

您可以在参数中添加+ve/-ve值。

s.Add(new TimeSpan(1, 1, 1));