为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
饮歌长啸 2022-11-21 21:44:33

我有 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)

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


查看完整描述

1 回答

?
皈依舞

TA贡献1570条经验 获得超3个赞

当然。

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

DateTime.Date返回DateTime时间部分设置为午夜的 a。DateTime.TimeOfDay获取TimeSpan包含自午夜以来经过的一天的分数。

确保你的两者都DateTimes具有相同的Kind,否则结果可能不是你所期望的。


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 4 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信