UTC to IST: time zone conversion

IST is UTC+5:30, with no daylight saving

To convert UTC to IST, add 5 hours 30 minutes: 12:00 UTC is 17:30 IST. India has one time zone and no daylight saving, so the conversion is the same on every date of the year: 12:00 UTC is 17:30 IST in July too.

A worked conversion

The tool below starts at 12:00 UTC on Thursday, January 15, 2026:

2026-01-15 12:00 UTC (UTC+00:00, UTC)
2026-01-15 17:30 Asia/Kolkata (UTC+05:30, IST)

Keep the minutes when you do it by hand. Midnight UTC is 05:30 in India, and from 18:30 UTC on it’s already the next day: 18:30 UTC on January 15 is 00:00 IST on January 16.

Which IST?

IST names three different zones:

India Standard Time    UTC+5:30 all year             Asia/Kolkata
Israel Standard Time   UTC+2, IDT UTC+3 in summer    Asia/Jerusalem
Irish Standard Time    UTC+1, Ireland's summer       Europe/Dublin

Ireland’s IST is its summer time; in winter Dublin is on GMT. If a message from Europe says IST in July, check which one it means.

Software guesses differently, too. Node.js 22 reads timeZone: 'IST' as India; Python’s ZoneInfo("IST") raises ZoneInfoNotFoundError; GNU date doesn’t know the name and prints UTC with an IST label:

TZ=IST date -d '2026-01-15 12:00 UTC'
# Thu Jan 15 12:00:00 IST 2026      wrong: that's UTC
TZ=Asia/Kolkata date -d '2026-01-15 12:00 UTC'
# Thu Jan 15 17:30:00 IST 2026

The tool below reads IST as Asia/Kolkata and names the other two in a note.

In code

Use Asia/Kolkata. The older name Asia/Calcutta still works as an alias, and Node.js 22 even reports Asia/Kolkata back as Asia/Calcutta from resolvedOptions().timeZone, so don’t compare zone names as strings.

new Date('2026-01-15T12:00:00Z').toLocaleString('en-IN', { timeZone: 'Asia/Kolkata', timeZoneName: 'short' })
// '15/1/2026, 5:30:00 pm IST'

With 'en-US' the same call ends in GMT+5:30 instead of IST: the label comes from the locale’s data, not the zone.

from datetime import datetime, timezone
from zoneinfo import ZoneInfo

datetime(2026, 1, 15, 12, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("Asia/Kolkata")).isoformat()
# '2026-01-15T17:30:00+05:30'

Working hours

An Indian working day of 09:00 to 18:00 IST runs from 03:30 to 12:30 UTC, all year. A daily job at 00:00 UTC runs at 05:30 in India, before the day starts.

Try it in the Time Zone Converter

2026-01-15 12:00 Thursday in UTC (UTC+00:00, UTC)

2026-01-15T12:00:00.000Z · in 15 days

See it in other zones

  • 2026-01-15 17:30Thursday UTC+05:30 IST
10 zones at a time at most.

Runs in your browser. Nothing you enter is sent anywhere.