2010-03-18 5 views
5

Dans notre fichier web.config, j'utilise la balise suivante pour déterminer la langue d'interface d'un site Web ASP.NET.Définition d'un format de date dans le tag globalisation ASP.NET web.config?

<globalization 
    enableClientBasedCulture="true"   
    culture="auto:en-GB" 
    uiCulture="auto:en"/> 

Cela fonctionne comme prévu: le client wo demande une localisation spécifique sont, tout le monde est à la recherche heureusement d'autre les paramètres en-GB.

En raison de la politique de l'entreprise que je dois changer le format de date à la norme ISO 8601 format standard (AAAA-MM-JJ) pour tout le monde. Est-ce possible à une place centrale dans le web.config ou dois-je changer manuellement dans tous les cas?

Addition: Serait-il possible d'obtenir ce format de date en limitant l'interface à l'anglais?

Répondre

6

Vous devez build votre propre culture en utilisant CultureAndRegionInfoBuilder

class Program 
     { 
      static void Main(string[] args) 
      { 
       CultureInfo ci; 
       CultureAndRegionInfoBuilder cib = null; 
       try 
       { 
        // Create a CultureAndRegionInfoBuilder object named "x-en-GB". 
        Console.WriteLine("Create and explore the CultureAndRegionInfoBuilder...\n"); 
        cib = new CultureAndRegionInfoBuilder(
         "x-en-GB", CultureAndRegionModifiers.None); 

        // Populate the new CultureAndRegionInfoBuilder object with culture information. 
        ci = new CultureInfo("en-GB"); 
        ci.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd"; 
        //ci.DateTimeFormat.FullDateTimePattern = "yyyy-MM-dd"; 
        //ci.DateTimeFormat.LongDatePattern = "yyyy-MM-dd"; 

//... 
        //... 
        cib.LoadDataFromCultureInfo(ci); 




        // Populate the new CultureAndRegionInfoBuilder object with region information. 
        RegionInfo ri = new RegionInfo("GB"); 
        cib.LoadDataFromRegionInfo(ri); 

        Console.WriteLine("Register the custom culture..."); 
        cib.Register(); 



       } 
       catch (Exception e) 
       { 
        Console.WriteLine(e); 
       } 

       Console.WriteLine("Create and explore the custom culture...\n"); 
       ci = new CultureInfo("x-en-GB"); 

       //Thread.CurrentThread.CurrentCulture = ci; 
       //Thread.CurrentThread.CurrentUICulture = ci; 

       Console.WriteLine(DateTime.Now.ToString(ci)); 

       Console.ReadLine(); 
      } 
     } 
2

Si vous souhaitez que le format soit identique d'une culture à l'autre, vous devrez définir DateTimeFormat à chaque fois que vous instanciez un objet CultureInfo.

Il n'y a pas d'option de configuration globale pour cela.