2010-01-29 47 views
1

我有一个MVC应用程序,我已经在web.config中设置了全球化。所有这一切都在网络应用程序。但在我的测试项目中,我的服务层出现问题。我以下面的格式要求出生日期dd/MM/yyyy。我将它作为字符串传递给我的服务层。我有一个RegEx来检查它是否格式正确,但是当它试图将其转换为日期时,我收到一个错误。这是因为CultureInfo设置为en.US,我希望它是en.GB。我试着在我的initialise测试方法做以下操作之一,但无济于事:在测试项目中设置CultureInfo?

string sCulture = ConfigurationSettings.AppSettings["CultureToUse"]; //returns "en.GB" 
     System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(sCulture); 
     CultureInfo.CreateSpecificCulture(sCulture); 

任何想法如何在我的测试项目中设置的CultureInfo?

回答

1

由于您强制执行数据格式并且它只是数字,所以您不应该依赖用户定义的设置,并且最好使用DateTime.ParseExact(dateString,“dd/MM/yyyy”,CultureInfo .InvariantCulture)。

CurrentUICulture属性控制为应用程序加载的资源。 CurrentCulture是你想要设置/获取来控制解析/格式。

+0

做了这份工作,谢谢! – lloydphillips 2010-01-31 09:03:55

1
ConfigurationSettings.AppSettings["CultureToUse"] 

必须返回“en-GB”而不是“en.GB”,希望这有助于!

+0

是的,它已经做到了,对不起是一个错字。 – lloydphillips 2010-01-30 03:59:00

相关问题