2017-11-25 3 views
-3

Ich verwende in meinem Controller:Wie konvertiert man Char-Array in String für DateTime.Parse?

char[] arrDate = date.ToArray(); 
DateTime dt = DateTime.Parse(arrDate[0] + arrDate[1] + "/" + 
          arrDate[2] + arrDate[3] + "/" + 
          arrDate[4] + arrDate[5] + arrDate[6] + arrDate[7]); 

den Fehler:

System.FormatException: String was not recognized as a valid DateTime.

+1

Wie wäre es mit ['date.ToString()'] (https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings) –

+0

Bitte sehen Sie, ob Sie die Antwort akzeptieren/upvoten können. @yashu – yacc

Antwort

0

diese Bedenken Sie:

var date = "11252017"; 
var arrDate = date.ToArray(); 
var strDate = arrDate[0] + arrDate[1] + "/" + 
       arrDate[2] + arrDate[3] + "/" + 
       arrDate[4] + arrDate[5] + arrDate[6] + arrDate[7]; // 98/25/2017 

Beachten Sie, dass:

  • '1' + '1' = 98 * ⇒ char + char = int
  • 98 + "/" = "98/"int + string = string
  • "98/" + '2' = "98/2"string + char = string

Das Update:

var dt = DateTime.Parse("" + 
         arrDate[0] + arrDate[1] + "/" + 
         arrDate[2] + arrDate[3] + "/" + 
         arrDate[4] + arrDate[5] + arrDate[6] + arrDate[7]); 

* ASCII Darstellung:

  • '1' in dezimal ist 49
+0

Danke mein Problem ist behoben ... Es funktioniert sehr gut. –

+0

arrdate = date = "11202017"; dt = {11/20/2017 12:00:00 AM} das ist meine Ausgabe. –

+0

ja ist es richtig. –

0

Ich gehe davon aus date vom Typ string. Zum Analysieren eines Strings verfügt die Klasse DateTime über mehrere Methoden, von denen ParseExact eins ist. Diese Methode kann eine Zeichenfolge bei einem Formatspezifizierer und einer Kultur analysieren. In Ihrem Fall kann das Datum wie folgt analysiert werden:

var date = "11252017"; 
var dt = DateTime.ParseExact(date, "MMddyyyy", CultureInfo.InvariantCulture); 

Durch die Art und Weise ein string ist ein Array von char s, so in Ihrem Code arrDate[0] genau das gleiche wie date[0] ist. Nur etwas für die Zukunft.

Verwandte Themen