Converting a string into a DateTime with an exact date format in C# .NET

How do you read the date “03-10-2014”? For some of you this will be October 03 2014. For others, especially those from the US this will be interpreted as March 10 2014. This is because dates are represented in different formats in different cultures.

Consider the following code:

string dateString = "03-10-2014";
DateTime parsedDate = DateTime.Parse(dateString);
string toString = parsedDate.ToLongDateString();

“toString” in my case, as I’m running this code from a computer set to the Swedish culture “sv-SE”, will be “den 10 mars 2014” which is March 10 2014. If you run the same code then the output will depend on the cultural settings of your PC which the thread running the code picks up.

What if you want the above date string to always read as October 03 2014 regardless of the culture? DateTime has a ParseExact method which accepts a format string:

string dateString = "03-10-2014";
string format = "dd-MM-yyyy";
DateTime parsedDate = DateTime.ParseExact(dateString, format, null);
string toString = parsedDate.ToLongDateString();

toString will now be “den 3 oktober 2014”.

View all various C# language feature related posts here.

Unknown's avatarAbout Andras Nemes
I'm a .NET/Java developer living and working in Stockholm, Sweden.

2 Responses to Converting a string into a DateTime with an exact date format in C# .NET

  1. harry's avatar harry says:

    Hi what if date format input is 01 January, 2016 ? looking output 01/01/2016

Leave a comment

Elliot Balynn's Blog

A directory of wonderful thoughts

Software Engineering

Web development

Disparate Opinions

Various tidbits

chsakell's Blog

WEB APPLICATION DEVELOPMENT TUTORIALS WITH OPEN-SOURCE PROJECTS

Once Upon a Camayoc

ARCHIVED: Bite-size insight on Cyber Security for the not too technical.