2012-02-15 124 views
17

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

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

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

      DateTime newDateTime = new DateTime(); 

的newDateTime需要有完整的日期时间集,其中的日期部分是在日期变量和时间部分是时间变量。

如果任何人都可以帮帮忙我会很开心:)

回答

35

这应该这样做:

newDateTime = date.Date + time.TimeOfDay; 
7

使用this constructor

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

由于这样的事情,这也工作 – user1035217 2012-02-15 13:51:42

3
DateTime newDateTime = date.Date.Add(time.Time); 

Date财产不包括任何时间成分(指定日期的有效午夜),以及Time属性返回只是时间成分为TimeSpan

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

1

你可以做以下

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