Date Object Javascript creates wrong time while using milliseconds

i have encountered a funny problem. I´m writing a litte home automation tool and write device information into a sqlite database.

I also save the last lifecheck as a string 'YYYY-MM-DD hh:mm.ms'.

While restarting the program i read from the database the values and want to save them into my class.

So i read a string with the timestamp from the database, called lastLck and parse the different parameters:

var yr1 = parseInt(lastLck.substring(0,4));
var mon1 = parseInt(lastLck.substring(5,7));
var dy1 = parseInt(lastLck.substring(8,10));

var h1 = parseInt(lastLck.substring(11,13));
var m1 = parseInt(lastLck.substring(14,16));
var ms1 = parseInt(lastLck.substring(17,20));

var newDate = new Date(yr1, mon1, dy1, h1, m1, ms1);

But this won´t get the correct datetime in regards of the milliseconds. I tried for two devices and allways get rounded time:

String from database: ++ Compare ++: 2014-08-05 16:40.86
Dump from new Date Object: ++ Compare ++: 2014-08-05 16:41.0
Dump of parameters: ++ Compare ++: 2014-8-5 16:40.86
Dump of newDate.ToLocaleString() ++ Compare ++: Fri Sep 05 2014 16:41:26 GMT+0200 (CEST)

++ Compare ++: 2014-08-05 16:40.101
++ Compare ++: 2014-08-05 16:41.0
++ Compare ++: 2014-8-5 16:40.101
++ Compare ++: Fri Sep 05 2014 16:41:41 GMT+0200 (CEST)

Can anyone explain this behaviour and how i can get the exact date within my object?+

You should be able to simply pass the string interpretation of the Date into the Date Constructor:

var date = new Date(lastCheck);

MDN Date Time Documentation explains pretty well.