2012-09-25 64 views
4

我的位置是在格林尼治标准时间+5:30为什么时区偏移返回不同的值?

当我尝试使用JavaScript

var x = new Date(); 
var currentTimeZoneOffsetInHours = x.getTimezoneOffset()/60; 

我得到的值-5.5找到getTimezoneOffset。奇怪的是,当我使用C#做同样的事情时,我使用C#编写的代码。

这个标志是由设计更改还是我错过了任何重要的东西?

回答

6

JavaScript's getTimeZoneOffset返回要添加到本地到UTC的时间的偏移量。 (“该时区从UTC偏移量”的描述具有误导性,IMO)

.NET的GetUtcOffset返回偏移被添加到UTC时间去当地的时间,这是更常规的方法IMO。这基本上只是一个不同的参考点。

请注意,如果您使用.NET 3.5或更高版本,则应该使用TimeZoneInfo而不是TimeZone

+0

也更新为'TimeZoneInfo'。谢谢 :) – naveen

相关问题