Установка формата даты в ASP.NET web.config тег глобализации?

В нашем web.config я использую следующий тег для определения интерфейсного языка веб-сайта ASP.NET.

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

Это работает как ожидалось: Клиент wo запрашивает, чтобы определенная локализация получила его, все другие счастливо смотрят на настройки en-ГБ.

Из-за политики компании я должен изменить формат даты на стандартный формат ISO 8601 (YYYY-MM-DD) для всех. Действительно ли это возможно в центральном месте в web.config, или я должен изменить это вручную в каждом экземпляре?

Дополнение: было бы возможно сделать, получают этот формат даты при ограничении интерфейса английским языком?

5
задан शेखर 26 August 2013 в 04:43
поделиться

2 ответа

Вы должны построить свою собственную культуру с помощью 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();
            }
        }
6
ответ дан 14 December 2019 в 04:35
поделиться

Если вам нужно, чтобы формат был одинаковым для разных культур, вам придется устанавливать DateTimeFormat всякий раз, когда вы создаете экземпляр объекта CultureInfo .

Для этого нет опции глобальной конфигурации.

2
ответ дан 14 December 2019 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: