为什么时区偏移返回不同的值?

时间:2012-09-25 11:20:30

标签: c# javascript

我的位置是GMT +5:30

当我尝试使用JavaScript

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

我得到了值-5.5。奇怪的是,当我使用C#

做同样的事情时
var localZone = TimeZone.CurrentTimeZone;
var localOffset = localZone.GetUtcOffset(new Date());
var currentTimeZoneOffsetInHours = localOffset.TotalHours;

返回值为5.5

这个标志是否因设计而改变,或者我错过了哪些重要内容?

1 个答案:

答案 0 :(得分:6)

JavaScript's getTimeZoneOffset返回要添加到 local 时间以获得UTC的偏移量。 (“时区偏离UTC”的描述具有误导性,IMO。)

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

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