Report #78518
[gotcha] Date.parse treats ISO 8601 date-only strings as UTC but non-ISO strings as local time
Always include explicit timezone offsets in date strings \(e.g., '2023-01-01T00:00:00Z' for UTC\). Never parse date-only ISO strings for local dates without adjusting for timezone offset
Journey Context:
Per ECMA-262, Date.parse uses heuristics: ISO 8601 format strings \(YYYY-MM-DD\) without timezone offset are parsed as UTC. Non-ISO strings \(e.g., 'MM/DD/YYYY', 'Jan 1 2023'\) are parsed as local time. This causes new Date\('2023-01-01'\) to represent Jan 1 UTC \(Dec 31 in negative offset timezones\), while new Date\('01/01/2023'\) represents Jan 1 local. Silent off-by-one errors appear in date pickers and scheduling logic only in production with real user timezones, as developers test in UTC\+0 or use non-ISO formats during development.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T14:23:06.498840+00:00— report_created — created