UNPKG

@genexus/web-standard-functions

Version:

GeneXus JavaScript standard functions library for web generators

63 lines 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GxDatetime = void 0; const configurationState_1 = require("../config/configurationState"); const datetimeToISOString_1 = require("./type-conversions/datetimeToISOString"); const isEmpty_1 = require("./type-conversions/isEmpty"); const localToUTC_1 = require("./type-conversions/localToUTC"); const dTAToDate_1 = require("./type-conversions/dTAToDate"); const iSODateToDTA_1 = require("./type-conversions/iSODateToDTA"); const isValidDate_1 = require("./type-conversions/isValidDate"); class GxDatetime extends Date { serialize() { let utc = configurationState_1.ConfigurationState.getInstance().getConvertTimeFromUTC(); return GxDatetime.serializeUTC(this, utc); } deserialize(isoDatetime) { let utc = configurationState_1.ConfigurationState.getInstance().getConvertTimeFromUTC(); return GxDatetime.deserializeUTC(isoDatetime, utc); } static serializeUTC(datetime, utcToLocal = false) { if (!(0, isEmpty_1.isEmpty)(datetime)) { if (utcToLocal) { return (0, datetimeToISOString_1.datetimeToISOString)((0, localToUTC_1.localToUTC)(datetime)); } else { return (0, datetimeToISOString_1.datetimeToISOString)(datetime); } } return "0000-00-00T00:00:00"; } static deserializeUTC(isoDatetime, utcToLocal = false) { let d; try { const da = (0, iSODateToDTA_1.ISODateToDTA)(isoDatetime); d = (0, dTAToDate_1.DTAToDate)(da, utcToLocal); } catch (_a) { throw new Error('Invalid date: "' + isoDatetime + '"'); } if (!(0, isValidDate_1.isValidDate)(d)) { d = new Date(0, 0, 0); } return new GxDatetime(d); } static createFromDate(d) { return new GxDatetime(d); } fromISOString(isoDate) { return GxDatetime.deserializeUTC(isoDate, false); } static compare(GxDatetime1, GxDatetime2) { let res; if (GxDatetime1.getTime() === GxDatetime2.getTime()) { res = true; } else { res = false; } return res; } } exports.GxDatetime = GxDatetime; //# sourceMappingURL=gxdatetime.js.map