AJAX的DateTime偏移问题

时间:2013-10-15 01:25:34

标签: javascript asp.net datetime rad-controls timezone-offset

这更像是KB而不是问题。最近我遇到了一个有趣的问题并提供了解决方案。想分享。

环境: .NET 3.5,ASP.NET Web表单应用程序使用javascript,RadControls

问题:使用RadDatePicker保存日期时,我们在新西兰的客户在保存时将日期减1。

调查我发现这只发生在设置为NZ的时区,在客户端机器(浏览器机器)上有夏令时,因为一些聪明的代码,否则它会在所有+时间发生区。

原因: RadControl GetDate()方法返回日期时间,时间偏移量为viz。 15/10/2013 00:00:00 UTC +13。因此,当javascript通过AJAX将日期时间传递给处理程序方法时,.NET方法减去UTC偏移量(在这种情况下为+13)。因此,日期逐渐减少1.从现在开始,我们隐藏起来,因为一个聪明的代码增加了12个小时。因此,当服务器从UTC添加或减去最多12个小时时,日期保持不变。但现在新西兰的夏令时是+13小时。

解决方法:目前我们已经增加了12到13个小时(不那么聪明)。我们不能使用.NET的ToLocalTime()方法,因为它会给服务器时间。其他可能的解决方案可能是从javascript只向.NET方法发送日期。另请参阅使用DateTimeOffset类而不是.NET的DateTime类。

0 个答案:

没有答案