2012-09-25 97 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

相關問題