2016-08-04 6 views
-1

datetime을 문자열로 변환하고 싶습니다.C# ASP.NET : datetime을 문자열로 변환 할 수 없습니다.

결과는 이제 내가 필요로하지 않는 04 August, 0016으로 반환됩니다.

나는 결과를 04 August, 2016으로 원합니다.

C# 코드 : 사전에

DataTable dtGroupCurr = new DataTable(); 
dtGroupCurr = sourceGroupCurr.Tables[0]; 

var groupedCurr = (from dt2 in dtGroupCurr.AsEnumerable() 
    select new 
    { 
     S_DATE = dt2.Field<DateTime>("S_DATE"), 
     BANK_CODE = dt2.Field<string>("BANK_CODE"), 
     BANK_NAME = dt2.Field<string>("BANK_NAME") 
    }).Distinct().OrderBy(x => x.S_DATE); 

foreach (var s in groupedCurr) 
{ 
    string rDate = s.S_DATE.ToString("yyyy/MM/dd"); 
    IFormatProvider culture = new CultureInfo("en-US", true); 
    DateTime date = DateTime.Parse(rDate, culture); 
    string sDate = date.ToString("dd MMMM, yyyy", CultureInfo.InvariantCulture); 
} 

감사)

+0

잘 보시고,보세요 : https://dotnetfiddle.net/jPFBrk –

+0

나는 운이 좋으면 동의합니다. 확장 버전 : https://dotnetfiddle.net/jPFBrk.'rDate'의 최종 결과는 어떻게 보이며 's.S_Date'는 "순수한"날짜 시간입니까? 아니면 다른 작업을 수행합니까? –

+2

s.S_DATE의 값은 얼마입니까? before .ToString ("yyyy/MM/dd") – Mate

답변

0

사용 DateTime.ParseExact 방법 아래와 같은 형식을 지정 :

string rDate = s.S_DATE.ToString("yyyy/MM/dd"); 
IFormatProvider culture = new CultureInfo("en-US", true); 
DateTime date = DateTime.ParseExact(rDate, "yyyy/MM/dd", culture); 
string sDate = date.ToString("dd MMMM, yyyy", CultureInfo.InvariantCulture); 
+1

운영자 코드와 다른 점을 설명하는 데주의하십시오. –

1

시도 :

string sDate = s.S_DATE.ToString("dd MMMM, yyyy", new CultureInfo("en-US", true)); 

또는

string rDate = s.S_DATE.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture); // To avoid override 
IFormatProvider culture = new CultureInfo("en-US", true); 
DateTime date = DateTime.Parse(rDate, culture); 
string sDate = date.ToString("dd MMMM, yyyy", CultureInfo.InvariantCulture); 

은 "/"사용자 지정 형식 지정자 년, 월, 일을 구분하는 데 사용됩니다 날짜 구분 기호를 나타냅니다. 해당 현지화 된 날짜 구분 기호는 현재 또는 지정된 문화권의 DateTimeFormatInfo.DateSeparator 속성에서 검색됩니다.

MSDN

1

사용 날짜 또는 DateTime.ToShortDateString(); 또는 Date.ToString ("dd-MM-yyyy");