Подтвердить что ты не робот

Как изменить даты в США для en-GB для asp.net?

на машине разработчика (cassini)

new DateTime(2012,3,14).ToString("d")

приводит к

14/03/2012

что верно, но при развертывании на полный сервер IIS результат

03/14/2012

Сервер устанавливается на панели управления/Язык региона на все языки English/UK/GB, дата выполнения в командной строке возвращает формат dd/MM/YYYY.

Сайт настроен как для uiCulture="en-GB", так и для culture="en-GB", и они отображаются в теге глобализации web.config.

Я могу обойти эту проблему, добавив принудительную культуру

new DateTime(2012,3,14).ToString("d", new CultureInfo("en-GB"));

но мне очень хотелось бы знать, что неправильно задает формат.

CultureInfo.CurrentCulture.Name, CultureInfo.CurrentUICulture.Name

оба возвращаются en-US


  • ru-US: M/d/yyyy (например, 3/14/2012)
  • ru-RU: dd/MM/yyyy (например, 14/03/2012)

Фактическое значение в web.config

 <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" uiCulture="en-GB" culture="en-GB" />
4b9b3361

Ответ 1

Мне удалось заставить его работать, поместив его в файл web.config

<globalization culture="en-GB"/>

Ответ 2

В web.config добавить

<globalization culture='auto' uiCulture='auto' />

а затем, предположив, что браузер правильно настроен для передачи предпочтительного языкового стандарта, рабочий поток, обрабатывающий запрос, будет правильно установлен CurrentCulture и CurrentUICulture.

Любые зависящие от языка операции (включая такие вещи, как DateTime format d) будут использовать предпочтения клиента.

Элемент глобализации web.config на MSDN: https://msdn.microsoft.com/en-us/library/ydkak5b9(v=vs.71).aspx