I4.05.3DST skipped and repeated hoursdesign

DST transitions create nonexistent and repeated clock times

Aliases: DST gap · repeated 2 a.m. · spring forward · fall back

What it is

In spring the clock jumps forward and a strip of local time never happens: “2:30 a.m.” does not exist that year. In autumn the clock jumps back and the same strip is walked twice: 2:30 a.m. arrives twice. DST transitions create nonexistent and repeated clock times. The clock face is not a smooth ruler that night. People who book, set alarms, or understand “it happened at two” by everyday clock faces will fail to line up. How that night is stored is a different question. This is only about how the gap and the overlap confuse.

Why it happens

People treat the local clock face as continuous, monotonic, twenty-four whole hours every day. DST inserts a discontinuity on a particular night: skip, and some clock times never occur; repeat, and the same clock time names two different instants, usually only separable as “first / second” or by an offset. Alarms, calendar cells, shift rosters, overnight events all run on the clock face, not on instants. Two typical confusions follow. Something placed in the gap may be silently moved, silently cancelled, or rejected as if the input were malformed. Something placed in the overlap: both sides think “2:30” was clear, and each lands on a different instant.

Confusion is amplified by “whether we do this this year, and on which night”. Whether a city observes DST is a political decision, not a law of physics. People book this year’s small hours from last year’s memory; the clock-face rule has already changed, and the gap sits somewhere else.

Where it stops holding

Zones that do not observe DST have no such night; making a gap check globally required raises false alarms there. Relative time (three hours ago) does not step on clock-face cells and is not directly hit by the gap. When both sides already communicate in explicit instants with offsets, the clock-face gap can still appear in a “please enter local time” field — the input side still faces a nonexistent clock time. Two people spanning zones may have the night on one side only; a dual display then shows local days of different length on the same date, which looks like a miscalculation and is actually two different rulers.

Applying it

  • On local-time input and display, if the value falls in a gap: tell people this clock time does not exist this year, and offer the nearest legal time. Do not silently rewrite it.
  • On overlap: let people choose the first or second occurrence, or switch to a full instant with offset. Do not accept “02:30” alone.
  • For overnight schedules, alarms and shifts, preview the transition: this night will be an hour short or an hour long.
  • How to check: in a DST-observing zone, place an alarm or a meeting in the spring half-hour that is skipped. The UI should refuse or say where it moved, not fail to fire with no explanation. Place an event at the autumn repeated 2:30; it must be possible to say first or second. In a zone without DST, the same actions must not raise a gap warning.

Related

  • Same group: I4.05.1 A displayed time needs a stated time zone · I4.05.2 Cross-zone collaboration should show the other person's local time
  • Nearby: I4.08 Time zones and daylight saving · I4.06 Countdowns and deadlines
  • Search terms: DST gap · repeated hour · spring forward

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/I4.05.3