2016-12-23 25 views
0

Я настраиваю новый сервер и испытываю проблемы с синтаксическими датами, когда следующий код отлично работал на старом сервере, но не на новом сервере..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?

+0

Вы говорите о культуре на веб-сервере или клиенте? – DavidG

+0

Веб-сервер, где размещается код – MPaul

+1

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

ответ