Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

195
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!