.Net CurrentCulture ShortDateFormat не обновляется в соответствии с региональными настройками ПК

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

IFormatProvider fpCanada = System.Globalization.CultureInfo.CreateSpecificCulture("en-CA");
Convert.ToDateTime(strStartDate, this.fpCanada); //en-CA

Ошибка: System.FormatException: строка не была распознана как допустимое значение DateTime.

Я не хочу изменять код для использования TryParseExact или реестра, поэтому я решил изменить региональные настройки ПК, чтобы они соответствовали настройкам старого сервера.

Старый сервер
Текущий формат: английский (Канада)
Краткая дата: дд/мм/гггг

Новый сервер
Текущий формат: английский (Канада)
Краткая дата: гггг-ММ-ДД

После обновления формата даты региональных настроек ПК на дд/мм/гггг я попытался сбросить пул приложений, но, похоже, это ничего не дало.

// Still returns yyyy-MM-dd
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern 

Правильно ли я предполагаю, что региональные настройки ПК имеют прямую связь с ShortDatePattern в .Net?


person MPaul    schedule 23.12.2016    source источник
comment
Вы говорите о культуре на веб-сервере или клиенте?   -  person DavidG    schedule 23.12.2016
comment
Веб-сервер, на котором размещен код   -  person MPaul    schedule 23.12.2016
comment
поэтому я пришел к выводу, что нужно изменить региональные настройки ПК, чтобы они соответствовали настройкам старого сервера. - Вы уверены, что изменили региональные настройки для всей системы и для всех уже существующих пользователей? Обратите внимание, что настройки культуры также настраиваются для каждого пользователя, и если учетная запись пользователя уже существует, старые настройки по-прежнему применяются до тех пор, пока вы не удалите или не обновите файл реестра этого пользователя. Помните, что учетная запись пользователя, под которой работает пул приложений, является его собственным пользователем Windows, даже если он не отображается на панели управления «Пользователи» (например, «Удостоверения служб»).   -  person Dai    schedule 23.12.2016
comment
Вы правы, изменение реестра решило проблему   -  person MPaul    schedule 23.12.2016


Ответы (1)