c#和日期文化问题

我写了一个asp.net应用程序,我的一个回发例程只是将用户提交的表单数据保存到sql 2005 db。 所有在我的开发机器上运行都很棒,但是当我部署到实时站点时,我的解析日期检查器的日期无效。

基本上它是期待在现场机器上的美国日期格式,但这不是我想要的。 用户需要能够以dd / MM / yyyy格式输入。 所以像21/10/2009这样的有效日期会在实时服务器上返回错误,但在我的开发机器上却不会。 下面是抛出exception的代码。

DateTime dt; dt = DateTime.Parse(sdate); //sdate in GB dd/MM/yyyy format 

是否可以强制解析例程以dd / MM / yyyy格式预期日期?

这样做:

  System.Globalization.CultureInfo cultureinfo = new System.Globalization.CultureInfo("en-gb"); DateTime dt = DateTime.Parse("13/12/2009", cultureinfo); 

您可以使用DateTime.ParseExact指定预期的格式。

另一个选项是在web.config文件中指定要使用的区域性:

  ...   

是的,ParseExact会像Matt所说的那样做。

代码如下:

 dt = DateTime.ParseExact(sdate, "dd/MM/yyyy", CultureInfo.InvariantCulture);