in salesforce/lib/date.js [134:165]
parseDate(str) {
let d = new Date();
let regexp = /^([\d]{4})-?([\d]{2})-?([\d]{2})(T([\d]{2}):?([\d]{2}):?([\d]{2})(.([\d]{3}))?(Z|([\+\-])([\d]{2}):?([\d]{2})))?$/;
let m = str.match(regexp);
if (m) {
d = new Date(0);
if (!m[4]) {
d.setFullYear(parseInt(m[1], 10));
d.setDate(parseInt(m[3], 10));
d.setMonth(parseInt(m[2], 10) - 1);
d.setHours(0);
d.setMinutes(0);
d.setSeconds(0);
d.setMilliseconds(0);
} else {
d.setUTCFullYear(parseInt(m[1], 10));
d.setUTCDate(parseInt(m[3], 10));
d.setUTCMonth(parseInt(m[2], 10) - 1);
d.setUTCHours(parseInt(m[5], 10));
d.setUTCMinutes(parseInt(m[6], 10));
d.setUTCSeconds(parseInt(m[7], 10));
d.setUTCMilliseconds(parseInt(m[9] || "0", 10));
if (m[10] && m[10] !== "Z") {
let offset = parseInt(m[12], 10) * 60 + parseInt(m[13], 10);
d.setTime((m[11] === "+" ? -1 : 1) * offset * 60 * 1000 + d.getTime());
}
}
return d;
} else {
throw new Error("Invalid date format is specified : " + str);
}
}