Как я могу установитьLocaleHours () для объекта даты? - PullRequest
0 голосов
/ 08 ноября 2018

Когда я выполню

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)

чтобы получить подобный объект даты 2000-02-02T10:30:00.000Z


Я ищу что-то похожее на

myDate.setLocaleHours(10, "America/New_York")

(которого не существует)

Каков наилучший способ установить часы для определенного значения в часовом поясе, который не является моим текущим, а также не в формате UTC?

1 Ответ

0 голосов
/ 09 ноября 2018

Как установить setLocaleHours () для объекта даты?

Каков наилучший способ установить часы для определенного значения в часовом поясе, который не является моим текущим, а также не в формате UTC?

Ты не можешь. По крайней мере, не на объекте Date. Он не может устанавливать время на основе произвольного часового пояса.

В настоящее время ведется работа по ее исправлению путем добавления нового набора стандартных объектов в ECMAScript. См. Временное предложение TC39 для получения более подробной информации. Временная ZonedInstant будет иметь функциональность для работы с именованными часовыми поясами.

Однако сейчас вам понадобится библиотека, которая понимает часовые пояса. Момент-часовой пояс является одним из вариантов, однако в настоящее время команда Moment рекомендует Luxon для разработки современных приложений. Еще один отличный вариант - JS-Joda .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...