一尘不染

如何在DateTime中更改时间?

c#

如何仅更改DateTime变量“ s”中的时间?

DateTime s = some datetime;

阅读 1169

收藏
2020-05-19

共1个答案

一尘不染

您无法更改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数据库条目

2020-05-19