Two Arrivals, One Wall Time: The Fall-Back Night
Two Arrivals, One Wall Time: The Fall-Back Night
Two flights land in New York on 3 November 2024, one at 05:30Z and one at 06:30Z. The arrivals board shows local time. What does each one say?
The naive approach
// The naive approach: format the local wall time and drop the rest
const first = new Date("2024-11-03T05:30:00Z");
const second = new Date("2024-11-03T06:30:00Z");
const opts = { timeZone: "America/New_York", hour: "2-digit", minute: "2-digit", hour12: false };
first.toLocaleTimeString("en-US", opts); // "01:30"
second.toLocaleTimeString("en-US", opts); // "01:30"
// Two aircraft an hour apart, one line on the board.Watch it break
The naive approach silently produces wrong results — there is no GMT equivalent to demonstrate because the failure is not using GMT.
Why
At 02:00 EDT on 3 November 2024 New York's clocks go back to 01:00 EST, so the hour from 01:00 to 02:00 happens twice. A bare wall time cannot tell the two passes apart, and a board that shows only "01:30" has lost an hour of information. No disambiguation is needed to *render* an instant: a moment has exactly one wall time in a zone. What is needed is to keep the offset. `etaAtZone` renders the instant in the destination zone and returns the RFC 9557 string with its offset and zone, so the two arrivals read `-04:00` and `-05:00`, and anything downstream can still order them.
The gmt approach
import { etaAtZone } from "@northguild/gmt/transport";
etaAtZone("2024-11-03T05:30:00Z", "America/New_York");
// "2024-11-03T01:30:00-04:00[America/New_York]" — the first 01:30, still EDT
etaAtZone("2024-11-03T06:30:00Z", "America/New_York");
// "2024-11-03T01:30:00-05:00[America/New_York]" — the second 01:30, now ESTSame widget, working
The zone is yours to supply. GMT does not resolve an airport code to a time zone, so pass
America/New_York, not JFK, and not the -05:00 printed on last winter’s timetable: a
fixed offset is accepted as a zone but observes no DST, which on this night is the whole
point. Try the Zone Planner
from 15 minutes before the fall-back and watch New York’s offset change while the wall clock
repeats.