Click here to Skip to main content
15,892,059 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
A string has the value in "dd/MM/yyyy" format like "04/10/2012". This should be converted to a Date w.r.t Current Culture of OS.

I have tried below string with Korean as Current Culture of OS in which date format is yyyy-MM-dd, my code is not getting correct Month value, it interchange the month value with day:

Input: "04/10/2012"
Output: 2012-04-10

Code:
C#
DateTime DT;
            string dt = "04/10/2012";
            
            DateTimeFormatInfo DateInfo = CultureInfo.CurrentCulture.DateTimeFormat;
            DT = Convert.ToDateTime(String.Format ("{0:"+DateInfo .ShortDatePattern +"}", dt.Trim ()), CultureInfo .CurrentCulture);
            MessageBox.Show("Date: " + DT.ToShortDateString());

How I ca fix that ?
Posted
Updated 3-Oct-12 22:01pm
v2

C#
DateTime DT;
            string dt = "04/10/2012";
            
            DateTimeFormatInfo DateInfo = CultureInfo.CurrentCulture.DateTimeFormat;
            DT = Convert.ToDateTime(String.Format ("{0:dd/MM/yyyy}", dt.Trim ()), CultureInfo .CurrentCulture);
            MessageBox.Show("Date: " + DT.ToShortDateString());
 
Share this answer
 
string dt = "04/10/2012";
DateTime DT = DateTime.ParseExact(dt, "dd/MM/yyyy", CultureInfo.InvariantCulture);
MessageBox.Show("Date: " + DT.ToShortDateString());

Please note that this will not work if your "dt" string is in a different format - the Pandora's Box of Pain will open...
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900