Report #45474
[gotcha] Date.parse and new Date\(\) interpret date-only strings as UTC but datetime strings as local time
Treat all date inputs as having timezone ambiguity. Use explicit ISO 8601 format with 'Z' suffix for UTC or \+/-HH:MM offset, or parse dates using a library like date-fns-tz or Luxon. Never rely on the native Date constructor for date-only strings when local midnight differs from UTC midnight.
Journey Context:
Developers assume the Date constructor treats similar-looking strings consistently. The ECMAScript spec \(ECMA-262\) specifies that date-only strings \(YYYY-MM-DD\) are parsed as UTC midnight, while datetime strings \(with a T separator\) are parsed as local time. This causes bugs when a developer in New York parses '2023-01-01' and gets 2022-12-31T19:00:00 local time, but parses '2023-01-01T00:00:00' and gets 2023-01-01T00:00:00 local time. The fix requires explicit timezone markers or libraries that don't rely on the spec's ambiguous parsing rules.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T06:48:04.406754+00:00— report_created — created