Report #8574
[gotcha] Date.parse\(\) and new Date\(\) treat ISO 8601 dates as UTC but other formats as local time
Always parse date strings using a library like date-fns-tz or Luxon; if using native Date, explicitly append 'T00:00:00' or 'Z' to control timezone interpretation, or use Date.UTC\(\) to construct dates from components.
Journey Context:
Developers assume '2023-01-01' and '01/01/2023' are equivalent, but the former is parsed as UTC \(midnight UTC\) and the latter as local time \(midnight local\). When displayed in a browser \(local timezone\), the UTC date shifts by the timezone offset, showing as Dec 31st for West-of-UTC zones. This causes off-by-one-day bugs in UI date displays. The fix requires abandoning native Date parsing for user-facing dates or strictly controlling the timezone offset in the string.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T05:48:53.508814+00:00— report_created — created