GithubHelp home page GithubHelp logo

Comments (5)

philr avatar philr commented on August 22, 2024

If you want to manually add America/Montreal back in to the TZInfo::Data countries index, you can do so by modifying data/zone.tab and then running rake build_tz_modules. This will read the contents of the data directory and rewrite all the module files under lib/tzinfo/data/definitions and lib/tzinfo/data/indexes.

However, removing America/Montreal from zone.tab was an intentional change made in tzdata v2013e (and therefore also in TZInfo::Data v1.2013.5). Unless you require time zone definitions from before 1970, you should probably swap to America/Toronto instead.

from tzinfo-data.

guyboertje avatar guyboertje commented on August 22, 2024

Now every Rails project will have to keep their own mappings of Montreal -> "America/Toronto" and/or "America/Montreal" -> "America/Toronto" and/or TZInfo::Country.get('CA').zones << TZInfo::Timezone.get("America/Montreal")

from tzinfo-data.

philr avatar philr commented on August 22, 2024

The America/Montreal zone still exists and can still be used. The only difference is that America/Montreal won't appear in the countries index (e.g. in the array returned by TZInfo::Country.get('CA').zones).

As far as I can see, Rails doesn't actually have a Montreal time zone, so won't be affected directly.

The zone.tab file (and by extension the TZInfo countries index) changes frequently. Please see the comments in zone.tab for the reasoning behind which zones are included. If you are using the countries index to provide a UI for selecting a time zone, this interface should be coded to allow for added and removed zones.

The whole point of TZInfo::Data is to repackage the standard IANA Timezone Database. I am therefore not going to make any changes in TZInfo::Data that haven't first published in the IANA Timezone Database.

from tzinfo-data.

guyboertje avatar guyboertje commented on August 22, 2024

Understood. People can at least find this discussion to understand the issue with Montreal. Thanks.

from tzinfo-data.

kashifshamaz21 avatar kashifshamaz21 commented on August 22, 2024

After scratching my head for quite a well, found this very, very useful thread. Timezones are a complete mess! The checktab.awk file has this following line, since a commit done in 2013:

# A special (and we hope temporary) case.
    tztab["America/Montreal"] = 1

commit hash for more reference: eggert/tz@2022cdd

As mentioned above by @guyboertje , any application that provides utility functions to return list of zones of countries, will have to keep this explicit mapping of America/Montreal => Canada.
Just seems so hacky!
And the latest version(2014j) of tz data, has a few more lines like these:

# Some more special cases; these are zones that should probably
# be turned into links.
    if (zone_table == "zone1970.tab") {
              tztab["America/Antigua"] = 1
          tztab["America/Cayman"] = 1
          tztab["Pacific/Midway"] = 1
          tztab["Pacific/Saipan"] = 1
    }

But atleast for these zones, they have an entry in the zone.tab file.

from tzinfo-data.

Related Issues (17)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.