Я настраиваю новый сервер и испытываю проблемы с синтаксическими датами, когда следующий код отлично работал на старом сервере, но не на новом сервере..Net CurrentCulture ShortDateFormat не обновляется в соответствии с региональными настройками ПК
IFormatProvider fpCanada = System.Globalization.CultureInfo.CreateSpecificCulture("en-CA");
Convert.ToDateTime(strStartDate, this.fpCanada); //en-CA
Error: System.FormatException: String was not recognized as a valid DateTime.
Я не хочу, чтобы изменить код, чтобы использовать TryParseExact
или реестр, так что мой вывод был изменить региональные настройки на ПК, совпадающее старого сервера.
Старый сервер
Текущий формат: английский (Канада)
Короткая дата: дд/ММ/ГГГГ
Новый сервер
Текущий формат: английский (Канада)
Short Дата: гггг -MM-DD
После обновления формата даты региональных настроек ПК на dd/MM/yyyy я попытался сбросить пул приложений, но это, похоже, ничего не сделал.
// Still returns yyyy-MM-dd
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern
я не прав, предполагая, что региональные настройки ПК имеют прямую корреляцию с ShortDatePattern
в .NET?
Вы говорите о культуре на веб-сервере или клиенте? – DavidG
Веб-сервер, где размещается код – MPaul
«так что я решил изменить региональные настройки ПК в соответствии с настройками старого сервера». - Вы уверены, что изменили региональные настройки в системе и для всех уже существующих пользователей? Обратите внимание, что настройки культуры также доступны для каждого пользователя, и если учетная запись пользователя уже существует, старые настройки все еще применяются до тех пор, пока вы не удалите или не обновите файл реестра пользователя. Помните, что учетная запись пользователя, к которой запущен пул приложений, является ее собственным пользователем Windows, даже если она не отображается в панели управления «Пользователи» (например, служебные идентификаторы). – Dai