[Resolvido] 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 :slight_smile:

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!

1 Curtida

@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.

2 Curtidas

@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:

3 Curtidas

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 :blush:

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");
}
3 Curtidas