当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并将这些值转换为时间戳。