2016-12-01 2 views
-4

Ich versuche, Stunde und Minute in den Rückgabewert eines Datepicker (WPF) hinzuzufügen. Ich denke, dass etwas mit meinem Date-Format-Parameter für ParseExact() nicht stimmt, aber nicht wo das Problem ist.DateTime.ParseExact gibt falschen Wert zurück

Es gibt immer wieder minValue 01.01.0001 etc. Es ist wahrscheinlich über diese Zeitpunkten. Ich habe auch versucht, Sekunden hinzuzufügen, aber immer noch kein Glück.

Btw tempDT ist irgendwie "2016.12.22 20.30"

meine Eingabezeichenfolge ist "2016.12.22 20.30" Methode gibt {01.01.0001 00.00.00}

I mache ich das auch, um zwei Daten von datepickers zu bekommen und zwei Stunden Variablen über zwei Comboboxen zu erhalten, und mache zwei datetime Objekte um sie an sql zu senden.

Es scheint, ich habe den Debug-Punkt nicht am richtigen Ort, peinlich, aber trotzdem, vielen Dank!

+0

bitte zeigen Sie Ihre Eingabe string.s –

+0

Was meinst du "ist irgendwie"? Was genau ist 'tempDT'? – itsme86

+0

'DateTime.ParseExact (" 22.12.2016 20:30 "," TT.MM.JJJJ HH: mm ", CultureInfo.InvariantCulture);' returns '{22.12.2016 20:30:00} für mich . Was ist der * tatsächliche * Wert, den du einreichst? Der tatsächliche, eindeutige, bestätigte Wert, keine Vermutung oder Schlussfolgerung. P.S. @Rboe hat Recht, das Ganze ist eine sinnlose Übung in Selbstbetrug. –

Antwort

1

Sieht so aus, als müssten Sie das Datum überhaupt nicht analysieren; Die Datumsauswahl macht das ausgewählte Datum bereits als System.DateTime verfügbar. Sie müssen die Zeit noch analysieren, da sie aus irgendeinem Grund in einem Kombinationsfeld anstelle eines TimePicker gehalten wird.

Statt

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

warum schreiben Sie nicht

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

Ich versuchte AddHours(), aber wollte nicht double Typ beteiligt werden. Ich kann deine Methode benutzen, vielen Dank! –

+0

BTW soweit ich weiß, WPF hat keine Vanille TimePicker, liege ich falsch? –

+0

@SelcukSZR Es hat keine Vanille, aber wenn Sie es nicht ungern verwenden, hat das Extended WPF Toolkit ein DateTimePicker-Steuerelement - http://wpftoolkit.codeplex.com/wikipage?title=DateTimePicker&referringTitle=Home – Asnivor

Verwandte Themen