Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

You are asked to format the date and time in a specific format whenever a new record is inserted.

purnendutiw
Tera Contributor

I have one scenario , that i was practicing for :

You are asked to format the date and time in a specific format whenever a new record is inserted.
Ø Write a Script Include that accepts a date as input and formats it to DD/MM/YYYY HH:MM AM/PM format.

 

 

How can we achieve this by using script include and how can we test it by using business rule.

1 ACCEPTED SOLUTION

yad_achyut
Giga Guru

@purnendutiw  : To Achieve your requirement you can follow the given steps :

Step 1 : 
Create a script include and Save this script as a Script Include with the name DateFormatter
Step 2 :
write the given script in the created Script Include and save it

// Convert input date to GlideDateTime
        var gdt = new GlideDateTime(inputDate);

        // Extract individual components
        var day = gdt.getDayOfMonthNoTZ(); // Day of the month
        var month = gdt.getMonthUTC() + 1; // Month (0-based, so +1)
        var year = gdt.getYearUTC(); // Year

        var hours = gdt.getHourOfDayUTC(); // 24-hour format
        var minutes = gdt.getMinuteUTC(); // Minutes

        // Convert to 12-hour format with AM/PM
        var period = hours >= 12 ? 'PM' : 'AM';
        hours = hours % 12 || 12; // Convert 0-hour to 12-hour format

        // Pad day, month, and minutes with leading zeros
        day = ('0' + day).slice(-2);
        month = ('0' + month).slice(-2);
        minutes = ('0' + minutes).slice(-2);

        // Construct the formatted date
        var formattedDate = day + '/' + month + '/' + year + ' ' + hours + ':' + minutes + ' ' + period;

        return formattedDate;

Step 3: 
Create a business rule and write the following code to test it.

var formatter = new DateFormatter();
var inputDate = '2025-01-27 15:30:00'; // Example input date (in UTC format)
var formattedDate = formatter.formatDate(inputDate);
gs.print('Formatted Date: ' + formattedDate);

View solution in original post

2 REPLIES 2

Ct111
Tera Sage

For understanding the concept check the below reference link

 

LINK

 

I hope this helps.

yad_achyut
Giga Guru

@purnendutiw  : To Achieve your requirement you can follow the given steps :

Step 1 : 
Create a script include and Save this script as a Script Include with the name DateFormatter
Step 2 :
write the given script in the created Script Include and save it

// Convert input date to GlideDateTime
        var gdt = new GlideDateTime(inputDate);

        // Extract individual components
        var day = gdt.getDayOfMonthNoTZ(); // Day of the month
        var month = gdt.getMonthUTC() + 1; // Month (0-based, so +1)
        var year = gdt.getYearUTC(); // Year

        var hours = gdt.getHourOfDayUTC(); // 24-hour format
        var minutes = gdt.getMinuteUTC(); // Minutes

        // Convert to 12-hour format with AM/PM
        var period = hours >= 12 ? 'PM' : 'AM';
        hours = hours % 12 || 12; // Convert 0-hour to 12-hour format

        // Pad day, month, and minutes with leading zeros
        day = ('0' + day).slice(-2);
        month = ('0' + month).slice(-2);
        minutes = ('0' + minutes).slice(-2);

        // Construct the formatted date
        var formattedDate = day + '/' + month + '/' + year + ' ' + hours + ':' + minutes + ' ' + period;

        return formattedDate;

Step 3: 
Create a business rule and write the following code to test it.

var formatter = new DateFormatter();
var inputDate = '2025-01-27 15:30:00'; // Example input date (in UTC format)
var formattedDate = formatter.formatDate(inputDate);
gs.print('Formatted Date: ' + formattedDate);