如何在c#中组合日期和时间

时间:2013-11-30 11:05:51

标签: c# asp.net vb.net

我有2个值:

var dt1 = dtFromDate.Value;
var tm1 = tmFromTime.Value;


dt1 = 12/5/2013 12:00:00 AM

tm1 = 11/5/2013 9:00:00 AM

我想将日期时间设为:12/5/2013 9:00:00 AM

怎么可能?

4 个答案:

答案 0 :(得分:2)

您可以使用重载的constructor创建新的DateTime

DateTime dt = new DateTime(
                    dt1.Year, 
                    dt1.Month, 
                    dt1.Day, 
                    tm1.Hour, 
                    tm2.Minute, 
                    tm2.Second);

答案 1 :(得分:1)

您可以访问dt1Date的时间部分访问tm1,然后使用TimeOfDay合并它们,从而获取+的日期部分:

dt1.Date + tm1.TimeOfDay

答案 2 :(得分:0)

您可以使用该代码,使用Date属性获取日期部分和Time属性以获得时间部分:

var dt1 = DateTime.Parse("12/5/2013 12:00:00 AM"); // this is just a sample date
var tm1 = DateTime.Parse("11/5/2013 9:00:00 AM"); // this is just a sample date

var newDate = dt1.Date.Add(tm1.TimeOfDay); // the code to use

答案 3 :(得分:0)

DateTime对象是不可变的,因此为了从一个DateTime对象获取日期,而从另一个对象获取时间 - 您必须创建新的DateTime对象。 有两种方法可以做到:

使用构造函数重载创建新的DateTime:

DateTime date1 = 
    new DateTime(dt1.Year, dt1.Month, dt1.Day, tm1.Hour, tm1.Minute, tm1.Second);

将字符串解析为DateTime:

var dateToParse = 
      String.Concat(dt1.ToString("yyyy.MM.dd ", CultureInfo.InvariantCulture), 
                    tm1.ToString("HH:mm:ss", CultureInfo.InvariantCulture));
var date1 = 
      DateTime.ParseExact(dateToParse, "yyyy.MM.dd HH:mm:ss", CultureInfo.InvariantCulture);