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

302
Vistas
Transforme la cadena ISO en el objeto de fecha javascript sin formato en la fecha local

Estoy tratando de convertir la cadena 2022-02-01T13:36:57+00:00 en un javascript de objeto de fecha que me devuelve Tue Feb 01 2022 13:36:57 sin tener en cuenta la zona horaria.

Pero cada vez que trato de convertir la fecha, regresa: Tue Feb 01 2022 10:36:57 GMT-0300 (Brasilia Standard Time)

Ya probé con moment: let now = moment("2022-02-01T13:36:57+00:00").toDate();

con fecha: let now = new Date("2022-02-01T13:36:57+00:00");

con UTC también: new Date(Date.UTC(2022, 02, 01, 10, 36, 57))

Pero todos me devuelven la fecha local (hora estándar de Brasilia)

Entonces, la pregunta es:

¿Cómo puedo convertir esta cadena 2022-02-01T13:36:57+00:00 en un objeto Fecha que mantiene el mismo día, hora, etc.?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

La marca de tiempo "2022-02-01T13:36:57+00:00" representa un momento único en el tiempo. Si se analiza en un objeto de fecha, creará una instancia de fecha con un valor de tiempo de 1643722617000, que es el desplazamiento en milisegundos desde la época de ECMAScript del 1 de enero de 1970.

El valor de tiempo producido a partir de la marca de tiempo no se ve afectado por la configuración local como:

  1. Se ajusta a uno de los formatos admitidos por ECMA-262 y, por lo tanto, el análisis está especificado por el estándar
  2. Contiene un desplazamiento fijo

El método toString predeterminado produce una marca de tiempo para la fecha y la hora equivalentes en la zona horaria del sistema host, normalmente denominada fecha y hora locales. Producirá una fecha y hora diferente para cada host con un desplazamiento diferente, pero todos representarán exactamente el mismo momento en el tiempo.

P.ej

 let timestamp = '2022-02-01T13:36:57+00:00'; let date = new Date(timestamp); ['UTC','America/Sao_Paulo','Asia/Kolkata'].forEach( loc => console.log(`${date.toLocaleString('default',{timeZone:loc})} - ${loc}`) )

Si desea que la marca de tiempo se analice como local (y eso solo debe hacerse si sabe lo que está haciendo y tiene una muy buena razón para hacerlo), elimine el desplazamiento y analice el resto:

 let timestamp = '2022-02-01T13:36:57+00:00'; let date = new Date(timestamp.substring(0,19)); console.log(date.toString());

Tenga en cuenta que la fecha resultante representa un momento diferente en el tiempo para cada host con un desplazamiento diferente y cada instancia de fecha tendrá un valor de tiempo diferente.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede crear una instancia de su propio formateador Intl.DateTimeFormat o llamar a Date.prototype.toLocaleString() .

 const dateString = '2022-02-01T13:36:57+00:00', date = new Date(dateString), dateFormatter = new Intl.DateTimeFormat('en-US', { timeZone: 'UTC', weekday: 'short', year: 'numeric', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit', timeZoneName: 'long', hour12: false }); console.log(`Local date : ${date}`); console.log(` UTC date : ${dateFormatter.format(date).replace(/,/g, '')}`);

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