Converta qualquer data de local para string de data de local en-US

Oct 14 2020

Converti o aplicativo para o alemão como formato regional e o locale_id está registrado, pois posso ver o formato de data esperado. Mas, como tenho a data mostrada no formato alemão, que é 13.10.2020 ( usa o caractere especial "." E o formato é "DD.MM.AAAA" )

Quando eu seleciono a data no selecionador de data, ela é selecionada conforme o esperado, mas ao salvar eu tenho que converter o formato no local normal en-US para o banco de dados armazenar.

Por exemplo - Alemão como locale_ID -> O formato da data é DD.MM.AAAA Mas, enquanto salvo, quero convertê-lo em AAAA-MM-DD

Eu tentei seguir -

  1. FormatDate ("DD.MM.YYYY", "shortDate", "en-US") de @ angular / common, mas gera um erro de Data inválida
  2. moment ("DD.MM.AAAA"). formato ("AAAA-MM-DD") de moment.js, mas isso me dá uma data inválida.

Você poderia me ajudar explicando como devo alterar a data para o local en-US sem alterar o locale_Id, pois desejo o sistema apenas em alemão.

Meu sistema aceita quase todas as localidades, então alemão para en-US é um exemplo. Portanto, estou procurando uma maneira genérica de convertê-lo.

Respostas

beingyogi Oct 15 2020 at 07:32

Você pode tentar isso com Moment.js

console.log(moment("02.04.2021", "DD.MM.YYYY").format('YYYY-MM-DD'));

    moment.locale(this.locale);
    if (!format) { format = "YYYY-MM-DD"; }
    var localeFormat = moment.localeData().longDateFormat('L');
    return moment(date, localeFormat).format(format);