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

时间:2018-11-08 11:28:28

标签: javascript node.js date timezone

执行时

myDate = new Date('2000-02-02 12:30:00')

我得到一个像2000-02-02T11:30:00.000Z这样的日期对象,因为我所在的时区(欧洲/维也纳)与世界标准时间之间相差一小时。

我现在可以通过更改时间来

myDate.setHours(10)

由于一个小时的差异,结果将是一个像2000-02-02T09:30:00.000Z这样的日期对象。

我还可以将UTC时间设置为

myDate.setUTCHours(10)

获取类似2000-02-02T10:30:00.000Z的日期对象


我正在寻找与

类似的东西
myDate.setLocaleHours(10, "America/New_York")

(不存在)

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

1 个答案:

答案 0 :(得分:1)

  

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

     

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

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

正在通过向ECMAScript添加一组新的标准对象来纠正此问题。有关更多详细信息,请参见TC39 Temporal proposal。时间ZonedInstant将具有与命名时区一起使用的功能。

但是,到目前为止,您将需要一个了解时区的库。 Moment-timezone是一种选择,但是,如今,Moment团队建议Luxon用于现代应用程序开发。另一个不错的选择是js-Joda