Some years ago I discovered that in Unix time system, the place where I live in changes the zone!

For example:

>> Time.new.strftime('%z')
=> "+0530"

This means that today the timezone in Asia/Kolkata (+5:30) the zone is +5:30.

But if I change the year:

# In year 1941, timezone was +5:30
>> Time.new(1941).strftime('%z')
=> "+0530"

# In year 1942, timezone changed to +6:30
>> Time.new(1942).strftime('%z')
=> "+0630"
>> Time.new(1943).strftime('%z')
=> "+0630"
>> Time.new(1944).strftime('%z')
=> "+0630"
>> Time.new(1945).strftime('%z')
=> "+0630"
>> Time.new(1946).strftime('%z')
=> "+0530"

>> Time.new(1900).strftime('%z')
=> "+0521"
>> Time.new(1800).strftime('%z')
=> "+0553"

[ this is in Ruby programming language, only works on systems where TZ is natively set to Asia/Kolkata, so prepend TZ=Asia/Kolkata to irb/ruby/python/perl/date etc. to launch the program in Asia/Kolkata TZ ]

Here's a site that lets you do that graphically from any country

As you can see, I get different timezone back.

This is true for my computer, other computers, and even any single programming language capable of showing timezones.

Is it true that in the past timezone used to change based on the year? And what was the impact of that on the country?

  • 4
    Perhaps it changes when the country changed their laws?
    – MCW
    Sep 10, 2020 at 18:47
  • 11
    What is not answered at Calcutta Time. India's a big place, and the time zone swtandards changed over the course of British governance, and then independence. Sep 10, 2020 at 18:48
  • 3
    It seems to be a question more suited for StackOverflow
    – d.k
    Sep 10, 2020 at 19:12
  • 3
    It's interesting. I have timezone Kiev, +2 or +3, don't know. For 1941, 1944 it outputs +0300. For 1942, 1943 it's +0100 I suspect it has something to do with ww2, since in 1942, 1943 Kiev was controlled by the Germans and Berlin being within like 2 hours difference. Despite Kolkata wasn't captured by the Japanese AFAIK I suspect it has something to do with Imphal etc, you may be in the same zone.
    – d.k
    Sep 10, 2020 at 19:59
  • 3
    For years like 1900 it also gives uneven results like +0202 which I have no explanation whatsoever.
    – d.k
    Sep 10, 2020 at 20:01

2 Answers 2


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"

    • However, you should note that “Some municipalities retained their former time, and the time in Calcutta continued to depend on whether you were at the railway station or at government offices. Government time was at +055320 (according to Shanks) or at +0554 (according to the Indian Year Book).”
  • 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    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

  • 5
    "Local Mean Time" does not mean that noon is the point at which the sun is highest in the sky, but the average of the times, so that there is exactly the same number of minutes between every noon. This can be out as many as fifteen minutes from the actual time. Given that clocks use Local Mean Time much more easily than Apparent or True Solar Time, it pretty much came in with clocks, but it's not exactly the same.
    – Mary
    Sep 11, 2020 at 1:10
  • 1
    @Mary good point. I mixed the concept from when people were sun-based (each day would slightly deviate from each other), to the formulation when we would now calculate the time at that point.
    – Ángel
    Sep 11, 2020 at 1:14
  • It might be of interest to note that changes in time zones are not just a thing of the past. If you look, for example, at the changelog for the time zone data included in the Java Runtime Engine, you'll see that the last revision recorded there is from mid-July of this year. Over the last few years at least, there have been multiple changes each year, from Morocco to Canada to Fiji to Kazakhstan to Chile to Namibia to... Sep 11, 2020 at 10:28
  • @HenningKockerbeck A decent percentage of those are changes around handling of 'daylight savings time' though. Governments just can't quite seem to get rid of it, but sure love moving it around. Luckily though, truly big jumps are mostly a thing of the past (see for example Sweden losing eleven whole days in 1753 when they switched to the Gregorian calendar). Sep 11, 2020 at 14:36
  • 1
    @HenningKockerbeck The JRE database is just a packaged version of the olson database. The authoritative origin is at github.com/eggert/tz, github.com/eggert/tz/blob/master/NEWS being the most up to date source of changes. Sep 11, 2020 at 16:06
  1. 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

  2. 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.

  • Didn't it collide with the nearby timezone? Say +0630 is now bangladesh, changing it in Kolkata (+0530) will cause it to shift to bangladesh, and we need to cope up with the time by reducing it in the future. So didn't it have any drastic effect like that? (Apart from that, programming languages till date can't even handle such changes!! I have tried ruby on different servers, and they can't well interpret the changes!)
    – 15 Volts
    Sep 10, 2020 at 19:15
  • 5
    @S.Goswami no one cares about others' timezones or even their own place. For example China uses a single timezone for the whole country, causing big differences between local noon and official noon, and also differences with other countries. Spain's time is 2 hours ahead of the local sun time. See countries that change timezone
    – phuclv
    Sep 11, 2020 at 7:09

Not the answer you're looking for? Browse other questions tagged or ask your own question.