1

我有一个 MVC 应用程序,我在 web.config 中设置了全球化。一切都在网络应用程序中。但是在我的测试项目中,我的服务层出现了问题。我以以下格式 dd/MM/yyyy 询问出生日期。我将其作为字符串传递给我的服务层。我有一个正则表达式来检查它的格式是否正确,但是当它正确时,我尝试将其转换为日期时出现错误。这是因为 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?

4

2 回答 2

1
ConfigurationSettings.AppSettings["CultureToUse"]

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

于 2010-01-29T22:48:25.583 回答
1

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

CurrentUICulture 属性控制为应用加载的资源。CurrentCulture 是您想要设置/获取以控制解析/格式化的内容。

于 2010-01-30T00:28:48.917 回答