sur une machine de développement (cassini)
new DateTime(2012,3,14).ToString("d")
résulte en
14/03/2012
ce qui est correct mais lorsqu'il est déployé sur un serveur complet IIS le résultat est
03/14/2012
Le serveur est défini dans le panneau de configuration/langue de la région sur tous les anglais/Royaume-Uni/Go, la date d'exécution dans l'invite de commande renvoie le format jj/MM/AAAA.
Le site est configuré pour les deux uiCulture="en-GB"
et culture="en-GB"
et ceux-ci s'affichent dans la balise globalisation web.config.
Je peux contourner ce problème en ajoutant une culture forcée
new DateTime(2012,3,14).ToString("d", new CultureInfo("en-GB"));
mais je voudrais vraiment savoir ce qui définit le format incorrectement.
CultureInfo.CurrentCulture.Name, CultureInfo.CurrentUICulture.Name
les deux renvoient en-US
M/d/yyyy
(par exemple, le 14/03/2012)dd/MM/yyyy
(par exemple, 14/03/2012)Valeur réelle dans web.config
<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" uiCulture="en-GB" culture="en-GB" />
J'ai réussi à le faire fonctionner en le mettant dans le web.config
<globalization culture="en-GB"/>
Dans ton web.config
ajouter
<globalization culture='auto' uiCulture='auto' />
et puis, en supposant que le navigateur est correctement configuré pour passer les paramètres régionaux préférés, le thread de travail traitant la demande aura son CurrentCulture
et CurrentUICulture
correctement défini.
Toutes les opérations dépendantes des paramètres régionaux (y compris des choses telles que DateTime
format d
) utiliseront la préférence du client.
Élément de mondialisation de web.config sur MSDN: https://msdn.Microsoft.com/en-us/library/ydkak5b9 (v = vs.71) .aspx