Time Zone Data Reorganization

Existing Data by Type


a) alias mapping

supplementalData.xml

<zoneFormatting>
  ...
  <zoneItem type="Africa/Asmera" territory="ER" aliases="Africa/Asmara"/>
  ...
</zoneFormatting>

b) metazone -> golden zone

supplementalData.xml

<mapTimezones type="metazone">
  ...
  <mapZone other="Africa_Central" territory="001" type="Africa/Maputo"/>
  <mapZone other="Africa_Central" territory="BI" type="Africa/Bujumbura"/>
  <mapZone other="Africa_Central" territory="BW" type="Africa/Gaborone"/>
  <mapZone other="Africa_Central" territory="CD" type="Africa/Lubumbashi"/>
  <mapZone other="Africa_Central" territory="MW" type="Africa/Blantyre"/>
  <mapZone other="Africa_Central" territory="RW" type="Africa/Kigali"/>
  <mapZone other="Africa_Central" territory="ZM" type="Africa/Lusaka"/>
  <mapZone other="Africa_Central" territory="ZW" type="Africa/Harare"/>
  ...
</mapTimezones>

c) historic metazone mapping

metazoneInfo.xml

<metazoneInfo>
  ...
  <timezone type="Asia/Yerevan">
    <usesMetazone to="1991-09-22 20:00" mzone="Yerevan"/>
    <usesMetazone from="1991-09-22 20:00" mzone="Armenia"/>
  </timezone>
  ...
</metazoneInfo>

d) zone -> territory


supplementalData.xml

<zoneFormatting>
  ...
  <zoneItem type="Africa/Asmera" territory="ER" aliases="Africa/Asmara"/>
  ...
</zoneFormatting>

e) territories where multiple time zones are available

supplementalData.xml

<zoneFormatting multizone="001 AQ AR AU BR CA CD CL CN EC ES FM GL ID KI KZ MH MN MX MY NZ PF PT RU UA UM US UZ" tzidVersion="2009f">

f) Mapping between Olson ID and Unicode time zone short ID (bcp47 ids)

(1) bcp47/timezone.xml

Short ID -> Olson ID

<type name="adalv" alias="Europe/Andorra"/>

(2) supplementalData.xml

Olson ID -> Short ID

<bcp47KeywordMappings>
  ...
  <mapTypes type="timezone">
    ...
    <typeMap type="Europe/Andorra" bcp47="adalv"/>
    ...
   </mapTypes>
  ...
</bcp47KeywordMappings>

g) Windows tzid mapping

supplementalData.xml

<mapTimezones type="windows">
  <mapZone other="AUS Central Standard Time" type="Australia/Darwin"/> <!-- S (GMT+09:30) Darwin -->
  ...
</mapTimezones>


Hige Level Proposal

- bcp47/timezone.xml must be there, because all keyword keys/types must reside in bcp47/*.xml.  Therefore, f) (2) <bcpKeywordMappings> should be deprecated (this is an invert mapping table)
- The set of canonical Unicode time zone IDs is defined by bcp47/timezone.xml.  Because we do not want to maintain the set in multiple places, long ID aliases could be embedded in bcp47/timezone.xml.
- Metazone tables (b and c) should be in a single file
- Territory mapping is almost equivalent to zone.tab in tzdata (minor exception - zone.tab does not include deprecated zones).  I think it is not worth maintaining the data in CLDR.  Therefore, d) and e) should be deprecated / no corresponding data in 1.8
- Windows tz mapping is independently maintained - it should be moved into a new file.  Side note: A single Windows tz could be mapped to multiple zones in future.


New Data Organization

1. bcp47/timezone.xml

Add long aliases - for example

<type name="erasm" alias="Africa/Asmera Africa/Asmara"/>

2. metazoneInfo.xml

Add b) into this file

3. wintz.xml (new)

Store only g).

Comments