Question

Comment définissez-vous globalement le format de date dans ASP.NET?

Les paramètres régionaux de ma machine et de mes serveurs locaux sont définis sur "Anglais (Nouvelle-Zélande)".

Lorsque je formate une date avec jj / MM / aaaa , je m'attends à voir 19/11/2008 pour aujourd'hui, par exemple.

Jusque récemment, c’est ce que j’ai reçu de ma machine locale et des serveurs.

Récemment, pour une raison mystérieuse, nos machines locales ont légèrement changé. Bien qu’il soit toujours réglé sur "Anglais (Nouvelle-Zélande)", le séparateur de dates est passé de / à - ! Le même changement n’a pas eu lieu sur les serveurs qui affichent toujours "Anglais (Nouvelle-Zélande)". et le / pour le séparateur de dates.

Maintenant, pour mon ordinateur local, pour le format jj / mm / aaaa , je reçois 19-11-2008 au lieu de 19/11/2008 .

C’est un peu déconcertant.

Le seul moyen de contourner le problème, à ce jour, est d'échapper aux barres obliques et de définir le format sur jj \ / MM \ / aaaa . Cela semble fonctionner, mais cela ne semble pas être la solution idéale.

Quelqu'un peut-il aider s'il vous plaît?

REMARQUE: il s’agit d’une application intranet et la véritable mondialisation ne m’intéresse pas. Je veux juste corriger le format de la date et ne pas le changer sur moi.

Était-ce utile?

La solution

Vous pouvez modifier la culture de thread actuelle dans votre fichier Global.asax et remplacer le format de date, par exemple:

using System.Globalization;
using System.Threading;

//...
protected void Application_BeginRequest(Object sender, EventArgs e)
{    
  CultureInfo newCulture = (CultureInfo) System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
  newCulture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";
  newCulture.DateTimeFormat.DateSeparator = "-";
  Thread.CurrentThread.CurrentCulture = newCulture;
}

Autres conseils

Dans web.config, définissez la balise comme suit: la documentation suivante

<system.web>
    <globalization  culture="en-NZ"  uiCulture="en-NZ"/>
</system.web>

Un bon moyen est de configurer Web.Config, le format de date apparaît dans tous les composants d’un aspx

<system.web>    
<globalization uiCulture="en" culture="en-NZ" />
</system.web>

Vous pouvez définir votre culture sans manipulation:


using System.Globalization;
using System.Threading;

//... protected void Application_BeginRequest(Object sender, EventArgs e) {
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-NZ"); }

Il s’agit d’un ancien message, mais j’ai pensé qu’il serait peut-être utile de le mentionner ici. Mon problème ressemblait à ce que le PO a demandé, mais la solution a été que la culture a été modifiée dans IIS, et non à partir du panneau de configuration.

IIS a sa propre sélection de culture, qui par défaut suivra la culture informatique locale. Mais pour une raison quelconque, cela a été changé pour une culture différente, et j'ai commencé à obtenir ces formats de date étranges.

Vous pouvez chercher plus de réponses ici .

Pour les chaînes de format, le caractère de format / ne se résout pas réellement au littéral " / " comme on peut s'y attendre. Au lieu de cela, il résout le séparateur date / heure actuel tel que configuré dans vos paramètres régionaux. Essayez de modifier la propriété DateTimeFormatInfo.DateSeparator.

Pour plus d'informations, voir: http://msdn.microsoft.com /en-us/library/8kb3ddd4.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top