java使用js引擎时,关于时间的问题getTime()获取为NAN的问题

在java中使用js引擎时,想要去获取两个时间的相差的天数,查找网上的办法:

var beginMonth = parseInt(beginTime.substring(6,8),10);//2016-05-17 18:51:33
var beginYear = parseInt(beginTime.substring(1,5),10);
var beginDate = parseInt(beginTime.substring(9,11),10);
oDate2 = new Date(beginMonth + '-' + beginDate + '-' + beginYear );

var endMonth = parseInt(endTime.substring(6,8),10);//2016-05-17 18:51:33
var endYear = parseInt(endTime.substring(1,5),10);
var endDate = parseInt(endTime.substring(9,11),10);
oDate3 = new Date(endMonth + '-' + endDate + '-' + endYear );

iDays = parseInt(Math.abs(oDate3 - oDate2) / 1000 / 60 / 60 /24);

然后测试的时候,获取到idays的值为NAN,但是,这块代码直接在html中去执行,可以获取到真正的idays的值,

经过最后不断测试,把new Date方法修改为new  Date(endYear,endMonth,endDate,0,0,0);就可以正确获取到值

原因可能是java中的js引擎要求时间的格式比较严格

原文地址:https://www.cnblogs.com/tiramisuyj/p/6096800.html