Developer Tools

Unusual Timezone Offsets: The 30- and 45-Minute Zones Explained

Why India runs at UTC+5:30, Nepal at UTC+5:45, and Newfoundland at UTC-3:30. A developer's field guide to the half-hour and quarter-hour timezones that break "offsets are always whole hours" code.

By Inventive HQ Team

Fractional time zones exist because clocks were originally set to local solar time, which changes continuously with longitude, and when nations later adopted a single standard time they anchored it to whatever meridian best fit their geography — which frequently landed on a half-hour or quarter-hour boundary instead of a whole hour. India runs at UTC+5:30 because its chosen 82.5°E meridian works out to exactly 5.5 hours ahead of UTC. Nepal sits 15 minutes further at UTC+5:45 to match the longitude of a Himalayan peak near Kathmandu. Newfoundland is UTC-3:30, Iran is UTC+3:30, Afghanistan is UTC+4:30, and Myanmar is UTC+6:30. These are not glitches; they are deliberate choices that together govern the clocks of well over a billion people.

That is the summary an AI Overview will give you. What it can't show you is the developer's field guide underneath: exactly which places use which fractional offset, why the 45-minute zones exist, and the specific code assumptions that quietly break when a UTC offset isn't a whole number of hours. The number line below and the reference table are the parts you actually need at 2 a.m. when a scheduler fires 30 minutes early in Adelaide.

A number line of the odd offsets

Whole-hour offsets sit on the tidy grid most code assumes. The fractional zones fall in between — and once you see them plotted, the "offsets are integers" bug becomes obvious.

UTC offset number line showing half-hour and quarter-hour time zones A horizontal axis from UTC+3 to UTC+7 with whole-hour ticks and labeled fractional zones: Iran +3:30, Afghanistan +4:30, India +5:30, Nepal +5:45, Myanmar +6:30. Where the fractional zones fall between the whole hours UTC offset axis (each whole hour = 60 minutes of clock) +3 +4 +5 +6 +7 Iran +3:30 Afghanistan +4:30 India +5:30 Nepal +5:45 Myanmar +6:30 30-minute offset 45-minute offset India (1.4B people on +5:30)

Notice how Nepal at +5:45 sits three-quarters of the way between +5 and +6. That single marker is the reason a UTC offset must be represented in minutes, never hours.

Advertisement

Every fractional offset, and where it applies

This is the reference table. Bookmark it; it is faster than re-deriving the meridian math each time.

UTC offsetPlacesDST behaviorNotes
UTC-9:30Marquesas Islands (French Polynesia)No DSTRare western half-hour zone
UTC-3:30Newfoundland & southeast Labrador, CanadaShifts full hour (to -2:30)The classic North American oddity
UTC+3:30IranNo DST since 2022Was +4:30 in summer before abolition
UTC+4:30AfghanistanNo DSTFixed year-round
UTC+5:30India, Sri LankaNo DST~1.4B people; the big one
UTC+5:45NepalNo DSTOnly nation on a 45-minute standard time
UTC+6:30Myanmar, Cocos (Keeling) IslandsNo DSTTwo unrelated territories share it
UTC+8:45Eucla region, Western AustraliaNo DSTUnofficial, ~200 residents
UTC+9:30South Australia, Northern TerritorySA shifts to +10:30; NT staysAdelaide vs. Darwin diverge in summer
UTC+10:30Lord Howe Island, AustraliaShifts only 30 min (to +11:00)The only 30-minute DST jump anywhere
UTC+12:45Chatham Islands, New ZealandShifts to +13:45Most extreme quarter-hour offset

The row that trips up the most code is Lord Howe Island: it is the single place on Earth where daylight saving moves the clock by 30 minutes rather than a full hour. Any DST logic that assumes a one-hour spring-forward is wrong there.

Why the odd offsets exist at all

Before railways and telegraphs, every town kept its own local mean time — noon was when the sun crossed the local meridian. Because the Earth turns 360° in 24 hours, every degree of longitude is worth four minutes of clock time. When standardized time zones arrived, the goal was to pick one clock per region that stayed reasonably close to that local solar time.

Countries that span a lot of longitude faced a choice: split into multiple whole-hour zones, or adopt a single national time on a compromise meridian. India chose one zone anchored at 82.5°E, which is exactly +5:30. China famously chose the opposite extreme — a single UTC+8 for a country that geographically spans five hours of sun — which is why sunrise in western Xinjiang can come after 10 a.m. on the clock.

The 45-minute zones are pure geography plus politics. Nepal's +5:45 tracks the meridian near Kathmandu and also asserts that Nepal is not simply on Indian time. The Chatham Islands' +12:45 reflects their real longitude east of mainland New Zealand. None of these are arbitrary; each is a rational answer to "what clock keeps our working day aligned with our sun?"

What this means for your code

Fractional offsets are where naive time handling goes to die. The failure modes are specific and repeatable.

Wrong versus right approach to storing fractional time zones Left card shows storing offset as integer hours (broken); right card shows storing UTC plus IANA zone name (correct). Two ways to handle a Kathmandu timestamp Wrong offset = 5 (integer hours) local = utc + offset*3600 Loses the :45 — off by 45 minutes Breaks on DST, historical rules Silent, not an exception Right instant = UTC (Unix seconds) zone = "Asia/Kathmandu" IANA db supplies +5:45 exactly Handles DST and history for you One source of truth

Three concrete rules keep you safe:

  1. Store instants as UTC, not local time. A Unix timestamp has no offset ambiguity. Convert to local only at display time.
  2. Store zones as IANA names, not numbers. "Asia/Kathmandu" carries +5:45 and every historical change; +5.75 carries a landmine. Never round an offset to the nearest hour.
  3. Serialize offsets in ISO 8601 ±HH:MM. The format has always supported minutes — 2026-07-18T12:00:00+05:45 is valid and unambiguous. Anything that stores only +05 is lossy.

You can sanity-check any of this against real clocks with our world clock tool, which reads offsets straight from the IANA database so Kathmandu and Chatham show their true fractional times.

The bottom line

Half-hour and quarter-hour offsets aren't exotic edge cases you can ignore — India alone puts 1.4 billion people on a non-whole-hour clock. Treat every offset as a number of minutes, delegate the arithmetic to a time zone library backed by the IANA database, and the entire class of "off by 30 or 45 minutes" bugs disappears. The zones are strange; handling them correctly is not.

Frequently Asked Questions

Why is India's time zone UTC+5:30 instead of a whole hour?

India uses a single national time zone centered on the 82.5°E meridian. Because each degree of longitude equals four minutes of solar time, 82.5° × 4 minutes = 330 minutes = exactly 5 hours 30 minutes ahead of UTC. The half-hour offset is a deliberate compromise: it splits the difference across a country wide enough to otherwise justify two whole-hour zones.

Which countries use 45-minute time zone offsets?

Three places use quarter-hour offsets today. Nepal is UTC+5:45, the Chatham Islands of New Zealand are UTC+12:45 (UTC+13:45 during their daylight saving), and the small Eucla region in Australia observes an unofficial UTC+8:45. Nepal is the only sovereign nation whose entire standard time is set to a 45-minute offset.

Why is Nepal 15 minutes ahead of India?

Nepal set its clocks 15 minutes ahead of Indian Standard Time in 1986 to reflect the local mean time at Mount Gaurishankar, near Kathmandu, whose meridian sits around 86.25°E. The offset is partly geographic and partly a statement of national independence from its larger neighbor's time.

What is the strangest time zone offset in the world?

The Chatham Islands at UTC+12:45 and UTC+13:45 (with DST) are the most extreme quarter-hour offsets. Lord Howe Island in Australia is unusual for a different reason: it shifts only 30 minutes for daylight saving, moving between UTC+10:30 and UTC+11:00 instead of the usual full hour.

Do fractional time zones observe daylight saving time?

Some do, some don't. India, Nepal, Iran, Afghanistan, and Myanmar keep a fixed fractional offset year-round. Newfoundland (UTC-3:30) and central Australia (UTC+9:30) shift a full hour for DST. Lord Howe Island shifts only 30 minutes. Iran observed a UTC+4:30 summer time until it abolished DST in 2022, so historical timestamps there need care.

How do I store fractional time zone offsets correctly in code?

Never store an offset as an integer number of hours. Store instants as UTC (a Unix timestamp) and store the location as an IANA time zone name like "Asia/Kathmandu", not a numeric offset. When you must serialize an offset, use the ISO 8601 ±HH:MM format, which represents minutes precisely. Letting a time zone library and the IANA database do the math avoids the whole class of half-hour and 45-minute bugs.

How many time zones are not whole-hour offsets from UTC?

Roughly two dozen distinct standard offsets are not whole hours. The common half-hour zones include UTC-9:30, UTC-3:30, UTC+3:30, UTC+4:30, UTC+5:30, UTC+6:30, UTC+9:30, and UTC+10:30. The quarter-hour zones are UTC+5:45, UTC+8:45, and UTC+12:45. Together they cover well over a billion people, mostly because India and its 1.4 billion residents sit on +5:30.

Why don't all time zones align to whole hours?

Time zones began as approximations of local solar time, which varies continuously with longitude. When countries picked a single national time, the meridian that best matched their geographic center often fell on a half-hour or quarter-hour boundary rather than a whole hour. Politics, national identity, and the desire to keep daylight aligned with the working day did the rest.

timezones