Javascript 如何在日期对象上设置localehours()?

Javascript 如何在日期对象上设置localehours()?,javascript,node.js,date,timezone,Javascript,Node.js,Date,Timezone,当我执行 myDate = new Date('2000-02-02 12:30:00') 我得到这样的日期对象2000-02-02T11:30:00.000Z,因为我的时区(欧洲/维也纳)和UTC之间相差一小时 我现在可以通过执行以下操作来更改时间 myDate.setHours(10) 由于一小时的差异,结果将是这样的日期对象2000-02-02T09:30:00.000Z 我还可以通过设置UTC小时数 myDate.setUTCHours(10) 获取这样的dateobject200

当我执行

myDate = new Date('2000-02-02 12:30:00')
我得到这样的日期对象
2000-02-02T11:30:00.000Z
,因为我的时区(欧洲/维也纳)和UTC之间相差一小时

我现在可以通过执行以下操作来更改时间

myDate.setHours(10)
由于一小时的差异,结果将是这样的日期对象
2000-02-02T09:30:00.000Z

我还可以通过设置UTC小时数

myDate.setUTCHours(10)
获取这样的dateobject
2000-02-02T10:30:00.000Z


我在找类似的东西

myDate.setLocaleHours(10, "America/New_York")
(不存在)

在不是我当前时区也不是UTC的时区中,将小时设置为特定值的最佳方法是什么

如何在日期对象上设置localehours()

在不是我当前时区也不是UTC的时区中,将小时设置为特定值的最佳方法是什么

你不能。至少,不在
日期
对象上。它无法根据任意时区设置时间

通过向ECMAScript添加一组新的标准对象,正在进行纠正这一问题的工作。有关更多详细信息,请参阅。时间
ZonedInstant
将具有处理指定时区的功能


然而,现在,您需要一个能够理解时区的库。不过,现在团队推荐现代应用程序开发的时机就是一种选择。另一个很好的选择是。

moment.js timezone插件会对您有所帮助。谢谢,我听说过它,但这是我最后的选择,因为我希望有一个没有依赖关系的解决方案。那么,也许您最好找一个API源,它可以为您提供特定时区的当前偏移量,以便在
设置时间
中使用。夏时制等问题使其变得复杂“2000-02-02 12:30:00”的副本可能不是ECMA-262支持的格式,因此配对取决于实现。它导致至少一个当前浏览器中的日期无效。您可能会考虑时区选项。在LUXON中有点尴尬,因为设置器总是使用DATETIME的区域,所以您需要一些诸如“代码> DT .SETZONE”(“美国/ NeXYYOK”)。SET({小时:10 })。SETZONE(“本地”)< /代码>