Daylight Saving Bugs: Why "Add 24 Hours" Isn't "Tomorrow"
A New York example around 14 March 2027, and four rules for storing and doing maths with time.
By the TurantTools Dev team · Updated October 27, 2026 · 3 min read
"Add one day" and "add 24 hours" are the same thing, until a daylight-saving change. In New York, clocks go forward on 14 March 2027, so a day that day is only 23 hours long.
| Instant (UTC) | New York local time |
|---|---|
| 2027-03-14T06:30:00.000Z | 2027-03-14 01:30:00 |
| 2027-03-15T06:30:00.000Z (+24 h) | 2027-03-15 02:30:00 |
Adding 24 hours to a 1:30 AM meeting moves it to 2:30 AM local time the next day. A daily reminder built that way drifts by an hour twice a year.
Rules that prevent it
- Store instants as UTC (a timestamp or ISO string with Z).
- Store the user's IANA time zone (
America/New_York), not a fixed offset like -05:00. - Do calendar maths ("same time tomorrow") in the user's zone with a date library or the Temporal API, then convert to UTC.
- Test with dates on both sides of the change.