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

本文关键字:一个 变量 两个 日期 时间 合并 | 更新日期: 2023-09-27 18:24:35

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

造成这种混乱的原因是我从中提取数据的数据库,它们有两个不同的列来存储实际日期和时间。这是代码:

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

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

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

这应该做:

newDateTime = date.Date + time.TimeOfDay;

使用此构造函数:

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

Date属性排除任何时间分量(实际上是指定日期的午夜),而Time属性仅将时间分量作为TimeSpan返回。

在这里,我们取date变量的日期部分来获得午夜,并将time变量的时间分量添加到其中,以获得正确的日期和时间。

你可以在下面做这样的事情

    TimeSpan timeSpan = time.TimeOfDay;
        string s = string.Format("{0} {1}", date.Date.ToString("MM dd yyyy"), time.ToString());
        DateTime combinedDateTime = DateTime.Parse(s);