(This question is similar to Long form name of timezone in NodaTime but different).
Every timezone file in /usr/share/zoneinfo
has 0 or more timezone
abbreviations. For example, America/Chicago
has five abbreviations:
CDT
, CPT
, CST
, CWT
, and EST
. For reference, I found these by doing this:
cd /usr/share/zoneinfo
zdump -v America/Chicago | perl -anle 'print $F[13]' | sort | uniq
Each combination of file and abbreviation represents, in some sense, a different timezone. For the America/Chicago example, not all of these timezones are still in use.
My question: where can I find a list of filename/abbreviation combinations mapped to long form timezone names?
The "America/Chicago" section of what I'm seeking may look something like this:
Filename Abbreviation Full Name
America/Chicago CDT Central Daylight Time
America/Chicago CPT [no longer used]
America/Chicago CST Central Standrad Time
America/Chicago CWT [no longer used]
America/Chicago EST Eastern Standard Time
(I'm OK with ununsed timezones not being named).
I'm familiar with CLDR (http://cldr.unicode.org/), but the
common/supplemental/windowsZones.xml
file therein appears to be
nontrivially inaccurate (it's also slightly incomplete, but that's not
as big a deal). For example, this line (the only line matching CST6CDT
):
<mapZone other="Central Standard Time" territory="ZZ" type="CST6CDT"/>
states that the name of the CST6CDT
time zone is "Central Standard
Time", which is incorrect.
CST6CDT
is generically called "Central Time", and is GMT-5 ("Central
Daylight Time") during daylight savings time and GMT-6 ("Central
Standard Time") outside of daylight savings time.
Calling it "Central Standard Time" year-round is incorrect. Calling it "Central Time" year-round would be acceptable, but it would be nice to distinguish between Standard and Daylight time.
I considered looking for an "abbreviation to long name" translator, but this wouldn't work because /usr/share/zoneinfo repeats abbreviations. For example, "EST" means "Eastern Standard Time" in the file "EST5EDT", but "Australian Eastern Standard Time" in the file "Australia/Melbourne".
I've considered using common/supplemental/windowsZones.xml
and then
replacing 'standard' with 'daylight' if the isdst flag is set for the
specific instant in time I'm considering, but this seems kludgey.
Any help appreciated.