结合日期是DateTime的日期和时间,时间是一个字符串

JYe*_*ton 41 c# datetime

我正在使用一个旧的mysql数据库,其中存储日期(没有时间)作为日期时间,时间存储为字符串(没有日期).

在C#I中,我有一个类似值的DateTime和一个类似值2010-06-25 12:00:00 AM的String 15:02.

在没有大量开销的情况下结合这些内容的最简洁方法是什么?

我尝试过几种方法,包括:

DateTime NewDateTime = DateTime.Parse(OldDateTime.ToString("yyyy-MM-dd ") + TimeString);
Run Code Online (Sandbox Code Playgroud)

我不喜欢将现有的DateTime转换为字符串并追加时间.

我可以将时间字符串转换为日期,但之后我得到今天的日期并将其添加为旧日期时间的多个刻度是不正确的.

注意:不要担心验证,它在其他地方完成.时间以24小时格式表示,没有秒数.

dtb*_*dtb 67

您可以使用TimeSpan.Parse来解析时间,然后将结果添加到日期:

DateTime newDateTime = oldDateTime.Add(TimeSpan.Parse(timeString));
Run Code Online (Sandbox Code Playgroud)


sim*_*sjo 9

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
Run Code Online (Sandbox Code Playgroud)


小智 5

我使用类似于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);
Run Code Online (Sandbox Code Playgroud)