es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo usar el módulo day.js para establecer una zona horaria y convertir el horario establecido desde EST a UTC?

Estoy leyendo en una variable una cadena de caracteres, DateTime = “2019-11-21T08:29:56EST”, de otro archivo. El formato de esta cadena con “EST” es un valor atípico para mis archivos. Quiero identificar esta hora como EST, eliminar los caracteres “EST” de la cadena o obtener solo la hora “2019-11-21T08:29:56” y convertir la hora a UTC. Esto es lo que he intentado hasta ahora. Creo que dayjs asume que DateTime está en UTC, lo cual está impidiendo que ocurra la conversión.

var dayjs = require('dayjs');
var utc = require('dayjs/plugin/utc');
var timezone = require('dayjs/plugin/timezone'); // depende del complemento utc
dayjs.extend(utc);
dayjs.extend(timezone);

var DateTime = "2019-11-21T08:29:56EST";

var split_DateTime = DateTime.split("EST");

if (DateTime.includes("EST")) {
    var UTCDateTime = dayjs.tz(split_DateTime[0]).tz("UTC").format('YYYY-MM-DDTHH:mm:s');
} else{
    var UTCDateTime = split_DateTime[0];
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    En el código proporcionado, la variable DateTime contiene una cadena que representa una fecha y hora en el formato AAAA-MM-DDTHH:mm:ss<huso horario="">. El huso horario en esta cadena está especificado como EST, el cual necesita ser convertido a UTC.

    Para lograr esto, el código utiliza la librería dayjs, la cual proporciona varios métodos para manipular fechas y horas, junto con los complementos utc y timezone.

    El código comienza requiriendo estas librerías y complementos.

    var dayjs = require('dayjs');
    var utc = require('dayjs/plugin/utc');
    var timezone = require('dayjs/plugin/timezone'); // dependiente del complemento utc
    dayjs.extend(utc);
    dayjs.extend(timezone);
    

    A continuación, el código lee la cadena desde otro archivo y la asigna a la variable DateTime.

    var DateTime = "2019-11-21T08:29:56EST";
    

    Para eliminar los caracteres EST de la cadena, el código utiliza el método split() para separar la cadena en el substring EST. Esto devuelve un arreglo con dos elementos: la fecha y hora en el primer elemento y una cadena vacía en el segundo elemento.

    var split_DateTime = DateTime.split("EST");
    

    El código luego verifica si la cadena original contiene el substring EST utilizando el método includes(). Si lo contiene, la fecha y hora en el primer elemento del arreglo split_DateTime se convierte a UTC utilizando los métodos tz() y format().

    if (DateTime.includes("EST")) {
      var UTC_DateTime = dayjs.tz(split_DateTime[0]).tz("UTC").format('YYYY-MM-DDTHH:mm:ss'); 
    } else{  
      var UTC_DateTime = split_DateTime[0];
    }
    

    Finalmente, la variable UTC_DateTime contiene la fecha y hora en formato UTC, sin el substring EST.

Comments are closed.