2014-11-30 1 views
-3

코드 A 및 코드 B 세그먼트의 ParseExact 메서드가 월 = 1이 아닌 12를 반환합니다. 이유는 무엇입니까? 예외는 발생하지 않습니다. 고마워.DateTime.TryParse가 월에 예상치 못한 값을 반환합니다.

 cult = CultureInfo.InvariantCulture; 
     //Code A 
     //This code sets dt2=01/01/2009, with month = 01 not 12! 
     cult = CultureInfo.InvariantCulture; 
     DateTime dt2 = DateTime.ParseExact("2009-12-1", "yyyy-m-d", cult); 
     printIt(dt2); 

     //Code B 
     //This code sets dt3=01/01/2009, with month = 01 not 12! 
     DateTime dt3 = DateTime.ParseExact("2009-12-1", "yyyy'-'mm'-'d", cult); 
     printIt(dt3); 

     //Code C 
     //This code works and sets dt4=12/01/2009 
     DateTime dt4 = DateTime.Parse("2009-12-1", cult); 
     printIt(dt4); 
+3

이것은 하찮게 형식 문자열이 실제로 무엇을 의미하는지보고 응답합니다. http://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx –

답변

3

소문자 m이 분을, 당신은 예를 들어 대신

MM를 사용할 필요가 작동합니다

DateTime dt2 = DateTime.ParseExact("2009-12-1", "yyyy-MM-d", cult); 
+0

감사. 나는 약 7 년 전에 똑같은 문제가 있었는데, 오라클과 같았던 것 같아. – NoChance