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

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

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

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

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

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

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

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

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

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

1 ответ

Региональные и языковые настройки ПК игнорируются в.Net

Я подозреваю, что вы запускаете приложение под идентификатором без собственного профиля, и оно использует региональные настройки по умолчанию, хранящиеся в реестре в папке 'HKEY_USERS.Default\Control Panel\International`.

Другие вопросы по тегам