2012-02-15 31 views
17

Tôi có một vấn đề nhỏ mà tôi dường như không thể giải quyết được. Tôi có hai biến datetime, dữ liệu quan trọng trong một là năm, tháng và ngày. Biến datetime khác lưu trữ giờ, phút và giây.Kết hợp hai biến datetime vào một

Lý do cho sự hỗn loạn này là do cơ sở dữ liệu mà tôi đang lấy dữ liệu từ đó, chúng có hai cột khác nhau để lưu trữ ngày và giờ thực tế. Đây là mã số:

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

      DateTime newDateTime = new DateTime(); 

newDateTime cần có bộ ngày giờ hoàn chỉnh, trong đó phần ngày trong biến ngày và phần thời gian nằm trong biến thời gian.

Nếu có ai có thể giúp đỡ tôi sẽ rất hạnh phúc :)

Trả lời

35

này nên làm:

newDateTime = date.Date + time.TimeOfDay; 
7

Sử dụng this constructor.

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

Nhờ điều này cũng làm việc – user1035217

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

Thuộc tính Date không bao gồm bất kỳ thành phần thời gian (hiệu quả nửa đêm của ngày quy định), và Time lợi nhuận bất động sản chỉ là thành phần thời gian như một TimeSpan.

Ở đây, chúng tôi lấy phần ngày của biến số date để nhận nửa đêm và thêm vào thành phần thời gian của biến số time để có ngày và giờ chính xác.

1

Bạn có thể làm một cái gì đó như thế này dưới đây

TimeSpan timeSpan = time.TimeOfDay; 
     string s = string.Format("{0} {1}", date.Date.ToString("MM dd yyyy"), time.ToString()); 
     DateTime combinedDateTime = DateTime.Parse(s); 
Các vấn đề liên quan