UNPKG

@genexus/web-standard-functions

Version:

GeneXus JavaScript standard functions library for web generators

59 lines 2 kB
import { ConfigurationState } from "../config/configurationState"; import { datetimeToISOString } from "./type-conversions/datetimeToISOString"; import { isEmpty } from "./type-conversions/isEmpty"; import { localToUTC } from "./type-conversions/localToUTC"; import { DTAToDate } from "./type-conversions/dTAToDate"; import { ISODateToDTA } from "./type-conversions/iSODateToDTA"; import { isValidDate } from "./type-conversions/isValidDate"; export class GxDatetime extends Date { serialize() { let utc = ConfigurationState.getInstance().getConvertTimeFromUTC(); return GxDatetime.serializeUTC(this, utc); } deserialize(isoDatetime) { let utc = ConfigurationState.getInstance().getConvertTimeFromUTC(); return GxDatetime.deserializeUTC(isoDatetime, utc); } static serializeUTC(datetime, utcToLocal = false) { if (!isEmpty(datetime)) { if (utcToLocal) { return datetimeToISOString(localToUTC(datetime)); } else { return datetimeToISOString(datetime); } } return "0000-00-00T00:00:00"; } static deserializeUTC(isoDatetime, utcToLocal = false) { let d; try { const da = ISODateToDTA(isoDatetime); d = DTAToDate(da, utcToLocal); } catch (_a) { throw new Error('Invalid date: "' + isoDatetime + '"'); } if (!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; } } //# sourceMappingURL=gxdatetime.js.map