parseDate()

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);
        }
    }