When a country sits between two whole-hour meridians
A 15-degree slice of longitude equals one hour of solar time. That geometry gives 24 full-hour steps from UTC-12 to UTC+12. In theory, every place picks the zone that matches its longitude.
In practice, most countries use full-hour offsets. The United States spans UTC-5 to UTC-8 (ignoring territories). Most of Europe runs on UTC+0 to UTC+2. Japan is UTC+9. Australia is UTC+10 to UTC+11. Full-hour zones are simple: noon is roughly when the sun is overhead, and the arithmetic for scheduling across borders is straightforward.
But political borders ignore meridians. When a country straddles two full-hour zones, it has three options: adopt one zone for the whole country (China does this with UTC+8), split the country into multiple zones (the US does this), or pick a half-hour offset that falls between the two.
India, Iran, Afghanistan and the half-hour band
India Standard Time is the most populous half-hour zone on Earth. The country chose its offset in 1906, before independence, because the sun rises and sets at times that would be inconvenient under either UTC+5 (Pakistan's zone) or UTC+6 (Bangladesh's zone).
Iran uses UTC+3:30 standard time and shifts to UTC+4:30 during DST. Afghanistan runs on UTC+4:30. Myanmar uses UTC+6:30. The Marquesas Islands in French Polynesia use UTC-9:30. Sri Lanka adopted UTC+5:30 until 1996, then tried UTC+6:00, then returned to its earlier offset in 2006 after public complaints about late sunrises.
Venezuela used UTC-4:30 from 1900 to 1965, then UTC-4:00 until 2007, then returned to UTC-4:30 by presidential decree, then in 2016 switched back to UTC-4:00. Each change was political, not astronomical.
Time zones are set by national or regional governments, not by any international body. The IANA tz database reflects government decisions after they happen. When a government changes its offset, the database is updated, and operating systems and browsers pick up the change with the next update.
Nepal's UTC+5:45: the only quarter-hour zone
Nepal uses UTC+5:45. Before 1986, the country used UTC+5:40, based on the local mean time of Kathmandu's temple square. In 1986, the government standardised to UTC+5:45, aligning with the meridian that runs through Mount Everest's peak (86°55' E, giving a local mean time of UTC+5:48). The government rounded to the nearest quarter hour.
The Chatham Islands in New Zealand use UTC+12:45 during standard time and UTC+13:45 during DST. The Australian Central Western Time Zone (Eucla) uses UTC+8:45. These are not quarter-hour zones in the same sense as Nepal; they are half-hour zones with an extra 15-minute deviation due to local geography.
How non-standard offsets began
Before standard time, every town set its clocks to local solar noon. Trains forced standardisation. In the 1870s, railways in North America created four time zones (Eastern, Central, Mountain, Pacific) to avoid the chaos of hundreds of local times. By 1900, most of the world had adopted full-hour zones based on the Greenwich meridian.
Some countries resisted. India's offset was a compromise between the Calcutta and Bombay local times. Iran's offset was a compromise between the Tehran local mean time (UTC+3:25) and the full-hour zone of neighbouring Turkey (UTC+2 at the time, now UTC+3).
Newfoundland adopted UTC-3:30 in 1935 because it sits on the boundary between the Atlantic (UTC-4) and Greenland (UTC-3) zones. The island's capital St. John's had a local mean time of UTC-3:30:48, so the half-hour offset was a natural fit. Newfoundland still uses UTC-3:30 today, the only half-hour zone in North America.
Scheduling and code when the offset is not a whole hour
A 09:00 meeting in New York (UTC-5) is 14:30 in India. That 30-minute offset matters for calendar invites, flight schedules, and trading hours. Financial markets in India open at 09:00 IST (03:30 UTC) and close at 15:30 IST (10:00 UTC), overlapping with London's morning and Tokyo's afternoon but not with New York's morning.
In software, a half-hour offset is stored as a string like "+05:30". The IANA database represents it as Asia/Kolkata. Code that computes time differences must treat the offset as a number of seconds, not as an integer count of hours. A common bug assumes all offsets are multiples of 3,600 seconds. JavaScript's new Date().getTimezoneOffset() returns minutes. That is correct: it uses minutes, not hours.
| Offset | Seconds | Example zone |
|---|---|---|
| UTC+5:30 | 19,800 | Asia/Kolkata |
| UTC+3:30 | 12,600 | Asia/Tehran |
| UTC+4:30 | 16,200 | Asia/Kabul |
| UTC+6:30 | 23,400 | Asia/Yangon |
| UTC-3:30 | -12,600 | America/St_Johns |
Daylight saving in half-hour zones
Iran observes DST, shifting from UTC+3:30 to UTC+4:30 in March and back in September. Afghanistan does not observe DST. India does not observe DST. Newfoundland observes DST, shifting from UTC-3:30 to UTC-2:30. The Chatham Islands observe DST, shifting from UTC+12:45 to UTC+13:45.
When a half-hour zone observes DST, the offset during DST is also a half-hour offset, not a full hour. Tehran is UTC+3:30 in winter and UTC+4:30 in summer. The difference to neighbouring Azerbaijan (UTC+4 year-round) is 30 minutes in winter and zero in summer.