2016-12-01 136 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等它可能是關於這些時間點。我也試圖添加秒,但仍然沒有運氣。

順便說一句tempDT是有點 「2016年12月22日20:30」

我的輸入字符串爲 「2016年12月22日20:30」 方法返回{01.01.0001 00:00:00}

我我也是這樣做的,從datepickers獲取兩個日期,並通過兩個組合框獲取兩個小時變量,並使兩個日期時間對象將它們發送到sql。

看來我沒有提上了正確的地方調試點,embarrising但無論如何,非常感謝!

+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}'對我來說。你傳入的* actual *值是多少?實際確定的沒有愚蠢的價值,而不是猜測或推斷。附: @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

順便說一句,據我所知,wpf沒有香草TimePicker,我錯了嗎? –

+0

@SelcukSZR它沒有香草,但如果你並不反對使用它的擴展WPF工具有一個DateTimePicker控件 - http://wpftoolkit.codeplex.com/wikipage?title=DateTimePicker&referringTitle=Home – Asnivor