C# ASP.NET: can't convert datetime to string

7.3k Views Asked by At

I want to convert a datetime to string.

But result now is returned as 04 August, 0016 which is not what I need.

I want result to be 04 August, 2016.

C# code:

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);
}

Thanks in advance ;)

3

There are 3 best solutions below

0
Steve Davis On

Use the DateTime.ParseExact method and specify the format like below:

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);
0
Mate On

Try:

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

Or

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);

The "/" custom format specifier represents the date separator, which is used to differentiate years, months, and days. The appropriate localized date separator is retrieved from the DateTimeFormatInfo.DateSeparator property of the current or specified culture.

MSDN

0
AudioBubble On

Use Date or DateTime.ToShortDateString(); Or Date.ToString("dd-MM-yyyy");