2010-06-15 8 views
1
string strdate="15/06/2010"; 

DateTime dt = 
    DateTime.Parse(strdate, 
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat); 

dd/mm/yyyy로 datetime 값을 가져올 수 없습니다. '문자열이 유효한 날짜 시간으로 인식되지 않습니다.'문자열을 유효한 날짜 시간으로 변환합니다.

oly 2010 년 6 월 15 일에있는 경우 작동합니다. dt에서 동일한 형식을 얻는 방법.

+0

언어를 언급 한 경우 더 좋을 수 있습니다 ... – xenoterracide

답변

4

음, 아마도 현재 스레드의 현재 문화권은 MM/dd/yyyy를 예상합니다. dd/MM/yyyy를 사용하려면 명시 적으로 지정해야합니다. 개인적으로 나는 더 많은 제어를 제공하므로 Parse 대신 ParseExact을 선호합니다. 이 사용자 입력되면, 대신 TryParseExact을 사용할 수

DateTime dt = DateTime.ParseExact(strdate, "dd/MM/yyyy", 
    CultureInfo.InvariantCulture); 

참고 : 나는 같은 것을 사용합니다.

0

현재 현재 문화권을 사용하고 있습니다. 현재 문화권은 미국식 날짜 형식으로 설정되어 있습니다. 이것을 대신 사용해보십시오 :

DateTime.Parse(strdate, System.Globalization.CultureInfo.CreateSpecificCulture("en-GB")); 

이것은 작동하는 영국 날짜 스타일 형식을 사용하도록 함수에 지시합니다. en-GB를 날짜가 될 문화권으로 변경하고 싶을 수 있습니다. 문화가 중요한 곳에서 많은 전화를받는 경우 전화를 거는 대신 전체 스레드에 대해 설정할 수도 있습니다.

관련 문제