Calculo entre datas validatefomr

Estou efetuando um calculo, na validateform que está retornando erro "NaN".


v_periodo = dtstColab.getValue(i, 'datafa'); /* 2000-01-03 00:00:00 */

v_periodo = v_periodo.substr(0, v_periodo.indexOf(" ") ); /* 2000-01-03 */
var dt = new Date(v_periodo); // resultado = NaN
var diffR = Math.abs( data.getTime() - dt.getTime() );
var NewData = parseInt( Math.ceil( diffR / (1000 * 60 * 60 * 24) ) );


Log: Periodo: 2000-01-03 00:00:00
     Data (dt): Invalid Date Diferença: NaN 
     Nova data: NaN
     data.getTime(): 1639401324776 
     dt.getTime(): NaN

Alguem tem ideia de como contornar o erro, obrigado.

Boa tarde, tente converter as datas para o formato "normal" da forma abaixo, fica mais facil para fazer o calculo, depois é so por no HTML do campo o onblur com o calculo(onblur="DifData();"):


<script type="text/javascript">

   Function DifData() {

    var x     = document.getElementById("data_1").value;
    var y     = document.getElementById("data_2").value;
    var DifDT = "";

    var date1 = new Date(parseInt(x.substr(6, 4)),parseInt(x.substr(3, 2)) - 1, parseInt(x.substr(0, 2)));
    var date2 = new Date(parseInt(y.substr(6, 4)),parseInt(y.substr(3, 2)) - 1, parseInt(y.substr(0, 2)));

    DifDT = date2 - date1;

    alert(DifDT);

    }
</script>

Como o validateForm é um evento de formulário, ocorrendo no backend, acredito que usar as classe Java fica mais confiável (java.util.Date, java.text.SimpleDateFormat, java.time.format.DateTimeFormatter, etc).