57 votes

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

Comment définir globalement le format de la date dans ASP.NET?

Ma machine locale et les serveurs ont des Paramètres Régionaux réglé sur "anglais (Nouvelle-Zélande)".

Quand j'ai formater une date avec dd/MM/yyyy - je m'attendre à voir 19/11/2008 pour aujourd'hui par exemple.

Jusqu'à récemment, c'est ce que j'ai fait, en fait à partir de mon ordinateur local et les serveurs.

Tout récemment, pour une mystérieuse raison, nos locaux de machines ont changé un peu. En dépit de toujours être réglé sur "anglais (Nouvelle-Zélande)", la date delimter a changé à partir de / de -! Le même changement n'a pas eu lieu sur les serveurs qui présentent encore "anglais (Nouvelle-Zélande)" et l' / pour la date delimter.

Alors maintenant, pour ma machine locale, pour le format dd/MM/yyyy - je obtenir de l' 19-11-2008 au lieu de 19/11/2008.

C'est un peu déconcertant.

La seule façon de contourner ce que je peux voir jusqu'à présent est d'échapper à l'barres obliques et définir le format dd\/MM\/yyyy. Il semble fonctionner, mais il ne semble pas être la solution idéale.

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

NOTE: C'est pour une application intranet et je ne se soucient pas de vrai la mondialisation. Je veux juste corriger le format de date et pas de changement sur moi.

107voto

CMS Points 315406

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;
}
 

47voto

Serapth Points 4717

Dans web.config, définissez la balise conformément à la documentation suivante

 <globalization
    culture="en-NZ"
    uiCulture="en-NZ"/>
 

8voto

cmujica Points 424

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>
 

4voto

labilbe Points 1231

Vous pouvez définir votre culture sans manipulation:

 
using System.Globalization;
using System.Threading;

 

0voto

jkchong Points 430

Pour les chaînes de format, le caractère de format / ne se résout pas réellement en un "/" littéral, contrairement à ce à quoi vous vous attendiez. 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X