我的位置是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
。
这个标志是否因设计而改变,或者我错过了哪些重要内容?
答案 0 :(得分:6)
JavaScript's getTimeZoneOffset
返回要添加到 local 时间以获得UTC的偏移量。 (“时区偏离UTC”的描述具有误导性,IMO。)
.NET GetUtcOffset
返回要添加到 UTC 时间的偏移量以获得当地时间,这是更常规的方法IMO。它基本上只是一个不同的参考点。
请注意,如果您使用的是.NET 3.5或更高版本,则应该使用TimeZoneInfo
而不是TimeZone
。