Asia/Kolkata
Asia/Kolkata covers Mumbai, Delhi, Bengaluru and the rest of India, at +05:30 standard time, with no daylight saving time.
Worked examples
- A winter instant in Asia/Kolkata
Asia/Kolkata's UTC offset and DST status on a January date, converted to UTC.
- A summer instant in Asia/Kolkata
Asia/Kolkata's UTC offset and DST status on a July date, converted to UTC — compare against the winter example to see any DST shift.
- Converting Asia/Kolkata to America/New_York
A worked conversion from Asia/Kolkata to America/New_York for a specific instant.
TZ identifier and aliases
Asia/Kolkata is the canonical identifier for Indian Standard Time,
covering the entire country. Asia/Calcutta is an older name still
pointing at the same rules — retained for the city's former English
spelling — but is a deprecated alias; use Asia/Kolkata in new code.
UTC offset and DST rule
Asia/Kolkata is +05:30 year-round with no daylight saving time — one
of only a handful of half-hour UTC offsets used anywhere in the world; in this batch
only Asia/Tehran (+03:30) shares that trait. There's no seasonal clock change to account
for in any system built against this zone.
Using it in cron, CI and Postgres
Set TZ=Asia/Kolkata for a process that should schedule by Indian local
time — the half-hour offset is the main thing to watch for in code that
assumes all time zone offsets are whole hours, an assumption that breaks
for India (and a few other zones worldwide, like Iran's current
+03:30). Postgres accepts it via SET TIME ZONE 'Asia/Kolkata'; or the
timezone setting and handles the half-hour offset correctly by default.
Because the offset never changes, a cron job's local-time schedule behaves
identically every day of the year — no DST boundary, no skipped or
duplicated hour — but a cron expression like 30 9 * * * still needs to
account for the half-hour gap when translating from a UTC-based schedule
(9:30am IST is 4:00am UTC, not a round number).
History and quirks
India used two separate time zones under British rule — Bombay Time and
Calcutta Time, roughly an hour apart — before unifying into a single
Indian Standard Time in 1906, defined by a reference meridian passing
roughly through Allahabad, chosen specifically to be a clean 5.5 hours
ahead of GMT. That half-hour offset is why "IST" is sometimes jokingly
called "Indian Stretchable Time" in developer circles, a nod to the extra
mental math it demands compared to whole-hour zones. India briefly
experimented with daylight saving during wartime shortages in 1962 (the
Sino-Indian War) and again in the mid-1960s, but has kept a single fixed
offset since. Periodic government proposals to split India into two time
zones — to better serve the country's far northeast, where the sun rises
and sets nearly two hours earlier local-clock-time than in the west — have
never been adopted, leaving Asia/Kolkata the sole civil time for a
country spanning roughly 30 degrees of longitude.
Offsets and DST transitions on this page are computed from the IANA time zone database bundled with your browser; the rules described above were verified against tzdata 2026b when this page was published.
Frequently asked questions
- Does Asia/Kolkata observe DST?
- No — Asia/Kolkata keeps a fixed +05:30 offset from UTC all year, with no seasonal clock change.
- What is the UTC offset of Asia/Kolkata in winter/summer?
- Asia/Kolkata is +05:30 year-round — the same offset applies in every season.
- Which cities use Asia/Kolkata?
- Mumbai, Delhi, Bengaluru, Hyderabad all use the Asia/Kolkata zone — also commonly known as India Time — along with the rest of India.
- What is the deprecated alias for this zone?
- Asia/Calcutta is a deprecated backward-compatibility name for this zone. Use the canonical identifier Asia/Kolkata in code, cron jobs, `TZ` environment variables and config files instead.