Я обнаружил, что toLocaleString может эффективно переводить время в другой часовой пояс, как уже обсуждалось на этом вопросе . Например, чтобы напечатать время в Нью-Йорке:
console.log(new Date().toLocaleString("en-US", {timeZone: "America/New_York"}))
"5/26/2020, 1:27:13 PM"
Отлично; этот код дает мне время в Нью-Йорке, но только в формате строка . Если я хочу сделать что-то программное c на основе часов, мне нужно будет проанализировать эту строку.
Есть ли способ сгенерировать объект даты с указанным c часовым поясом без принуждения это в строку? Например, мне нужна эта воображаемая функция:
const newYork = new Date().toTimezone('America/New_York')
console.log(newYork.getHours(), newYork.getMinutes())
13 27 // <--- 13:27 (1:27pm) in New York, not the browser's timezone
Возможно ли это в JavaScript?