Hello, I am relatively new to RoR, but vastly experienced with time
and date/time issues on other multiple other platforms.
I answer quite a few questions on StackOverflow in this area, and often
questions about ActiveSupport::TimeZone come up. I’m hoping that
from this forum can provide the background behind this implementation,
that I am better informed to address these questions.
My understanding is that the Ruby TZInfo gem is the base implementation
the IANA/Olson time zone database, but Rails ships with
ActiveSupport::TimeZone which is based on this, with some changes. It’s
the changes that I’m unsure about.
From the documentation here:
serves as a wrapper around TZInfo::Timezone instances.
This is the basis for my earlier statements. But, WHY was it created?
not just use the TZInfo gem?
It allows us to do the following:
Limit the set of zones provided by TZInfo to a meaningful subset of
Ok - but who determined which of the 578 zones are “meaningful”? By
criteria? And by what review process do newly established zones get
determined if they make the cut or not? Is there a recommended strategy
dealing with zones that were omitted?
Also, why limit it to begin with? The size of the database shouldn’t be
issue - since this is all server-side code. I could see perhaps
a method to retrieve those that are “meaningful” from the larger data
but it doesn’t make sense to me that they are omitted.
Retrieve and display zones with a friendlier name (e.g., Eastern
(US & Canada) instead of America/New_York).
Again, who decides what “friendlier” means? I sure hope the original
are not lost - since those are keys used for interoperability with other
systems that also implement the TZDB. Are they still available on the
TimeZone object? What about non-English speakers, are these names
localized for them? Some of the names are quite reminiscent of the
Names of the proprietary Microsoft Windows time zones. Did that have an
influence on their creation?
I see that the MAPPING constant is available in the documentation. That
good. I haven’t fully digested it though - is it a one-to-one mapping?
Does it handle TZDB link alias, such as Asia/Calcutta => Asia/Kolkata
US/Eastern => America/New_York ?
Thank you in advance for any and all information that you can provide.