UTC to IST Converter
Interpreted in the "From" timezone
A UTC-to-IST conversion shows up constantly for teams working with an India-based engineering group alongside infrastructure that runs on UTC by convention — a deployment pipeline logging in UTC, a cron schedule defined in a config file, an incident timestamp in a monitoring dashboard. The question isn’t usually “what time is it in India right now” so much as “this UTC timestamp in the deploy log — what did that actually look like for the India team when it happened.”
The one thing that makes this specific conversion simpler than a US-zone one: India Standard Time has used a single fixed offset, UTC+5:30, for the entire country since 1947, with no daylight saving adjustment at any point in the year. That’s a genuinely different situation from America/New_York or America/Los_Angeles, where the offset itself is a moving target depending on the date. A deployment window or an on-call rotation boundary defined against IST can be expressed once, in UTC, and never needs revisiting for seasonal drift the way a US-zone-anchored schedule does — there’s no “did this shift an hour since we set it up” question to ask.
The half-hour offset itself has a concrete reason: India spans roughly 30 degrees of longitude, wide enough that a strict solar-time approach would normally split the country across two standard one-hour zones — instead, the whole country uses a single offset chosen close to the geographic midpoint, landing on a half-hour value rather than a whole one. It’s the same reasoning behind a handful of other half-hour-offset countries (Iran, Afghanistan, parts of Australia).
Working through a concrete case: 18:30 UTC on July 30, 2026 converts to midnight — 00:00 — on July 31 in India, a full calendar day ahead. That day rollover isn’t a bug in the math; a nearly-6-hour-forward offset genuinely does push a late-UTC-afternoon timestamp past midnight in India, which is worth watching for specifically when scheduling something “for tomorrow” against a UTC-anchored system.
Converting UTC to India Standard Time programmatically
JavaScript, formatting an existing UTC instant directly — no offset math needed:
const utcInstant = new Date("2026-07-30T18:30:00Z");
const istTime = new Intl.DateTimeFormat("en-US", {
timeZone: "Asia/Kolkata",
dateStyle: "medium",
timeStyle: "long",
}).format(utcInstant);
console.log(istTime);
// "Jul 31, 2026, 12:00:00 AM GMT+5:30" — a day later than the UTC date
Python, via the standard library’s zoneinfo:
from datetime import datetime, timezone
from zoneinfo import ZoneInfo
utc_instant = datetime(2026, 7, 30, 18, 30, tzinfo=timezone.utc)
ist_time = utc_instant.astimezone(ZoneInfo("Asia/Kolkata"))
print(ist_time)
# 2026-07-31 00:00:00+05:30Frequently asked questions
Does India Standard Time observe daylight saving?
Why is India's offset +5:30 instead of a whole number of hours?
What's a scheduling implication of a fixed, non-DST offset like IST?
Does this conversion tool account for daylight saving on the UTC to IST page?
Is the date/time I enter sent to a server?
Related Timezone Converter pages
Looking for a different pair or algorithm? Here are the other specific versions, plus the general tool for everything else: