UNPKG

postgrejs

Version:

Professional PostgreSQL client NodeJS

31 lines (30 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TIME_PATTERN = exports.STRICT_TIME_PATTERN = void 0; exports.parseTime = parseTime; const fast_parseint_js_1 = require("./fast-parseint.js"); // noinspection RegExpUnnecessaryNonCapturingGroup exports.STRICT_TIME_PATTERN = /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(?:\.(\d+))?(?:(Z)|(?:([+-])([01]?[0-9]|2[0-3]):?([0-5][0-9])?))?$/; // noinspection RegExpUnnecessaryNonCapturingGroup exports.TIME_PATTERN = /^([01][0-9]|2[0-3]):?([0-5][0-9]):?([0-5][0-9])?(?:\.(\d+))?(?:(Z)|(?:([+-])([01]?[0-9]|2[0-3]):?([0-5][0-9])?))?$/; function parseTime(str, parseTimeZone, utc) { const m = str.match(exports.TIME_PATTERN); if (!m) return new Date('invalid'); const args = [ 1970, 0, 1, 0, 0, 0, 0, ]; for (let i = 1; i < 4; i++) { const s = m[i]; args[i + 2] = (0, fast_parseint_js_1.fastParseInt)(s) || 0; } if (parseTimeZone && m[6]) { const r = m[9] === '-' ? -1 : 1; args[3] -= ((0, fast_parseint_js_1.fastParseInt)(m[7]) || 0) * r; args[4] -= ((0, fast_parseint_js_1.fastParseInt)(m[8]) || 0) * r; return new Date(Date.UTC(...args)); } if (m[5] || utc) return new Date(Date.UTC(...args)); return new Date(...args); }