将2个不同的datetime变量中的部分组合成一个新的datetime变量

时间:2019-04-01 15:37:01

标签: c#

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

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

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)

是否有更优雅的方法?

谢谢!

1 个答案:

答案 0 :(得分:4)

好的。

var result = fl.Value.Date + g.Value.TimeOfDay;

DateTime.Date返回一个DateTime,其时间部分设置为午夜。 DateTime.TimeOfDay得到一个TimeSpan,其中包含自午夜以来经过的那部分时间。

请确保两个DateTimes具有相同的Kind,否则结果可能与您的预期不符。