format de date dans asp.net par rapport à l'application de la console
Question
Je le déploiement d'une application .NET à une autre machine.
dans la demande de la console, la valeur de
DateTime.Today.ToLongDateString();
est
10 December 2009
tandis que dans l'application web est la valeur
23 ذو الحجة 1430 < equivalent in higri calendar
Comment l'application Web obtenir la culture, et pourquoi est-il différent de l'application de la console?
La solution 4
Je suis la réponse! il a été l'un des dossiers du registre des utilisateurs de probablement ASPNET ou IIS. en utilisant regedit, je l'ai trouvé dans l'un des utilisateurs internationaux = arabe
Merci à: modifier les paramètres linguistiques par défaut dans IIS 6.0
Autres conseils
Dans le web.config ou machine.config vous pouvez spécifier la culture par défaut pour l'application ASP.Net par le élément mondialisation .
<configuration>
<system.web>
<globalization
culture="en-US"/>
</system.web>
</configuration>
Il est susceptible d'être la culture de la machine elle-même. - Vous dites que vous déployez à une autre machine
Quelle culture vous voulez à être?
EDIT: Vos options sont:
- Définir la culture pour la machine elle-même, ce qui affecte l'ensemble de Windows
- Peut-être définir la culture pour .NET en général - je ne suis pas sûr que ce soit disponible ou non dans machine.config. Ce n'est pas quelque chose que j'ai jamais fait.
- Définir la culture pour chaque page
- Indiquez la culture explicitement chaque fois que vous analysez ou les chaînes de format
Le dernier est le moins invasif, pour être honnête. La plupart des méthodes comme String.Parse
etc ont une surcharge avec un paramètre IFormatProvider
. Vous pouvez spécifier que le CultureInfo
concerné.
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
DateTime.Today.ToLongDateString();