2017-11-25 13 views
-3

내 컨트롤러에서 이것을 사용하고 있습니다 :문자 배열을 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]); 

오류를 :

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

+1

[date.toString()'] (https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings) –

+0

은 어떨까요? 대답을 수락/upvote 수 있는지 참조하십시오. @yashu – yacc

답변

0

이를 고려

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 

공지 것을 :

  • '1' + '1' = 98 *을 ⇒

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

    * ASCII 표현 : 012,351

    string + = string
  • "98/" + '2' = "98/2"string + = charstring

수정 9,989,char + = int

  • 98 + "/" = "98/"int 진수 6,
    • '1' 내가 date 유형 string의 가정 49
  • +0

    고맙습니다. 내 문제가 해결되었습니다. ... 매우 효과적입니다. –

    +0

    arrdate = date = "11202017"; dt = {11/20/2017 12:00:00 AM} 이것은 내 결과입니다. –

    +0

    네 맞습니다. –

    0

    입니다. 문자열 파싱을 위해 DateTime 클래스는 여러 가지 방법을 가지고 있는데 그 중 ParseExact은 하나입니다. 이 메서드는 형식 지정자와 문화권이 주어진 문자열을 구문 분석 할 수 있습니다. 귀하의 경우 날짜는 다음과 같이 해석 할 수 있습니다 arrDate[0]가 정확히 date[0]과 같은 코드에 있도록하는 방식 string으로

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

    char의 배열입니다. 미래를 염두에 두어야 할 것.