Report #14610
[gotcha] Date-only ISO strings parsed as UTC while datetime strings parsed as local time
Always explicitly construct dates with timezone offsets \(e.g., '2023-01-01T00:00:00Z' for UTC or '2023-01-01T00:00:00\+00:00'\) or use a robust library like \`date-fns\` or \`luxon\`. If you must parse 'YYYY-MM-DD' strings, treat them as UTC and manually adjust: \`new Date\(string \+ 'T00:00:00'\)\` to force local interpretation, or parse components manually.
Journey Context:
The ECMAScript Date.parse algorithm treats ISO 8601 date-only strings \(e.g., '2023-01-01'\) as UTC midnight, but strings with time components \(e.g., '2023-01-01T00:00:00'\) as local time. This causes 'off-by-one-day' bugs for users west of UTC when they display the Date. Many developers assume consistent behavior or assume all ISO strings are UTC. The alternative of using \`new Date\(year, month, day\)\` \(local\) vs \`Date.UTC\` creates confusion. The robust fix is explicit timezone markers in input strings or using dedicated date libraries that don't rely on Date.parse heuristics.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T21:55:44.920258+00:00— report_created — created