Because time is surprisingly complicated once software has to deal with the real world.
Imagine a programmer writes:
Schedule the meeting for 9:00 AM.
That sounds simple—until you ask:
- 9:00 AM where? New York? London? Tokyo?
- What happens when daylight saving time starts or ends?
- What if the meeting crosses midnight?
- What if a country changes its time-zone rules?
- Should "9:00 AM" mean the user's local time or the company's headquarters?
- If a server is in California and a user is in India, whose clock does the database use?
The big distinction: instant vs. local time
Programmers often have to distinguish between:
An instant in time:
August 15, 2026 at 6:00 PM UTC
and
A local wall-clock time:
August 15, 2026 at 2:00 PM in New York
The first identifies one precise moment globally. The second depends on a location and its time-zone rules.
That's why good systems often store timestamps in UTC, then convert them to the user's local time when displaying them.
Daylight saving time is where things get weird
Suppose a clock jumps from 1:59:59 AM to 3:00:00 AM.
Then:
"March 8 at 2:30 AM"
might literally not exist in that location.
In the fall, the opposite can happen: an hour repeats. So:
"November 1 at 1:30 AM"
could refer to two different moments.
And time zones aren't just offsets
It's tempting to think:
New York = UTC−5
Tokyo = UTC+9
But New York switches between UTC−5 and UTC−4 depending on the date. And countries can change their rules. Software therefore uses named zones such as America/New_York rather than merely storing -05:00.
Why programmers complain about it
A program that works perfectly for:
"Send this report every day at 9 AM"
can suddenly behave incorrectly when:
- daylight saving time changes,
- someone travels,
- a country changes its time-zone rules,
- two users are in different countries,
- a scheduled event crosses midnight,
- or a timestamp gets converted twice.
In short: programmers care about time zones because computers want precise numbers, while humans want calendar dates and clock times—and those aren't the same thing.