I have this in my code:
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
And when my current cultur is dutch (nl-NL
) instead of May 1st I get January 5th.
I think the error is in the second parameter dd.MM.yyyy HH:mm:ss
.
Is there a way to fix this using the CultureInfo
class?
You may try the following:
System.Globalization.CultureInfo cultureinfo =
new System.Globalization.CultureInfo("nl-NL");
DateTime dt = DateTime.Parse(date, cultureinfo);
Use CultureInfo
class to change your culture info.
var dutchCultureInfo = CultureInfo.CreateSpecificCulture("nl-NL");
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", dutchCultureInfo);
InvariantCulture
is similar to en-US
, so i would use the correct CultureInfo
instead:
var dutchCulture = CultureInfo.CreateSpecificCulture("nl-NL");
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", dutchCulture);
Demo
And what about when the culture is en-us? Will I have to code for
every single language there is out there?
If you want to know how to display the date in another culture like "en-us", you can use date1.ToString(CultureInfo.CreateSpecificCulture("en-US"))
.