@genexus/web-standard-functions
Version:
GeneXus JavaScript standard functions library for web generators
63 lines • 2.33 kB
JavaScript
;
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