Вопрос:
в 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.