DateTime.ParseExact返回错误的值

时间:2016-12-01 17:48:49

标签: c# wpf datepicker

我正在尝试将date和minute添加到datepicker(wpf)的返回值中。我认为ParseExact()的日期格式参数有问题,但无法解决问题所在。

string[] timeAndDate = System.Text.RegularExpressions.Regex.Split(dPicker.SelectedDate.ToString(), " ");
string time = cmbTime.SelectedItem.ToString();
string tempDT = timeAndDate[0] + " " + time;
DateTime queryDT = DateTime.ParseExact(tempDT, "dd.MM.yyyy HH:mm", CultureInfo.InvariantCulture);

它不断返回minValue 01.01.0001等。这可能是关于这些时间点。我也尝试添加秒,但仍然没有运气。

Btw tempDT有点" 22.12.2016 20:30"

我的输入字符串是" 22.12.2016 20:30" 方法返回{01.01.0001 00:00:00}

我也这样做是为了从datepickers获取两个日期,并通过两个组合框获得两个小时变量,并制作两个日期时间对象将它们发送到sql。

似乎我没有把调试点放在正确的地方,但是无论如何,非常感谢,非常感谢!

1 个答案:

答案 0 :(得分:1)

看起来你根本不需要解析日期;日期选择器已将所选日期公开为System.DateTime。您仍然需要解析时间,因为它由于某种原因被保存在组合框而不是TimePicker中。

而不是

string[] timeAndDate = System.Text.RegularExpressions.Regex.Split(dPicker.SelectedDate.ToString(), " ");
string time = cmbTime.SelectedItem.ToString();
string tempDT = timeAndDate[0] + " " + time;
DateTime queryDT = DateTime.ParseExact(tempDT, "dd.MM.yyyy HH:mm", CultureInfo.InvariantCulture);

为什么不写

var ts = TimeSpan.Parse(cmbTime.SelectedItem.ToString());
DateTime queryDT = dPicker.SelectedDate.Add(ts);