2016-12-01 3 views
-4

Я пытаюсь добавить час и минуту в возвращаемое значение datepicker (wpf). Я думаю, что что-то не так с моим параметром формата даты для ParseExact(), но не может получить, где проблема.DateTime.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}

I Я также делаю это, чтобы получить две даты от datepickers и получить двухчасовые переменные через два comboboxes и сделать два объекта datetime, чтобы отправить их в sql.

Кажется, я не положил точку отладки в нужное место, не смущаясь, но в любом случае, спасибо!

+0

пожалуйста, покажите ваш вход string.s –

+0

Что вы имеете в виду "является своего рода"? Что такое 'tempDT' точно? – itsme86

+0

'DateTime.ParseExact (" 22.12.2016 20:30 "," dd.MM.yyyy HH: mm ", CultureInfo.InvariantCulture);' возвращает '{12/22/2016 8:30:00 PM}' для меня , Какое значение * актуально * вы передаете? Фактически определенная подтвержденная не-глупая ценность, а не догадка или вывод. Постскриптум @rboe прав, все это бессмысленное упражнение в самоуничижении. –

ответ

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); 
+0

Я пробовал AddHours(), но не хотел, чтобы двойной тип включался. Я могу использовать ваш метод, спасибо большое! –

+0

btw Насколько я знаю, wpf не имеет ванильного TimePicker, я не прав? –

+0

@SelcukSZR У него нет ванили, но если вы не отрицаете его использования, расширенный набор инструментов WPF имеет элемент управления DateTimePicker - http://wpftoolkit.codeplex.com/wikipage?title=DateTimePicker&referringTitle=Home – Asnivor

Смежные вопросы