2010-05-10 3 views
1

ASP.NET MVC 응용 프로그램에서 사용자가 입력 한 12012009 문자열이 있습니다. 이것을 DateTime으로 변환하고 싶습니다.날짜/시간 문자열

그러나 내가 DateTime.TryParse("12012009", out outDateTime);을하면 false를 반환합니다.

그래서 나는 2009년 12월 1일에 12012009로 변환 한 후 DateTime.TryParse("12/01/2009", out outDateTime); 어떤

를 작동하려고 노력하지만 "문자열에 2009년 12월 1일을 문자열 12012009로 변환 할 수있는 똑 바른 앞으로 방법을 찾을 수 없습니다 ". 어떤 아이디어?

+0

항상 한 자리 월에 0이 붙습니다. 예를 들어, 의지는 항상 05 일 수도 있고 단순히 5 일 수도 있습니까? 언제나 0으로 채워지면 꽤 간단합니다. 그렇지 않다면 사실상 불가능합니다. – Serapth

+0

날짜는 항상 0으로 채워집니다. – SARAVAN

답변

4

당신은 DateTime.TryParseExact을 사용할 수 있으며 정확한 형식 문자열을 전달 :

DateTime dateValue = DateTime.Now; 
if (DateTime.TryParseExact("12012009", "ddMMyyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue))) 
{ 
    // Date now in dateValue 
} 
+1

'mm'은 * 분 *의 형식 지정자입니다. http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx – dtb

+0

@dtb - 캐치를 가져 주셔서 감사합니다! – Oded

9

첫째, 당신은 당신의 입력에 있는지를 결정해야 일 - 월 - 년 또는 개월 - 일 - 년 체재.

그럼 당신은 DateTime.TryParseExact을 사용할 수있는 명시 적으로 입력 문자열의 형식 지정도

DateTime.TryParseExact("12012009", 
         "ddMMyyyy", 
         CultureInfo.InvariantCulture, 
         DateTimeStyles.None, 
         out convertedDate) 

참조 : 당신이 형식을 사용하려면 Custom Date and Time Format Strings

+0

+1은 나를 때린다 .... :-) –

+0

이것은 대답이지만, 접두사가 0 인 한 자리 숫자의 달/일에 달려있다. 1212009가 가능한 입력이면, 당신은 묶인 다. – Serapth

+0

감사합니다. 입력은 확실히 mmddyyyy 형식이어야합니다. 그래서 나는 안전하다고 생각한다. – SARAVAN

0

당신이 가장 가능성이 형식을 지정해야합니다을 파서에게. System.IFormatProvider 설명서와 IFormatProvider를 사용하는 메서드에 대한 System.DateTime 설명서를 확인하십시오.

0
DateTime yourDate = 
    DateTime.ParseExact(yourString, "ddMMyyyy", Culture.InvariantCulture);