Typical software libraries have timezone modules that allow you to pick timezones to display data in. The format used is from a TZ Database, a collaborative compilation that is backed by ICANN. This collection of timezones is known as tzdata, zoneinfo database or IANA timezone database.
Now I have always wondered why there is no IST in this database. India, the second largest set of people looking at clocks have to find their timezone on this database using the setting of “Asia/Kolkata”. I mean when you look into the database for the word India you find all these hits.
America/Indiana/Indianapolis America/Indiana/Knox America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Tell_City America/Indiana/Vevay America/Indiana/Vincennes America/Indiana/Winamac America/Indianapolis Indian/Antananarivo Indian/Chagos Indian/Christmas Indian/Cocos Indian/Comoro Indian/Kerguelen Indian/Mahe Indian/Maldives Indian/Mauritius Indian/Mayotte Indian/Reunion US/East-Indiana US/Indiana-Starke
Then I looked up various other countries Singapore - Asia/Singapore , Sri Lanka Asia/Colombo. Pakistan - Asia/Karachi. So it seems that there is no standard way to name these states - Colombo (city) for Sri Lanka, Karachi (City) for Pakistan, Singapore for Singapore.
The Wikipedia article says that the naming convention is “Area/Location”. Further it claims “Country names are not used in this scheme for location, primarily because they would not be robust, owing to frequent political and boundary changes.” That doesnt explain Singapore and a bunch of other names in the tzdatabase. I see entries such as America/Indiana/Indianapolis that is breaking format.
The explanation on Wikipedia for India’s timezone is that the name of city with the largest population (Kolkata) was chosen.
Looks like the adage is true The two hardest things in computer science is cache invalidation and naming things !
This is the python snippet I used to get to research all the names.
import pytz for tz in pytz.all_timezones: if 'india' in tz.lower(): print(tz)