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