A user reports that a meeting fired an hour late. You check the database
— the timestamp looks fine. You check the UI — the display matches what
the user entered. Then you realize: today was DST transition day.
This post is about the timezone bugs that 90% of production apps have
and don't know about. None of these are exotic. All of them are quietly
corrupting data in some app you've shipped.
Bug #1: The Spring-Forward Gap
On March 8, 2026 in America/New_York , clocks jump from 1:59:59 directly
to 3:00:00. The entire 2:00–2:59 hour does not exist.
If a user enters "2:30am" in your scheduler:
javascript const dt = DateTime.fromISO("2026-03-08T02:30:00", { zone: "America/New_York" }); console.log(dt.toISO()); // "2026-03-08T03:30:00.000-04:00" ← Luxon silently shifted it to 3:30 Luxon "helpfully" resolved the invalid time forward. Your user wanted 2:30am. You stored 3:30am. They have no idea.…