2012-03-22 3 views
2

이 코드가 예외를 던지는 이유는 무엇입니까?사용자 정의 DateTimeFormatInfo가있는 DateTime.Parse가 예외를 throw합니다.

var dateTime = "2012-03-21_15.12"; 
var format = new DateTimeFormatInfo() 
{ 
    FullDateTimePattern = "yyyy-MM-dd-HH_mm.ss" 
}; 

// FormatException: String was not recognized as a valid DateTime. 
var parse = DateTime.Parse(dateTime, format); 
+0

당신은'DateTime.Parse' 방법은'FullDateTimePattern'을 사용한다고 가정한다. – Oded

답변

6

형식 문자열과 날짜 문자열이 일치하지 않습니다.

날짜 문자열에서 시간 또는 분 부분을 잊어 버린 것처럼 보입니다.

이 :

var dateTime = "2012-03-21_15.12"; 

처럼 아마 같아야합니다 내가 DateTime.ParseExact을 사용하는 것이 좋습니다

var dateTime = "2012-03-21-15_54.12"; 

그리고 :

DateTime.ParseExact("2012-03-21-16_15.12", 
     "yyyy-MM-dd-HH_mm.ss", 
     CultureInfo.InvariantCulture, 
     DateTimeStyles.None) 
+0

여전히 작동하지 않습니다. 나는 그것을 시도했다. – Aliostad

+1

@Aliostad -'ParseExact'를 사용할 때 작동합니다. – Oded

+0

예! 고마워. –

1

당신이 걸릴 것으로 DateTime.ParseExact을 사용할 수 있습니다 datetime 형식 패턴을 매개 변수로 사용합니다.

DateTime.ParseExact