diff --git a/lib/DateTimeUtils.test.ts b/lib/DateTimeUtils.test.ts new file mode 100644 index 0000000..6a9211e --- /dev/null +++ b/lib/DateTimeUtils.test.ts @@ -0,0 +1,16 @@ +import { DateTimeUtils } from './DateTimeUtils'; + +describe('DateTimeUtils', () => { + test('UTCToString returns a UTC HH:MM:SS string', () => { + expect(DateTimeUtils.UTCToString('1530')).toBe('15:30:00'); + }); + + test('UTCDateTimeToString supports both HHMM and HHMMSS', () => { + expect(DateTimeUtils.UTCDateTimeToString('010124', '1530')).toContain( + '15:30:00 GMT', + ); + expect(DateTimeUtils.UTCDateTimeToString('010124', '153045')).toContain( + '15:30:45 GMT', + ); + }); +}); diff --git a/lib/DateTimeUtils.ts b/lib/DateTimeUtils.ts index f436148..05027bf 100644 --- a/lib/DateTimeUtils.ts +++ b/lib/DateTimeUtils.ts @@ -2,29 +2,33 @@ export class DateTimeUtils { // Expects a four digit UTC time string (HHMM) public static UTCToString(UTCString: string) { let utcDate = new Date(); - utcDate.setUTCHours(+UTCString.substr(0, 2), +UTCString.substr(2, 2), 0); - return utcDate.toTimeString(); + utcDate.setUTCHours( + +UTCString.substring(0, 2), + +UTCString.substring(2, 4), + 0, + ); + return utcDate.toISOString().substring(11, 19); } // Expects a six digit date string and a four digit UTC time string // (DDMMYY) (HHMM) public static UTCDateTimeToString(dateString: string, timeString: string) { let utcDate = new Date(); - utcDate.setUTCDate(+dateString.substr(0, 2)); - utcDate.setUTCMonth(+dateString.substr(2, 2)); + utcDate.setUTCDate(+dateString.substring(0, 2)); + utcDate.setUTCMonth(+dateString.substring(2, 4)); if (dateString.length === 6) { - utcDate.setUTCFullYear(2000 + +dateString.substr(4, 2)); + utcDate.setUTCFullYear(2000 + +dateString.substring(4, 6)); } if (timeString.length === 6) { utcDate.setUTCHours( - +timeString.substr(0, 2), - +timeString.substr(2, 2), - +timeString.substr(4, 2), + +timeString.substring(0, 2), + +timeString.substring(2, 4), + +timeString.substring(4, 6), ); } else { utcDate.setUTCHours( - +timeString.substr(0, 2), - +timeString.substr(2, 2), + +timeString.substring(0, 2), + +timeString.substring(2, 4), 0, ); }