给定偏移量,如何在javascript中将当前时间转换为UTC时间

给定偏移量,如何在javascript中将当前时间转换为UTC时间,javascript,Javascript,有什么方法可以得到当前UTC时间吗? 我想通过做数学得到一个补偿: a = new Date(); Sun Apr 08 2012 16:58:03 GMT+0530 (IST) 然后减去,得到值: b = a.getTimezoneOffset() -330 但同样地,让c像a那样看起来很困难。因此,问题是: 如何以javascript获取当前UTC时间?有一个名为jstimezonedetect的插件,可用于检测时区。你可以找到它 或者使用date的UTC方法,如 c = a - b 1

有什么方法可以得到当前UTC时间吗? 我想通过做数学得到一个补偿:

a = new Date();
Sun Apr 08 2012 16:58:03 GMT+0530 (IST)
然后减去,得到值:

b = a.getTimezoneOffset()
-330
但同样地,让
c
a
那样看起来很困难。因此,问题是:
如何以javascript获取当前UTC时间?

有一个名为jstimezonedetect的插件,可用于检测时区。你可以找到它

或者使用date的UTC方法,如

c = a - b
1333884483552
输出

日期{2012年4月8日星期日18:31:50 GMT+0545(尼泊尔标准时间)}

日期{2012年4月8日星期日12:46:50 GMT+0545(尼泊尔标准时间)}


有一个名为jstimezonedetect的插件,可用于检测时区。你可以找到它

或者使用date的UTC方法,如

c = a - b
1333884483552
输出

日期{2012年4月8日星期日18:31:50 GMT+0545(尼泊尔标准时间)}

日期{2012年4月8日星期日12:46:50 GMT+0545(尼泊尔标准时间)}


首先,JavaScript中的
Date
对象与时区无关。它只存储自epoch以来的毫秒数。此外,它总是为
toString()
get*()
方法使用浏览器时区。您不能在其他时区中创建
Date
实例

因此,只需使用
getUTC*()
方法系列:

var now = new Date(); 
var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),  now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());
以UTC为单位获取时间

最后但并非最不重要的一点是,您的代码已被破坏
a
变量表示
日期
,并在此处转换为毫秒:
c=a-b
。但是
b
等于
a.getTimezoneOffset()
。时区偏移以分钟为单位。您正在从毫秒中减去分钟

另见

首先,JavaScript中的
Date
对象与时区无关。它只存储自epoch以来的毫秒数。此外,它总是为
toString()
get*()
方法使用浏览器时区。您不能在其他时区中创建
Date
实例

因此,只需使用
getUTC*()
方法系列:

var now = new Date(); 
var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),  now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());
以UTC为单位获取时间

最后但并非最不重要的一点是,您的代码已被破坏
a
变量表示
日期
,并在此处转换为毫秒:
c=a-b
。但是
b
等于
a.getTimezoneOffset()
。时区偏移以分钟为单位。您正在从毫秒中减去分钟

另见

如果需要字符串,可以使用
toutString
功能

new Date().getUTCHours()
new Date().getUTCMinutes()
//...

如果需要字符串,可以使用
toutString
函数

new Date().getUTCHours()
new Date().getUTCMinutes()
//...

请提及我将编写的脚本,以获取当前utc时间,如变量a所示。@whatf-huh?您不能在UTC中创建日期。时期但您可以创建日期,然后询问它在UTC中表示的时间(与浏览器/OS时区中的时间相反)。您想要什么样的代码?请提及我将编写的脚本,以获取当前utc时间,如变量a中所示。@whatf-huh?您不能在UTC中创建日期。时期但您可以创建日期,然后询问它在UTC中表示的时间(与浏览器/OS时区中的时间相反)。你想要什么样的代码?这不是一个正确的解决方案,尽管它看起来像一个。。。我的本地时间现在是
14:45:34 GMT+0200(CEST)
,您的代码返回
12:45:34 GMT+0200(CEST)
。它没有返回我当前的UTC时间。相反,它返回过去的
Date
2小时,仍然在我的本地时区
GMT+0200(CEST)
。不,我不是;-)。你的演示支持我<代码>日期表示时间点,与时区无关。对于
18:31:50 GMT+0545
,您的代码应该返回
12:46:50 GMT+0000
——它们表示相同的时间点。但是,您的代码返回两个不同的时间点,都在
GMT+0545
中。请参阅:-这是关于Java的,但是JS中的日期与Java中的日期是1:1。换言之,不同时区的两个相同日期自新纪元起应具有相同的毫秒数(它们代表相同的时间点)。尝试在您的代码上调用
+now
+now\u utc
。@TomaszNurkiewicz,好的,我很困惑这不是一个正确的解决方案,尽管看起来像一个。。。我的本地时间现在是
14:45:34 GMT+0200(CEST)
,您的代码返回
12:45:34 GMT+0200(CEST)
。它没有返回我当前的UTC时间。相反,它返回过去的
Date
2小时,仍然在我的本地时区
GMT+0200(CEST)
。不,我不是;-)。你的演示支持我<代码>日期表示时间点,与时区无关。对于
18:31:50 GMT+0545
,您的代码应该返回
12:46:50 GMT+0000
——它们表示相同的时间点。但是,您的代码返回两个不同的时间点,都在
GMT+0545
中。请参阅:-这是关于Java的,但是JS中的日期与Java中的日期是1:1。换言之,不同时区的两个相同日期自新纪元起应具有相同的毫秒数(它们代表相同的时间点)。试着在你的代码上调用
+now
+now\utc
。@TomaszNurkiewicz,好吧,我搞糊涂了