Ответ 1
Мне удалось заставить его работать, поместив его в файл web.config
<globalization culture="en-GB"/>
на машине разработчика (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
M/d/yyyy
(например, 3/14/2012)dd/MM/yyyy
(например, 14/03/2012)Фактическое значение в web.config
<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" uiCulture="en-GB" culture="en-GB" />
Мне удалось заставить его работать, поместив его в файл web.config
<globalization culture="en-GB"/>
В 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