Updating the date via background script shows the wrong date

SAS21
Tera Guru

I am trying to update the date for a custom field to test a notification 

 

var newDate = "12/01/2023 02:00:00";
var gr = new GlideRecord('u_incident');
gr.addEncodedQuery(' u_status=Pending');
gr.setLimit(1);
gr.query();
if(gr.next())
{
       var pendingStartDate = gr.u_pend_start_date;
        gr.setValue("pendStartDate",newDate);
gr.setWorkflow(false);
gr.autoSysfields(false);
//gr.update();
gs.info('newDate' + newDate);
gs.info('pend date' + pendStartDate);
}

 

The date is updating wrong date and wrong format . Here is the below o/p

Bhavana21_0-1701762560859.png

How to update in correct format ? Appreciate the Help

Thank you

2 REPLIES 2

Community Alums
Not applicable

Hi @SAS21 ,

 

Put your new date to the GlideDateTime format: 

var newDate = new GlideDateTime("2023-01-12 02:00:00");

 

var newDate = new GlideDateTime("2023-01-12 02:00:00");
var gr = new GlideRecord('u_incident');
gr.addEncodedQuery(' u_status=Pending');
gr.setLimit(1);
gr.query();
if(gr.next())
{
        gr.setValue("u_pend_start_date",newDate);
        gr.setWorkflow(false);
        gr.autoSysfields(false);
        gr.update();
        gs.info('newDate' + newDate);
        gs.info('pend date' + gr.u_pend_start_date);
}

 

Sagar Pagar
Tera Patron

Hello @SAS21,

 

Try this updated scripts -

 

var newDate = "12/01/2023 02:00:00";
var date = new GlideDateTine(newDate);

var gr = new GlideRecord('u_incident');
gr.addEncodedQuery(' u_status=Pending');
gr.setLimit(1);
gr.query();
if (gr.next()) {
	var pendingStartDate = gr.u_pend_start_date.toString();
	gr.setValue("pendStartDate", date);
	gr.setWorkflow(false);
	gr.autoSysfields(false);
	//gr.update();
	gs.info('newDate' + newDate);
	gs.info('pend date' + pendStartDate);
}

 

If my response helps you resolve your issue. Kindly mark it as helpful & correct. It will be helpful to future readers! 👍🏻
Thanks,
Sagar Pagar

The world works with ServiceNow