unable to format 07/2/2020 format string error message.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
I am getting an error when I run my Transform script.
Error message - Unable to format 07/20/2020 to format string using yyyy-mm-dd for field u_purchase date.
The date format in u_purchase date is mm/dd/yyyy. I set the date format for the field mapping to match the source field - u_purchase_date. Still geting the same error message in the Transform logs. Any suggestions on what i can do to resolve this?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
hey @OluseyiS3924078
The issue is due to incorrect date format tokens. In ServiceNow, date formats are case-sensitive:
MM = Month
mm = Minutes
If you use yyyy-mm-dd, the system reads it as year-minute-day, which causes the formatting error.
Since your source format is MM/dd/yyyy, you can handle it safely with a transform script like below.
onBefore Transform Script:
(function transformRow(source, target, map, log, isUpdate) {
if (source.u_purchase_date) {
try {
var sourceDate = source.u_purchase_date.toString().trim();
var gdt = new GlideDateTime();
gdt.setDisplayValue(sourceDate, "MM/dd/yyyy");
target.u_purchase_date = gdt;
} catch (e) {
log.error("Date conversion failed for value: " + source.u_purchase_date + " Error: " + e.message);
}
}
})(source, target, map, log, action === "update");*************************************************************************************************************************************
If this response helps, please mark it as Accept as Solution and Helpful.
Doing so helps others in the community and encourages me to keep contributing.
Regards
Vaishali Singh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
hey @OluseyiS3924078
Hope you are doing well.
Did my previous reply answer your question?
If it was helpful, please mark it as correct ✓ and close the thread . This will help other readers find the solution more easily.
Regards,
Vaishali Singh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @OluseyiS3924078 , If the field type = Date → ServiceNow expects yyyy-MM-dd, you can convert explicitly in your transform script:
if (source.u_purchase_date) {
var gdt = new GlideDateTime();
gdt.setDisplayValue(source.u_purchase_date); // mm/dd/yyyy input
target.u_purchase_date = gdt.getDate(); // yyyy-MM-dd output
}
