您无法更改DateTime值-
它是不可变的。但是,您可以将变量更改为具有新值。更改时间的最简单方法是使用相关时间创建一个TimeSpan,并使用DateTime.Date属性:
DateTime s = ...;TimeSpan ts = new TimeSpan(10, 30, 0);s = s.Date + ts;
s现在将是同一日期,但是上午10.30。
请注意,
DateTime忽略夏时制的转换,表示两个方向的“原始”格里高里时间(请参阅
DateTimedocs中的“备注”部分)。唯一的例外是
.Now和
.Today:它们检索当前系统时间,该时间反映这些事件的发生。
这种事情促使我启动了Noda
Time项目,该项目现已投入生产。它的
ZonedDateTime类型是由“知道”
通过其链接到一个
tz数据库条目。



