执行时
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的时区中将小时数设置为特定值的最佳方法是什么?
答案 0 :(得分:1)
如何在日期对象上设置LocaleHours()?
在不是我当前时间也不是UTC的时区中将小时数设置为特定值的最佳方法是什么?
不能。至少不在Date
对象上。它无法根据任意时区设置时间。
正在通过向ECMAScript添加一组新的标准对象来纠正此问题。有关更多详细信息,请参见TC39 Temporal proposal。时间ZonedInstant
将具有与命名时区一起使用的功能。
但是,到目前为止,您将需要一个了解时区的库。 Moment-timezone是一种选择,但是,如今,Moment团队建议Luxon用于现代应用程序开发。另一个不错的选择是js-Joda。