Задать формат даты в теге глобализации ASP.NET web.config?
В нашем web.config я использую следующий тег для определения языка интерфейса веб-сайта ASP.NET.
<globalization
enableClientBasedCulture="true"
culture="auto:en-GB"
uiCulture="auto:en"/>
Это работает, как и ожидалось: клиент запрашивает определенную локализацию, все остальные с радостью следят за настройками en-GB.
В соответствии с политикой компании мне нужно изменить формат даты на стандартный формат ISO 8601 (ГГГГ-ММ-ДД) для всех. Это возможно в центральном месте в файле web.config или мне нужно изменить это вручную в каждом случае?
Дополнение: можно ли получить этот формат даты при ограничении интерфейса на английский?
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();
}
}
Если вам нужно, чтобы формат был одинаковым в разных культурах, вам придется устанавливать DateTimeFormat всякий раз, когда вы создаете экземпляр CultureInfo
объект.
Для этого нет опции глобальной конфигурации.