2014-06-24 3 views
-1

이것은 내 코드입니다.C# 날짜 형식 변환 오류

 dateString = "6/29/2014"; 
     format = "yy-mm-dd"; 
     try 
     { 
      result = DateTime.ParseExact(dateString, format, provider); 
      Console.WriteLine("{0} converts to {1}.", dateString, result.ToString()); 
     } 
     catch (FormatException) 
     { 
      Console.WriteLine("{0} is not in the correct format.", dateString); 
     } 

나는 2014년 6월 29일 2014년 6월 29일 내 날짜를 변환 할하지만 날짜가 올바른 형식이 아닌 것을 내가 오류를 얻고있다. 내가 여기서 무엇을 놓치고 있니?

+0

"yyyy-mm-dd"를 원하십니까? –

+0

그래도이 yyy-mm-dd를 시도했지만 동일한 오류가 발생했습니다 – user3754380

+2

샘플이별로 의미가 없습니다 - 왜 ""6/29/2014 "'(정확히) mach'"yy- mm-dd "'? –

답변

4

형식 문자열이 입력과 일치하지 않으며 출력 형식을 지정하지 않았습니다.

var dateString = "6/29/2014"; 
var format = "M/dd/yyyy"; // adjusted format to match input 

try 
{ 
    var result = DateTime.ParseExact(dateString, format, provider); 

    Console.WriteLine("{0} converts to {1}.", 
     dateString, result.ToString("yyyy-MM-dd")); // specify output format 
} 
catch (FormatException) 
{ 
    Console.WriteLine("{0} is not in the correct format.", dateString); 
} 

출력 :

2014년 6월 29일이 2014년 6월 29일로 변환합니다.

1

먼저 날짜를 구문 분석 한 다음 문자열로 변환해야합니다.

var asDate = DateTime.Parse(dateString); 
var result = asDate.ToString("yy-MM-dd"); 

또한 .NET에서 "mm"은 몇 분을줍니다. 한 달 동안 "MM"을 사용해야합니다.

+0

'System.DateTime'에 'Format'에 대한 정의가 포함되어 있지 않습니다.이 오류가 발생합니다. – user3754380

+0

그래, 그 메소드 호출이 끝났습니다. 그것은'DateTime.Parse (dateString)'이어야합니다. – eouw0o83hf

1

몇 가지.

날짜 개체로 만들기 위해 보낸 형식으로 전달하려고합니다. 당신이 찾고있는 "전환"은 다른 끝에서 나온 것입니다. 또한 MM/dd/yy은 전달하지 않으며, 해당 날짜 문자열은 실제로는 M/dd/yyyy입니다. 월의 앞에 오는 0을 포함하지 않으며 4 자리수 연도입니다.

다음은 작동하는 예제입니다.

string dateString = "6/29/2014"; 
string format = "M/dd/yyyy"; 
try 
{ 
    DateTime result = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture); 
    Console.WriteLine("{0} converts to {1}.", dateString, result.ToString("yyyy-MM-dd")); 
} 
catch (FormatException) 
{ 
    Console.WriteLine("{0} is not in the correct format.", dateString); 
} 

새 형식을 ToString 함수에 전달한다는 점에 유의하십시오.