Conversão de data ISO via JS


Fala pessoal!


Sei que o foco do fórum não é dúvidas de JavaScript, mas talvez alguém já tenha passado por isso em seus bots e possa me ajudar e ajudar alguém que lerá isto no futuro 🙂


Vamos a dúvida:


Estou consumindo uma data e hora de uma API que vem no formato ISO: 2019-10-09T17:33:54.922Z

Ao retornar esta data para o usuáro pelo bot gostria de deixar como um “date e time” convencional: 09/10/2019 / 17:33h


Pois bem, tentei de inúmeras maneiras tratar esta info no script mas não consegui. Na verdade consegui converter ela para “Time Unix”. Usando o Date.parse().


Alguem que já passou por isto consegue dar uma luz?


Meu código:



function run(map) {
var date = JSON.parse(map).arrived;
return date
}


Muito obrigado!


3 comentários

Reputação 5

@Luis_Augusto_Vanzin boa tarde!


Cara tenta isso:


function run(map) {
var date = JSON.parse(map).arrived;
var newDate = date.toLocaleString();
return newDate
}

Pode ser que pegue o local do servidor, não sei se está no Brasil, mas se funcionar informa aqui!


Caso contrário vamos ver outra forma.

Reputação 5

@Luis_Augusto_Vanzin também você pode tentar assim:


function run(map){
var data = new Date(JSON.parse(map).arrived),
dia = data.getDate().toString(),
diaF = (dia.length == 1) ? '0'+dia : dia,
mes = (data.getMonth()+1).toString(), //+1 pois no getMonth Janeiro começa com zero.
mesF = (mes.length == 1) ? '0'+mes : mes,
anoF = data.getFullYear(),
hora = data.getUTCHours().toString(),
minuto = data.getUTCMinutes().toString();
return diaF+"/"+mesF+"/"+anoF + " - " + hora + ":" + minuto;
}

Resulta este valor:




Igor! Sem palavras! Muito, muito obrigado!!


Fiz uns incrementos para pegar o local time e também para corrigir uma questão que estava me retornando uma hora como “20:6”, mas agora ficou tudo certo!


Segue o código para posteridade 😊


Grande abraço!


function run(map){
var data = new Date(JSON.parse(map).arrived),
dia = data.getDate().toString(),
diaF = (dia.length == 1) ? '0'+dia : dia,
mes = (data.getMonth()+1).toString(), //+1 pois no getMonth Janeiro começa com zero.
mesF = (mes.length == 1) ? '0'+mes : mes,
anoF = data.getFullYear(),
hora = (data.getHours()-3).toString(),
minuto = data.getMinutes().toString();
return (diaF + "").padStart(2,"0") + "/"+ (mesF + "").padStart(2,"0") +"/"+ anoF + " - " + (hora + "").padStart(2,"0") + ":" + (minuto + "").padStart(2,"0");
}

Comente