Вопрос:
в web.config в разделе
system.web
У меня есть
<globalization culture="de-ch" uiCulture="de-ch" requestEncoding="UTF-8" responseEncoding="UTF-8"/>
Мне нужно разобрать строку, подобную этой
"20.03.2012 00:00:00"
для значения даты / времени
, но
DateTime dtAsIs = DateTime.Parse("20.03.2012 00:00:00")
вызывает исключение
К сожалению, только на тестовом сервере, а не в моей системе разработки.У меня нет доступа к тест-серверу, кроме как скопировать веб-приложение в общую папку Windows.
Я могу воспроизвести исключение следующим образом:
DateTime dtThrowsException = DateTime.Parse("20.03.2012 00:00:00",new System.Globalization.CultureInfo("en-us"));
Тогда как оно работает нормально так:
DateTime dtWorks = DateTime.Parse("20.03.2012 00:00:00",new System.Globalization.CultureInfo("de-ch"));
Я проверил страницу ASP, и на странице asp НЕТ установленной культуры
(я имею в виду:
<% @Page Culture="fr-FR" Language="C#" %>
)
Если я установлю
System.Threading.Thread.CurrentThread.CurrentCulture
и
System.Threading.Thread.CurrentThread.CurrentUICulture
на de-ch в самом начале Page_Load, как это
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("de-ch");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("de-ch");
, тогда он будет работать нормально.
Язык браузера установлен на "de-ch", я проверил это.
Кто-нибудь может сказать, почему для нить-культуры задан английский язык?
Я имею в видуочевидная причина в том, что операционная система сервера - английская, но я не могу изменить ее, только настройки в web.config.