c将字符串解析为datetime时发生异常

本文关键字:异常 datetime 字符串 | 更新日期: 2023-09-27 17:59:04

我有一个包含数据的日期-时间变量DateTime d

我有这样的字符串:

11:00 - 12:00

我想从d变量中获取日期,然后从字符串中添加小时和分钟。

我做到了:

string newStringDate = d.ToString("yyyy-mm-dd") + " "+hourValue.Split('-')[0];
                    DateTime dd = DateTime.Parse(newStringDate);

我得到的解释是,字符串不能转换到目前为止。

我调试了代码,可以看到newStrinDate=2014-01-25 11:00

请问我做错了什么?

c将字符串解析为datetime时发生异常

应该是这样的

string newStringDate = d.ToString(@"yyyy'-MM'-dd") + " " + hourValue.Split('-')[0].Trim();
DateTime dd = DateTime.ParseExact(newStringDate, @"yyyy'-MM'-dd HH':mm", null);

您可以做得更好(无需将原始日期转换为字符串):

DateTime dd = d.Date + DateTime.ParseExact(hourValue.Split('-')[0].Trim(), @"HH':mm", null).TimeOfDay;