我最近切换了我的托管提供商,由于服务器现在所在的时区,我的代码已经停止工作。
托管服务器在太平洋时间报告,然而,我的代码需要与GMT一起工作,因为我的网站是针对英国市场的。因此,我所有的显示和搜索都需要采用dd/MM/yyyy 格式
我该如何解释差额?
例如,当我做DateTime时。解析("03/11/2008")它失败了,因为我认为"解析"是针对服务器设置的。在我的代码中,我还得到了"字符串未被识别为有效的DateTime."。
在web.config文件中,在<system.web>
节点下添加<globalization>
元素:
<system.web>
<globalization culture="en-gb"/>
<!-- ... -->
</system.web>
尝试
DateTime.Parse("28/11/2008", new CultureInfo("en-GB"))
查看DateTime的过载。在MSDN上进行分析。
此外,注意不要混淆时区(太平洋,格林尼治标准时间)和文化。文化是你的实际问题。
为了避免处理这些非常无聊的问题,我建议您始终按照标准且唯一的SQL/ISO日期格式(YYYY-MM-DD)解析数据。然后,无论主服务器或查询客户端上的日期参数是什么,您的查询都将在国际范围内工作(其中本地日期设置可能与主服务器设置不同)!
我遇到了这个问题,上面的答案没有解决。所以也许这可以帮助人们不要把头发都扯下来。
我在新服务器上的约会文本框中找到了NaN NaN NaN。发现新服务器具有internet explorer选项"以兼容模式显示intranet站点"。这里的解决方案是放置
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" / >
在aspx的头部强制关闭压缩模式。
这解决了很多奇怪的事情。希望这能帮助到别人!