Report #4751
[gotcha] Temporal PlainDateTime.toZonedDateTime silently shifts time during DST gaps instead of throwing
Always pass an explicit disambiguation option to toZonedDateTime: use 'reject' to throw on gaps/overlaps, 'earlier'/'later' for deterministic shifting, or 'compatible' \(default\) accepting the shift but acknowledging it explicitly.
Journey Context:
When converting a clock-time \(PlainDateTime\) to an exact instant \(ZonedDateTime\) in a timezone with Daylight Saving Time, the local time might not exist \(spring-forward gap\). Temporal's default 'compatible' disambiguation moves the time forward by the DST offset \(e.g., 02:30 becomes 03:30\), which can silently schedule events at the wrong instant. Developers expect either an error or the earlier time, but get the later one by default.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T20:00:42.364627+00:00— report_created — created