我最近切换了我的托管服务提供商,由于服务器现在所在的时区,我的代码已停止工作。
托管服务器在太平洋时间报告,但是,我的代码需要与GMT合作,因为我的网站是针对英国市场的。因此,我的所有显示和搜索都必须采用dd / MM / yyyy
格式我如何解释差异?
例如,当我执行DateTime.Parse(“03/11/2008”)时,它会失败,因为我认为'Parse'是针对服务器设置的。我也得到“字符串未被识别为有效的DateTime”。在我的代码中。
答案 0 :(得分:7)
在您的web.config文件中,在<globalization>
node:
<system.web>
元素
<system.web>
<globalization culture="en-gb"/>
<!-- ... -->
</system.web>
答案 1 :(得分:3)
尝试
DateTime.Parse("28/11/2008", new CultureInfo("en-GB"))
看看the overload for DateTime.Parse on MSDN。
另外,请注意不要将时区(太平洋,格林尼治标准时间)与文化混淆。 文化是你在这里的实际问题。
答案 2 :(得分:1)
为了避免处理这些非常无聊的问题,我建议您始终按照标准和唯一的SQL / ISO日期格式YYYY-MM-DD解析数据。您的查询将在国际上运行,无论主服务器或查询客户端上的日期参数如何(本地日期设置可能与主服务器设置不同)!
答案 3 :(得分:0)
我遇到了上述问题无法解决的问题。所以也许这可以帮助别人不要撕掉所有的头发..
我在日期文本框中的新服务器上安装了NaN-NaN-Nan。发现新服务器具有Internet Explorer选项&#34;在Compability Mode&#34;中显示Intranet站点。 这里的解决方法是放
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" / >
在aspx的头部强制关闭兼容模式。
这解决了很多奇怪的事情。 希望这有助于某人!