Por ejemplo, si la salida de la API es "13:29" y el horario de verano de la montaña es -6 UTC, ¿cómo voy a restar 6 de la marca de 13 horas? Ya tengo la diferencia horaria UTC local calculada a continuación.
const date = new Date(); let timeDifference = date.getTimezoneOffset() / 60;
Puede obtener la hora local configurando las horas/minutos UTC de una nueva fecha.
const utcTimeToLocalTime = (utcTime, hour12 = false) => { const [hour, minute] = utcTime.split(':').map(v => parseInt(v, 10)); const now = new Date(); now.setUTCHours(hour); now.setUTCMinutes(minute); return now.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12 }); }; console.log(utcTimeToLocalTime('13:29')); // 09:29 (EDT) or 06:29 (PDT) console.log(utcTimeToLocalTime('13:29', true)); // 09:29 AM (EDT) or 06:29 AM (PDT)