Вопрос web.config:DateTime.Parse с использованием культуры ан-нас, несмотря на настройки
в 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")
бросает исключение
К сожалению, только на TestServer, а не на моей системе развития. У меня нет доступа к серверу testerver, за исключением того, чтобы скопировать webapp в share.
я могу воспроизвести исключение вроде этого:
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, и нет никакой культуры установлен в осины странице
(я имею в виду это:
<% @Page Culture="fr-FR" Language="C#" %>
)
Если установить
System.Threading.Thread.CurrentThread.CurrentCulture
и
System.Threading.Thread.CurrentThread.CurrentUICulture
де-ч в самом начале 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.
Вместо того, чтобы устанавливать это на каждой странице, вы можете установить в '' '' Begin_Request'' '' '' Global.asax.cs''', и он будет работать так же. –