将两个日期时间变量合并为一个(精确到秒)

26

我有一个小问题,似乎无法解决。 我有两个日期时间变量,其中一个包含年月日的重要数据,另一个日期时间变量存储小时、分钟和秒。

这种混乱的原因是因为我从数据库中获取数据,该数据库有两个不同的列来存储实际日期和时间。以下是代码:

DateTime date = Convert.ToDateTime(dTable.Rows[i][0]);
DateTime time = Convert.ToDateTime(dTable.Rows[i][1]);

DateTime newDateTime = new DateTime();

新的日期时间需要设置完整的日期时间,其中日期部分在日期变量中,时间部分在时间变量中。


这个回答解决了您的问题吗?在C#中将日期和时间联接为DateTime - malat
4个回答

48

这样应该可以:

newDateTime = date.Date + time.TimeOfDay;

这是保留毫秒精度的正确答案。 - malat

10

使用这个构造函数

DateTime newDateTime = new DateTime(date.Year, date.Month, date.Day, 
                                    time.Hour, time.Minute, time.Second);

你正在失去毫秒级精度,例如:time = TimeSpan.FromMilliseconds(0.5) - malat
@malat,原帖中指定了“另一个日期时间变量存储小时、分钟和秒钟”,因此没有丢失任何信息。 - vc 74

3
DateTime newDateTime = date.Date.Add(time.Time);
< p > Date属性不包括任何时间组件(实际上是指定日期的午夜),而 Time 属性仅返回时间组件作为 TimeSpan 。 < / p > < p > 在这里,我们从 date 变量中获取日期部分以获得午夜,并添加到 time 变量的时间部分,以获取正确的日期和时间。< / p >

1
你可以像下面这样做:
    TimeSpan timeSpan = time.TimeOfDay;
        string s = string.Format("{0} {1}", date.Date.ToString("MM dd yyyy"), time.ToString());
        DateTime combinedDateTime = DateTime.Parse(s);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接