diff --git a/app/client/lib/__tests__/datetime.test.ts b/app/client/lib/__tests__/datetime.test.ts index 12ed04f5..d5d06030 100644 --- a/app/client/lib/__tests__/datetime.test.ts +++ b/app/client/lib/__tests__/datetime.test.ts @@ -64,13 +64,13 @@ describe("datetime formatters", () => { }); test("formats calendar values with an explicit locale and timezone", () => { - expect(formatShortDateTime(sampleDate, { locale: "en-US", timeZone: "UTC" })).toBe("1/10, 2:30 PM"); + expect(formatShortDateTime(sampleDate, { locale: "en-US", timeZone: "UTC" })).toBe("01/10, 2:30 PM"); }); test.each([ - ["MM/DD/YYYY", "1/10/2026"], - ["DD/MM/YYYY", "10/1/2026"], - ["YYYY/MM/DD", "2026/1/10"], + ["MM/DD/YYYY", "01/10/2026"], + ["DD/MM/YYYY", "10/01/2026"], + ["YYYY/MM/DD", "2026/01/10"], ] as const)("formats numeric dates with %s order", (dateFormat, expected) => { expect(formatDate(sampleDate, { locale: "en-US", timeZone: "UTC", dateFormat })).toBe(expected); }); @@ -106,6 +106,6 @@ describe("datetime formatters", () => { dateFormat: "DD/MM/YYYY", timeFormat: "24h", }), - ).toBe("10/1/2026, 14:30"); + ).toBe("10/01/2026, 14:30"); }); }); diff --git a/app/client/lib/datetime.ts b/app/client/lib/datetime.ts index f77bf4be..75b07ad6 100644 --- a/app/client/lib/datetime.ts +++ b/app/client/lib/datetime.ts @@ -67,8 +67,8 @@ function formatConfiguredDate(date: Date, options: DateFormatOptions, includeYea const dateFormat = options.dateFormat ?? DEFAULT_DATE_FORMAT; const safeDateFormat = DATE_FORMATS.includes(dateFormat) ? dateFormat : DEFAULT_DATE_FORMAT; const parts = getDateTimeFormat(options.locale, options.timeZone, { - month: "numeric", - day: "numeric", + month: "2-digit", + day: "2-digit", year: "numeric", }).formatToParts(date); const values = { @@ -148,7 +148,7 @@ export function inferDateTimePreferences(locale?: string) { }; } -// 1/10/2026, 2:30 PM +// 01/10/2026, 2:30 PM function formatDateTime(date: DateInput, options: DateFormatOptions = {}): string { return formatValidDate( date, @@ -161,7 +161,7 @@ function formatDateWithMonth(date: DateInput, options: DateFormatOptions = {}): return formatValidDate(date, (validDate) => formatConfiguredDateWithMonth(validDate, options)); } -// 1/10/2026 +// 01/10/2026 function formatDate(date: DateInput, options: DateFormatOptions = {}): string { return formatValidDate(date, (validDate) => formatConfiguredDate(validDate, options, true)); } @@ -171,7 +171,7 @@ function formatShortDate(date: DateInput, options: DateFormatOptions = {}): stri return formatValidDate(date, (validDate) => formatConfiguredDate(validDate, options, false)); } -// 1/10, 2:30 PM +// 01/10, 2:30 PM function formatShortDateTime(date: DateInput, options: DateFormatOptions = {}): string { return formatValidDate( date,