我正在使用一个旧的mysql数据库,其中存储日期(没有时间)作为日期时间,时间存储为字符串(没有日期)。
在C#中,我的DateTime的值为2010-06-25 12:00:00 AM
,而String的值为15:02
。
在没有大量开销的情况下,最简洁的方法是什么?
我尝试了一些方法,包括:
DateTime NewDateTime = DateTime.Parse(OldDateTime.ToString("yyyy-MM-dd ") + TimeString);
我不喜欢将现有的DateTime转换为字符串并追加时间。
我可以将时间字符串转换为日期,但是我得到今天的日期并将其作为旧日期时间的刻度数添加是不正确的。
注意:不要担心验证,它在其他地方完成。时间以24小时格式表示,没有秒数。
答案 0 :(得分:66)
您可以使用TimeSpan.Parse来解析时间,然后将结果添加到日期中:
DateTime newDateTime = oldDateTime.Add(TimeSpan.Parse(timeString));
答案 1 :(得分: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
答案 2 :(得分: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);
答案 3 :(得分:0)
我认为你太担心字符串转换了。通过将2个字符串元素组合在一起,您可以保存更多日期字符串解析,这很可能会更昂贵。
这会重复很多次,还是在更大的过程中简单一步?
答案 4 :(得分:-1)
我很确定您可以使用SQL将这些值组合并转换为时间戳。