我有一个MVC应用程序,我已经在web.config中设置了全球化。一切都很好的在网络应用程序。但在我的测试项目中,我的服务层出现问题。我要用以下格式dd / MM / yyyy询问出生日期。我将此作为字符串传递给我的服务层。我有一个RegEx检查它是否格式正确,但是当它是,我试图将它转换为一个日期,我收到一个错误。这是因为CultureInfo设置为en.US,我希望它是en.GB.我尝试过我的一个初始化测试方法来执行以下操作,但无济于事:
string sCulture = ConfigurationSettings.AppSettings["CultureToUse"]; //returns "en.GB"
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(sCulture);
CultureInfo.CreateSpecificCulture(sCulture);
如何在我的测试项目中设置CultureInfo?
答案 0 :(得分:1)
ConfigurationSettings.AppSettings["CultureToUse"]
必须返回“en-GB”而非“en.GB”,希望这有帮助!
答案 1 :(得分:1)
由于您强制执行数据所在的格式并且它只是数字,因此您不应该依赖于用户定义的设置,最好使用DateTime.ParseExact(dateString,“dd / MM / yyyy”,CultureInfo)。 InvariantCulture的)。
CurrentUICulture属性控制为应用加载的资源。 CurrentCulture是您想要设置/控制解析/格式化的。