Most of the world sets its clocks a whole number of hours from Coordinated Universal Time. India does not. Indian Standard Time runs at UTC+5:30, a half-hour offset that puts the country permanently out of step with the neat hourly grid the rest of the system assumes. It is not an accident, it is not a rounding error, and it has been that way since 1906. It is also, for anyone writing software, one of the most reliable ways to find bugs.
This article explains where the extra thirty minutes comes from, lists every place that uses a half-hour or quarter-hour offset, and describes the specific failures these zones expose. A full table of the figures is kept on the IST offset reference.
Why Does India Use a Half-Hour Offset?
India's clock is measured from the 82.5°E meridian. The earth turns fifteen degrees per hour, and 82.5 divided by 15 is exactly 5.5, so the offset works out at five hours and thirty minutes. Any meridian sitting on a 7.5° boundary rather than a 15° one produces a half-hour offset rather than a whole-hour one.
The choice of 82.5°E was a compromise. Before 1906, Bombay time ran at roughly UTC+4:51 and Calcutta time at roughly UTC+5:53, close to an hour apart. A national standard drawn at 75°E, giving UTC+5, would have thrown the whole east badly out of step with its own sunrise; one drawn at 90°E, giving UTC+6, would have done the same to the west. The meridian near Mirzapur in Uttar Pradesh sat between them and left neither coast unreasonably far from its own solar noon. The full history is in what is Indian Standard Time.
The same reasoning explains why the half-hour offset has survived. India's east–west span of nearly two hours of solar time means a whole-hour offset would simply move the discomfort from one end of the country to the other, a trade-off examined in why India has one time zone.
Which Countries Use a Half-Hour Offset?
Around a dozen places worldwide sit thirty minutes off the hour, and three sit forty-five minutes off. Together they account for well over a fifth of the world's population, almost entirely because of India.
- UTC+5:30: India and Sri Lanka, which share the offset exactly, so no conversion is needed between Colombo and Chennai.
- UTC+3:30: Iran, which abolished its daylight saving in 2022 and now holds the offset all year.
- UTC+4:30: Afghanistan, one hour behind India.
- UTC+6:30: Myanmar and the Cocos (Keeling) Islands, one hour ahead of India.
- UTC+9:30 and UTC+10:30: Australian Central Time in South Australia and the Northern Territory, with South Australia moving to the later figure in summer.
- UTC−3:30: Newfoundland in Canada, which shifts to UTC−2:30 during its daylight saving period.
- UTC−9:30: the Marquesas Islands in French Polynesia.
The Quarter-Hour Zones
Rarer still are the offsets ending in :45. Nepal runs at UTC+5:45, fifteen minutes ahead of India, so that its clock aligns with the meridian through Gaurishankar rather than with its large neighbour. The Chatham Islands, east of New Zealand, use UTC+12:45 and shift to UTC+13:45 in summer. Eucla, a tiny settlement on the Western Australian border, keeps an unofficial UTC+8:45. Lord Howe Island adds a further oddity: its daylight saving shift is thirty minutes rather than a full hour, moving from UTC+10:30 to UTC+11. These cases are covered alongside the mainland figures in IST to AEST and Australian time.
What Bugs Does a Half-Hour Offset Expose?
The classic failure is code that converts the hour field and leaves the minutes alone. Applied to an Indian user, that produces a time exactly thirty minutes wrong, every time, in a way that looks plausible enough to survive testing and to be reported months later as intermittent.
The half-hour offset is a good stress test precisely because it breaks assumptions people did not know they were making. The recurring patterns are these:
- Integer-hour storage: an offset held as a whole number of hours cannot represent +5:30 at all, so it silently truncates to +5 and every Indian timestamp lands half an hour early.
- Hourly dropdowns: a zone picker generated in sixty-minute steps has no entry for India, forcing users to choose a neighbouring value that is simply wrong.
- Day-boundary reporting: Indian midnight is 18:30 UTC on the previous date, so a daily report bucketed on UTC boundaries attributes five and a half hours of Indian activity to the wrong day.
- Scheduled jobs: a task set to run on the hour in UTC fires at half past the hour in India, which quietly breaks any process meant to align with the local business day.
- Ambiguous abbreviations: the letters IST are used by Indian, Irish and Israel Standard Time, at three different offsets, so parsing a zone from an abbreviation is unsafe regardless of the half hour.
How to Avoid Them
Store every instant in UTC and convert only for display. Carry the full IANA identifier, Asia/Kolkata for India, rather than a numeric offset or a three-letter abbreviation, because only the identifier survives a rule change. Represent offsets in minutes rather than hours, which costs nothing and accommodates every case including the quarter-hour zones. And include at least one half-hour offset in your test fixtures alongside the usual UTC and Eastern examples, since a suite that tests only whole-hour zones will never catch the most common class of error. Asia/Kolkata and Australia/Adelaide make a good pair, since both carry a half-hour offset and only the second of them observes daylight saving.
Does the Offset Ever Change?
India's does not. UTC+5:30 has held continuously since 1971, when the last wartime clock advance was reversed, and there is no daylight saving to complicate it, for the reasons described in why India has no daylight saving.
That stability is unusual and worth appreciating. Iran dropped its seasonal change in 2022, Russia has restructured its zones more than once, and various island territories have moved across the date line for trade reasons. India's half-hour offset, by contrast, has been a fixed point for over a century, maintained today by the CSIR–National Physical Laboratory in New Delhi. No other half-hour offset covers anything like the same number of people. Whatever else changes in a scheduling system, the Indian side of the calculation will not.
Conclusion
India's half-hour offset exists because the country's clock is drawn from the 82.5°E meridian, chosen in 1906 as a compromise between the old Bombay and Calcutta times. A dozen or so other places share the quirk, from Newfoundland and the Marquesas to Iran, Afghanistan, Myanmar and central Australia, with Nepal and the Chatham Islands going further to a quarter-hour. Handle them by storing UTC, carrying named zones and counting offsets in minutes, and the whole class of bugs disappears. Check any figure against the IST offsets table, read the clock live on the IST clock, or convert between zones anywhere on indiatime.now.