как изменить даты en-US на en-GB для asp.net? - PullRequest
21 голосов
/ 14 марта 2012

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

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

результаты в

14/03/2012

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

03/14/2012

Сервер установлен на панели управления / Язык региона для всех языков: английский / Великобритания / ГБ, дата выполнения в командной строке возвращает формат 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-RU : M/d/yyyy (например, 14.03.2012)
  • ru-RU : dd/MM/yyyy (например, 14/03/2012)

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

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

Ответы [ 2 ]

28 голосов
/ 14 марта 2012

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

<globalization culture="en-GB"/>
4 голосов
/ 14 марта 2012

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

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

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

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

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

...