在不同于开发区域设置的区域设置中部署应用程序

时间:2009-03-01 17:05:42

标签: c# .net datetime culture

我的.Net .exe用于读取文件并在sql DB中存储信息。 在开发系统中,我们在美国语言环境中使用默认设置和文件,并且工作正常。

我使用了相同的.exe并部署到我们的Prod服务器上,默认设置和文件都在英国语言环境中。

我使用了Datetime.Parse,它应该以本地系统的格式解析日期,即US MM / dd / yyyy和UK dd / MM / yyyy。

但是,在以英国格式解析日期时,它会给出例外情况,有人可以帮助我解决我在哪里做错了。

我还注意到一些奇怪的事情,当我将开发机器的默认设置更改为英国,然后编译.exe并部署相同的工作。

你能告诉我为什么会这样吗。

3 个答案:

答案 0 :(得分:1)

您必须向DateTime.Parse()方法提供iformatprovider(即System.Globalization.CultureInfo的实例)。顺便说一句,我建议使用TryParse,或者如果你确切知道日期时间字符串是如何到达的,请使用TryParseExact,因为它们要快得多。

答案 1 :(得分:0)

最佳解决方案是在app.config中指定区域设置,覆盖计算机。

答案 2 :(得分:0)

很难说没有更多细节,但是应用服务器 sql server可能运行的语言设置超出预期。即使您在应用程序服务器上正确设置了文化设置,sql server上的日期时间格式仍然不符合预期。