score:30
The basic answer is that they changed because the Government at the time wanted so.
Usually rules based on the day of the week, such as DST changing the last Sunday of month. But the reasons are diverse; in order to make fasting easier for workers by shifting business hours one hour out of daytime heat during Ramadan, in order not to confuse by the voters by not changing the timezone on an election day (but then getting them confused when their smartphones did apply the expected change), by not observing DST during Ramadan (but being in DST before and after)... or just a politican deciding that it is a good idea to change the rules (commonly enough with too little time for software to adapt and upgrade).
The Olson database keeps track of timezone changes, and also include why they set it that way (i.e. from which source they considered that it was the right time).
For Kolkata we can see the following data in the tz database (which, incidentally, is the one you are using):
For time before 1854 Jun 28, it simply considers the Local Mean Time at Kolkata. Based on their geographical position, it's what gives that 5:53:28 offset from GMT. People just considered the midday when the Sun was at the highest point in the sky.
From 1854 to 1870 it uses an offset of 5:53:20, which would be the Mean Time at Howrah
From 1870 to Jan 1906 an offset of 5:21:10, corresponding to Madras. The Indian Year Book 1936-37 lists +052110 as Madras local time used in railways
...and says that on 1906-01-01 railways and telegraphs in India switched to +0530, which could be considered "Indian Standard Time"
Then they had DST from last Sunday of October 1941 to May 1 1942, and since last Sunday of September to 15 October up until 1945. These were clearly Daylight Saving Time timezone rules enacted during Second World War.
India does not observe DST since 1945.
The zone rules are
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 # Kolkata
5:53:20 - HMT 1870 # Howrah Mean Time?
5:21:10 - MMT 1906 Jan 1 # Madras local time
5:30 - IST 1941 Oct
5:30 1:00 +0630 1942 May 15
5:30 - IST 1942 Sep
5:30 1:00 +0630 1945 Oct 15
5:30 - IST
Source of the above is the timezone database ("Olson timezone database"), which is the in Public Domain. You may retrieve it from https://www.iana.org/time-zones
Upvote:4
wartime. States enforced daylight savings through winter and summer both to have more light during the economic working day to reduce production inputs and production costs
pre Timezone time. Timezone was often configured by local clocks. It looks like here some Unix user has purported Alaskan time zones pre 19th century based on local non astronomical time of changing large European settlements.