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

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

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 Report

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 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!