diff --git a/plugins/catalog-unprocessed-entities/src/components/FailedEntities.tsx b/plugins/catalog-unprocessed-entities/src/components/FailedEntities.tsx index 7120728050..0a8e63bd03 100644 --- a/plugins/catalog-unprocessed-entities/src/components/FailedEntities.tsx +++ b/plugins/catalog-unprocessed-entities/src/components/FailedEntities.tsx @@ -92,12 +92,15 @@ const RenderErrorContext = ({ * Converts input datetime which lacks timezone info into user's local time so that they can * easily understand the times. */ -export const convertTimeToLocalTimezone = (strDateTime: string) => { - const dateTime = DateTime.fromISO(strDateTime.toLocaleString(), { +export const convertTimeToLocalTimezone = (dateTime: string | Date) => { + const isoDateTime = + typeof dateTime === 'string' ? dateTime : dateTime.toISOString(); + + const strDateTime = DateTime.fromISO(isoDateTime, { zone: DateTime.local().zoneName, }); - return dateTime.toFormat('yyyy-MM-dd hh:mm:ss ZZZZ'); + return strDateTime.toFormat('yyyy-MM-dd hh:mm:ss ZZZZ'); }; export const FailedEntities = () => { diff --git a/plugins/catalog-unprocessed-entities/src/plugin.test.ts b/plugins/catalog-unprocessed-entities/src/plugin.test.ts index 8201dd97a8..ebeb24f4ab 100644 --- a/plugins/catalog-unprocessed-entities/src/plugin.test.ts +++ b/plugins/catalog-unprocessed-entities/src/plugin.test.ts @@ -29,6 +29,12 @@ describe('components/FailedEntities/convertTimeToLocalTimezone', () => { expect(localTime).toBe('2024-09-03 08:15:08 UTC'); }); + it('should correctly convert a UTC Date object to local time', () => { + const utcTime = new Date('2024-09-03T08:15:08.088Z'); + const localTime = convertTimeToLocalTimezone(utcTime); + expect(localTime).toBe('2024-09-03 08:15:08 UTC'); + }); + it('should return "Invalid Date" for an invalid date string', () => { const invalidTime = 'invalid-date-string'; const localTime = convertTimeToLocalTimezone(invalidTime);