Why the zone list says Asia/Calcutta
Updated
On the Mac we test with, set to Indian time, Chrome starts this board's zone picker on Asia/Calcutta. The time zone database renamed that zone Asia/Kolkata in 2008. The old name survives because another standard keeps its time zone names stable.
Where zone names come from
Browsers take their time zones from the IANA time zone database, the tz database; the ECMAScript standard requires it of every implementation that supports time zones. The database names zones in the form Area/Location, a continent or ocean followed by a place, as in Africa/Cairo, America/New_York and Pacific/Honolulu. Its guidelines prefer the most populous place in a region (Asia/Shanghai rather than Asia/Beijing) and mainstream English spelling (Europe/Rome, not Europa/Roma). Names are deliberately not tied to countries, because countries change their names and borders: Swaziland became Eswatini, and Hong Kong passed from British to Chinese rule.
A rename, and a link
The database ordinarily changes a name only in the rare case that a place's consensus English spelling changes. In release 2008b, on 24 March 2008, Asia/Calcutta became Asia/Kolkata, "due to long-time widespread use of the new city name instead of the old", in the words of the database's own guidelines. The old name was not deleted. A file called backward keeps Asia/Calcutta as a link to Asia/Kolkata, so software that stored the old name keeps working. The same file carries Asia/Saigon for Asia/Ho_Chi_Minh, Asia/Rangoon for Asia/Yangon, Europe/Kiev for Europe/Kyiv and America/Godthab for America/Nuuk.
Why Chrome still says Calcutta
Chrome runs JavaScript with the V8 engine, and V8's internationalisation support is built on the ICU library. ICU's canonical time zone IDs are those of the Unicode Common Locale Data Repository (CLDR), and CLDR keeps its IDs stable because its locale data is keyed by them. The CLDR specification uses this very zone as its example: its entry lists Asia/Calcutta first, which makes it the CLDR canonical ID, with Asia/Kolkata as an alias and an attribute recording that the tz database now prefers Asia/Kolkata. ICU's own documentation says the same: CLDR defines Asia/Calcutta as the canonical ID.
On the machine we test with, Chrome 153 reports the device's zone as Asia/Calcutta, lists Asia/Calcutta but not Asia/Kolkata among its 418 supported zones, and answers Asia/Calcutta when asked for Asia/Kolkata. The current draft of the ECMAScript internationalisation specification points the other way: a link name such as Asia/Calcutta should resolve to the zone it links to, Asia/Kolkata. For now, Chrome reports the old name.
What it means for the countdown
Only the label differs. Asia/Calcutta and Asia/Kolkata are the same zone, UTC+5:30 with no daylight saving time, so the count is identical under either name. The board shows the list your browser supplies and adds two entries by hand: UTC, which Chrome's list leaves out, and your detected zone, if the list does not already contain it.
Sources
- Theory and pragmatics of the tz code and data — IANA (Area/Location names, naming guidelines, the 2008 Calcutta rename and its reason, old names kept in
backward) - tz database NEWS — IANA (release 2008b, 24 March 2008: Asia/Calcutta renamed Asia/Kolkata with a backward link)
- tz database, file
backward— IANA, release 2026d (Calcutta, Saigon, Rangoon, Kiev and Godthab links) - ECMAScript Language Specification — Ecma TC39, current draft (time zone aware implementations use the IANA Time Zone Database)
- ECMAScript Internationalization API Specification — Ecma TC39, current draft, §6.5.1 (a Link name resolves to its Zone)
- V8 and i18n support — V8 project (used in Chrome; i18n depends on ICU)
- Unicode Locale Data Markup Language (UTS #35) — Unicode (time zone identifiers: the first alias is the CLDR canonical ID; the Asia/Calcutta example)
- icu::TimeZone — ICU 78.3 API reference (canonical IDs come from CLDR; CLDR defines Asia/Calcutta as canonical)
- Chrome 153 on macOS, 28 September 2026: the detected zone and the supported-zone list, read through the JavaScript Intl API