Convertir una cadena ISO en un objeto Date en JavaScript

En JavaScript, trabajar con fechas y horas es muy común. En algunas situaciones, tendremos que manipular una cadena ISO y convertirla en un objeto Date para poder trabajar con ella. En este artículo, te enseñaremos a cómo convertir una cadena ISO en un objeto Date en JavaScript.
¿Qué es una cadena ISO?
La cadena ISO es un formato de fecha y hora que sigue una sintaxis específica. La sintaxis es la siguiente:
YYYY-MM-DDTHH:mm:ss.sssZ
Donde:
- YYYY: Año de cuatro dígitos
- MM: Mes de dos dígitos (01-12)
- DD: Día de dos dígitos (01-31)
- HH: Hora de dos dígitos en formato de 24 horas (00-23)
- mm: Minutos de dos dígitos
- ss: Segundos de dos dígitos
- sss: Milisegundos de tres dígitos
- Z: Indica el uso de la zona horaria UTC
Convertir una cadena ISO en un objeto Date
Para convertir una cadena ISO en un objeto Date, podemos usar el método Date.parse(), el cual toma la cadena ISO y devuelve el número de milisegundos desde el 1 de enero de 1970 a las 00:00:00 UTC. Posteriormente, podemos crear un nuevo objeto Date utilizando este número de milisegundos.
Aquí te dejamos un ejemplo de cómo convertir una cadena ISO en un objeto Date:
const isoDate = "2021-05-10T15:30:00.000Z";
const date = new Date(Date.parse(isoDate));
console.log(date);
Este código imprimirá la fecha y hora correspondiente a la cadena ISO específicada en la consola.
¿Qué pasa si la cadena ISO tiene una zona horario diferente a UTC?
Si la cadena ISO tiene una zona horaria diferente a UTC, podemos utilizar la biblioteca moment.js para convertir la zona horaria local de la cadena ISO a UTC.
Por ejemplo:
const isoDate = "2021-05-10T15:30:00.000-07:00";
const utcDate = moment(isoDate).utc().toDate();
console.log(utcDate);
Este código imprimirá la fecha y hora convertida a UTC correspondiente a la cadena ISO específicada en la consola.
Preguntas frecuentes
¿Es posible convertir una cadena ISO a otro formato de fecha u hora?
Sí, una vez que tenemos el objeto Date, podemos utilizar los métodos del mismo para obtener los valores de la fecha yhora en diferentes formatos.
¿Cómo puedo verificar si una cadena es una cadena ISO?
Podemos utilizar el método Date.parse(). Si este método devuelve NaN, significa que la cadena no es una cadena ISO válida.
¿Qué pasa si la cadena ISO no incluye milisegundos?
Si la cadena ISO no incluye milisegundos, se considera que los milisegundos son 0. Por ejemplo, si la cadena ISO es "2021-05-10T15:30:00Z", el objeto Date correspondiente tendrá milisegundos de 0.
¿Qué pasa si la cadena ISO no incluye zona horaria?
Si la cadena ISO no incluye zona horaria, se considera que es UTC. Por ejemplo, si la cadena ISO es "2021-05-10T15:30:00.000", el objeto Date correspondiente se convertirá automáticamente a la zona horaria local del navegador.
Ejemplos de código
Aquí te dejamos algunos ejemplos de código relacionados con el tema de este artículo:
- Cómo obtener la fecha y hora actual en formato ISO
- Cómo comparar dos objetos Date en JavaScript
- Cómo sumar o restar días a una fecha en JavaScript
Conclusión
Convertir una cadena ISO en un objeto Date en JavaScript es muy sencillo utilizando el método Date.parse(). Si la cadena ISO tiene una zona horaria diferente a UTC, podemos utilizar la biblioteca moment.js para convertir la zona horaria local de la cadena ISO a UTC. Esperamos que este artículo te haya sido de ayuda en tu trabajo con fechas y horas en JavaScript.
[nekopost slugs="string-array-javascript,comando-npm-no-se-encuentra,insercion-de-variable-en-cadena-usando-javascript,obtener-el-valor-de-texto-de-entrada-establecido-javascript,fecha-de-formato-como-a-yyyy-mm-dd-en-javascript,iterar-a-traves-de-objetos-en-javascript,impresion-de-la-consola-javascript,como-obtener-la-fecha-y-hora-actuales-en-javascript,eliminar-las-cadenas-de-caracteres-js"]

Deja una respuesta