.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`.