当date是DateTime并且时间是string时,组合date和时间

我正在使用一个旧的MySQL数据库,其中一个date被存储(没有时间)作为一个date时间和一个时间被存储为一个string(没有date)。

在C#中,我有一个像DateTime 2010-06-25 12:00:00 AM和一个值为15:02的string。

什么是最简洁的方式来结合这些没有大量的开销?

我已经尝试了几种方法,包括:

 DateTime NewDateTime = DateTime.Parse(OldDateTime.ToString("yyyy-MM-dd ") + TimeString); 

我不喜欢将现有的DateTime转换为一个string并追加时间。

我可以将时间string转换为date,但是我得到今天的date,并将其添加为旧的date时间的数量不正确。

注意:不要担心validation,这是在别处完成的。 时间用24小时制表示,不用秒。

您可以使用TimeSpan.Parseparsing时间,然后将结果添加到date:

 DateTime newDateTime = oldDateTime.Add(TimeSpan.Parse(timeString)); 
 var dt = new DateTime(2010, 06, 26); // time is zero by default var tm = TimeSpan.Parse("01:16:50"); var fullDt = dt + tm; // 2010-06-26 01:16:50 

我用了类似于simendsjo说的东西,除了我继续把它作为DateTime

 DateTime date = Convert.ToDateTime(txtTrainDate.Text); DateTime time = Convert.ToDateTime(ddTrainTime.SelectedValue); DateTime dtCOMPLTDTTM = new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second); 

我想你太担心string转换了。 通过将2个string元素组合在一起,您将保存进一步的datestringparsing,这很可能会更昂贵。

这是否会重复很多次,或在一个更大的过程中一个简单的步骤?

我相当肯定你可以结合使用SQL并将这些值转换为时间戳。