web-dev-qa-db-fra.com

DateTime et CultureInfo

J'ai ceci dans mon code:

var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

Et quand ma culture actuelle est néerlandaise (nl-NL) au lieu du 1er mai, je reçois le 5 janvier.

Je pense que l'erreur est dans le deuxième paramètre dd.MM.yyyy HH:mm:ss.

Existe-t-il un moyen de résoudre ce problème en utilisant la classe CultureInfo?

16
petko_stankoski

Vous pouvez essayer ce qui suit:

System.Globalization.CultureInfo cultureinfo =
        new System.Globalization.CultureInfo("nl-NL");
DateTime dt = DateTime.Parse(date, cultureinfo);
28
MMK

Utilisez CultureInfo class pour modifier vos informations de culture. 

var dutchCultureInfo = CultureInfo.CreateSpecificCulture("nl-NL");
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", dutchCultureInfo);
5
Soner Gönül

InvariantCulture est similaire à en-US, donc j'utiliserais la bonne CultureInfo à la place:

var dutchCulture = CultureInfo.CreateSpecificCulture("nl-NL");
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", dutchCulture);

Démo

Et qu'en est-il lorsque la culture est en nous? Devrai-je coder pour chaque langue est là-bas? 

Si vous voulez savoir comment afficher la date dans une autre culture comme "en-us", vous pouvez utiliser date1.ToString(CultureInfo.CreateSpecificCulture("en-US")).

1
Rango