2012-10-11 9 views
0

날짜 문자열 형식으로 20031006 형식의 문자열을 처리해야한다는 요구 사항이 있습니다. C# 함수를 사용하여 응용 프로그램에서 대부분의 모든 날짜를 변환하기위한 함수를 작성했습니다. 그러나, 20031006 문자열을 날짜로 변환하는 형식이없는 것 같습니다. 이 방법을 사용하려면 어떤 방법을 사용해야합니까? 미리 감사드립니다.문자열을 날짜로 변환하는 방법

private bool IsDate(string dateString) 
     { 
      string format; 
      DateTime dateValue; 
      CultureInfo enUS = new CultureInfo("en-US"); 
      CultureInfo provider = CultureInfo.InvariantCulture; 
      DateTime myNum; 
      try 
      { 
       if (DateTime.TryParse(dateString, out myNum)) 
       { 
        return true; 
       } 
       format = "d"; 
       if (DateTime.TryParseExact(dateString, "d",provider, DateTimeStyles.AdjustToUniversal, out dateValue)) 
       { 
        return true; 
       } 

       dateValue = DateTime.ParseExact(dateString, format, new CultureInfo("fr-FR")); 
       if (dateValue != null) 
       { 
        return true; 
       } 
       if (DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.None, out dateValue)) 
       { 
        return true; 
       } 

       if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None, out dateValue)) 
       { 
        return true; 
       } 
       if (DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite, out dateValue)) 
       { 
        return true; 
       } 
       if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue)) 
       { 
        return true; 
       } 
       if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.AdjustToUniversal, out dateValue)) 
       { 
        return true; 
       } 
       if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out dateValue)) 
       { 
        return true; 
       } 
      } 
      catch (Exception) 
      { 
       return false; 
      } 

      return false; 
     } 
+0

은을 사용하여 3 개 부분으로 문자열을 분할을 정규식? – lboshuizen

+0

yyyyMMdd를 사용해 보셨습니까? – AMember

답변

4

DateTime.ParseExact

string strDate = "20031006"; 
DateTime date = DateTime.ParseExact(strDate, "yyyyMMdd", CultureInfo.InvariantCulture); 
1

사용하여 실제 날짜 형식과 일치하는 custom format string :

var myDT = DateTime.ParseExact(myDate, "yyyyMMdd", CultureInfo.InvariantCulture); 
1

사용 ParseExact 방법 : MSDN reference

string stringDate = "20000102"; 
DateTime dateTime = DateTime.ParseExact(stringDate, "yyyyMMdd", CultureInfo.InvariantCulture); 
1

다음은 귀하의 솔루션입니다.

하나의 문자열 형식

using System.Globalization; 

string dt = DateTime.Parse(txtDate.Text.Trim()) 
        .ToString("yyyy/MM/dd", CultureInfo.InvariantCulture); 
당신이 필요한 문자열을 반환하는 함수가 필요한 경우이

같이 수행 할 수 있습니다

:

public string FormatPostingDate(string txtdate) 
{ 
    if (txtdate != null && txtdate != string.Empty) 
    { 
     DateTime postingDate = Convert.ToDateTime(txtdate); 
     return string.Format("{0:yyyy/MM/dd}", postingDate); 
    } 
    return string.Empty; 
} 
관련 문제