将来自 2 个不同日期时间变量的部分组合成一个新的日期时间变量

我有 2 个日期时间对象需要合并。

这包含正确的日期,但不需要时间部分。

DateTime? sessionDate = fl.EventDateTimeStart

这包含正确的时间,但日期部分需要是上面 sessionDate 对象的日期值。

DateTime? sessionStartTime = g.GameStartTime.Value

我尝试使用各种 DateTime toString() 方法中的一些,但发现因为它们是类的一部分,所以它们需要保留 DateTime? 类型,所以我不能只将它们转换为字符串。

所以我想出了这个非常丑陋的方法:

                sessionStartTime = new DateTime(
                    fl.EventDateTimeStart.Value.Year, 
                    fl.EventDateTimeStart.Value.Month, 
                    fl.EventDateTimeStart.Value.Day, 
                    g.GameStartTime.Value.Hour, 
                    g.GameStartTime.Value.Minute, 
                    g.GameStartTime.Value.Second)

有没有更优雅的方法来做到这一点?


饮歌长啸
浏览 57回答 1
1回答

皈依舞

当然。var result = fl.Value.Date + g.Value.TimeOfDay;DateTime.Date返回DateTime时间部分设置为午夜的 a。DateTime.TimeOfDay获取TimeSpan包含自午夜以来经过的一天的分数。确保你的两者都DateTimes具有相同的Kind,否则结果可能不是你所期望的。
打开App,查看更多内容
随时随地看视频慕课网APP