Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

193
Vistas
Cómo obtener la hora UTC dada cualquier zona horaria y hora (considerando el horario de verano)

Un ejemplo sería las 9 a. m. CST (hora central estándar) o las 6 a. m. CET (hora central europea).

El uso de cualquier nueva llamada Date() siempre me dará una fecha en mi zona horaria local (BST o GMT+1).

Creo que primero necesito crear la fecha en la zona horaria deseada, ¿no?

 function convertToUTC(date, tzString) { // some code? } let resp = convertToUTC("2022-07-12 09:00:00", "America/Chicago"); console.log(resp) should be "2022-07-12T14:00:00Z"
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Basado en la documentación de MDN .

 console.log(new Intl.DateTimeFormat('en-GB', { dateStyle: 'full', timeStyle: 'long' }).format(date));

Esto generará

 // Expected output "Sunday, 20 December 2020 at 14:23:16 GMT+11"

Hay muchas opciones y muchos lugares. Puedes consultarlos todos aquí .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Definitivamente sugeriría usar una biblioteca de fecha/hora especializada para este propósito.

La conversión de zona horaria en JavaScript estándar es complicada, por decir lo mínimo (especialmente la conversión de una zona horaria a UTC)

Sin embargo, esto es bastante sencillo en luxon :

Estoy usando la función DateTime.fromSQL() aquí ya que coincide con el formato de marca de tiempo de entrada.

 const { DateTime } = luxon; function convertToUTC(date, tzString) { const dt = DateTime.fromSQL(date, { zone: tzString }); return dt.setZone('UTC'); } console.log(convertToUTC("2022-07-12 09:00:00", "America/Chicago")); console.log(convertToUTC("2022-07-12 09:00:00", "America/Los_Angeles")); console.log(convertToUTC("2022-07-12 09:00:00", "Europe/London"));
 .as-console-wrapper { max-height: 100% !important; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/2.3.1/luxon.min.js" integrity="sha512-Nw0Abk+Ywwk5FzYTxtB70/xJRiCI0S2ORbXI3VBlFpKJ44LM6cW2WxIIolyKEOxOuMI90GIfXdlZRJepu7cczA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

Podemos hacer esto en JavaScript estándar, es un poco incómodo.

Básicamente, estamos buscando la fecha UTC que, cuando se convierta a la zona horaria de destino, será igual a la fecha de destino.

Estoy usando la configuración regional 'sv' ya que nos dará las marcas de tiempo ISO.

 function convertToUTC(date, tzString) { const dt = Date.parse(toIso(date) + 'Z'); for(let offsetMinutes = -840; offsetMinutes <= 660; offsetMinutes += 15) { const utc = new Date(dt + offsetMinutes * 60000); if (toIso(date) === toIso(utc, tzString)) { return toIso(utc, 'UTC') + 'Z'; } } } function toIso(date, timeZone) { return new Date(date).toLocaleString('sv', { timeZone }).replace(' ', 'T'); } console.log(convertToUTC("2022-07-12 09:00:00", "America/Chicago")); console.log(convertToUTC("2022-07-12 09:00:00", "America/Los_Angeles")); console.log(convertToUTC("2022-07-12 09:00:00", "Europe/London"));
 .as-console-wrapper { max-height: 100% !important; }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda