ServiceNow GlideDateTime cheat sheet

GlideDateTime stores date-time values in UTC and shows them in the user’s time zone. Use it instead of JavaScript Date on the server.

Server7 methods · examples checked with the Script Checker · reviewed October 2026

new GlideDateTime()

#

The current date and time. Pass a value in UTC ("yyyy-MM-dd HH:mm:ss") to create a specific moment.

var now = new GlideDateTime();
var fixed = new GlideDateTime('2026-10-18 09:00:00'); // UTC

getValue() / getDisplayValue()

#

getValue() gives the UTC value in the internal format; getDisplayValue() gives the user's time zone and date format.

var now = new GlideDateTime();
gs.info(now.getValue());        // UTC, yyyy-MM-dd HH:mm:ss
gs.info(now.getDisplayValue()); // user's time zone and format

new GlideDateTime(record.getValue(field))

#

Reads a date-time field into a GlideDateTime.

var opened = new GlideDateTime(current.getValue('opened_at'));

addDaysLocalTime(n) / addDaysUTC(n) / addSeconds(n)

#

Adds time. LocalTime methods follow the user's time zone (and daylight saving); UTC methods do not.

var due = new GlideDateTime();
due.addDaysLocalTime(3);
due.addSeconds(3600);
current.setValue('due_date', due.getValue());

addDays() is deprecated; use addDaysLocalTime() or addDaysUTC(). Use negative numbers to go back.

before(gdt) / after(gdt) / compareTo(gdt)

#

Compares two date-times. compareTo() returns -1, 0 or 1.

var due = new GlideDateTime(current.getValue('due_date'));
if (due.before(new GlideDateTime())) {
    current.setValue('u_overdue', true);
}

GlideDateTime.subtract(start, end)

#

Returns the time between two date-times as a GlideDuration.

var opened = new GlideDateTime(current.getValue('opened_at'));
var duration = GlideDateTime.subtract(opened, new GlideDateTime());
gs.info('Open for ' + duration.getDisplayValue());

getNumericValue()

#

Milliseconds since 1 January 1970 (UTC). Handy for quick arithmetic.

var start = new GlideDateTime(current.getValue('opened_at'));
var hours = (new GlideDateTime().getNumericValue() - start.getNumericValue()) / 3600000;

Frequently asked questions

Why not use JavaScript Date in ServiceNow?

new Date() runs in the server time zone and does not understand ServiceNow date formats or user time zones. GlideDateTime handles both.