Asia/Kolkata

Asia/Kolkata covers Mumbai, Delhi, Bengaluru and the rest of India, at +05:30 standard time, with no daylight saving time.

Loading tool…

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.