javascript - getTimezoneOffset()减去后的时间戳引用是多少?

标签 javascript timezone timezone-offset

例如我有这个:

d = new Date(2013,04,20,14,56,10)
Mon May 20 2013 14:56:10 GMT+0800 (SGT)
dt = d.getTime() /1000
1369032970

现在,timezoneOffset 值为

d.getTimezoneOffset()*60
-28800

所以如果我减少它,我就会得到

dt -= d.getTimezoneOffset()*60
1369061770

我的问题是,1369032970 是我的本地时间戳,而 1369061770 是 UTC 时间戳吗?

我可以肯定地说,任何当前时间戳减去 timezoneOffset 就是 UTC 时间戳吗?

最佳答案

getTime 的结果以毫秒为单位,自 1970 年 1 月 1 日 UTC 以来。本地时区不参与其中。因此,如果您的问题是如何获取 UTC 时间戳,只需使用 getTime 的结果,无需任何修改。

“本地时间戳”的想法并不是很有用。人们可能会在将 UTC 时间戳呈现为人类可读的日期字符串之前对其应用偏移量 - 但在 Javascript 中,这已经在幕后为您完成了。您确实不想将数字时间戳传递给其他任何人,除非它是严格的 UTC,因为“本地”的含义将会丢失。

此外,当您调用 getTimezoneOffset 时,您将返回日期表示的时刻的特定偏移量 - 以分钟为单位。此外,该符号与我们通常看到的时区偏移量相反。例如,我住在亚利桑那州,全年偏移量为 UTC-07:00。但调用 getTimezoneOffset 会返回正值 420。如果您为其应用时间戳,您将执行以下操作:

dt -= dt.getTimezoneOffset() * 60 * 1000;

您几乎已经完成了,但忘记从秒转换为毫秒。但正如我所说,这个值毫无意义。如果您从中创建了一个新的 Date 对象,它将显示两次应用的偏移量 - 一次由您自己的代码执行,另一次由 Javascript 内部执行。

关于javascript - getTimezoneOffset()减去后的时间戳引用是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16646465/

相关文章:

time - 在 Go 中将 UTC 转换为 "local"时间

timezone - 提供带有偏移量的日期字符串(+0530)与在显示名称中单独指定时区(亚洲/加尔各答)

javascript - 将数组添加到数组列表中为空

javascript - 将 knockout.simpleGrid.3.0.js 与 Require.js 结合使用

javascript - 如何在 React Native 中更改按钮的颜色?

mysql - 使用 mysql 按时区显示工作日

java - 如何获取TimeZone类中的具体时间

javascript - 如何在 Razor 页面上替换 JavaScript 中的 @ 符号?

ruby - 如何在 ruby​​ 中将时区名称转换为短名称

Java 没有关于所有 IANA 时区的信息