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

标签 c# javascript

我的位置是格林威治标准时间 +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

这个标志是故意改变的还是我遗漏了什么重要的东西?

最佳答案

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

.NET 的 GetUtcOffset 返回要添加到 UTC 时间的偏移量以获得本地时间,这是 IMO 更传统的方法。基本上,这只是一个不同的引用点。

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

关于c# - 为什么时区偏移返回不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12581881/

相关文章:

c# - 是否可以创建一个 vb.net 或 c# 应用程序以在没有任何移动应用程序的情况下使用蓝牙向移动设备发送通知?

javascript - Jquery 从列表中检索特定 div 的宽度

javascript - 允许访问内部对象但阻止外部修改?

javascript - 根据具有数据属性的类更改宽度/高度

javascript - Jquery 数组通配符

c# - 如何正确保存 WF4 ActivityBuilder

c# - 在 SQL 数据库中存储指标数据时使用什么数据类型?

c# - 如何在 DatePicker 上使用交互性 :Interaction. 触发器

c# - 如何找到两组不连续时间的交集?

javascript - 如何将数字输入设置为 javascript 变量?