Milestone Schedule

Update for Timezone Changes

Instructions updated 12-12-2012 by J. C. Emmons

Do the following to update to a new timezone database. In the instructions: {cldr} refers to your base directory where your SVN working copy of CLDR is located.

  1. Download the latest version of the data from http://www.iana.org/time-zones
    • The file you care about will look like tzdata2012j.tar.gz (with perhaps different year/letter)
    • Unpack, and copy contents into {cldr}\tools\java\org\unicode\cldr\util\data
    • Edit the file {cldr}\tools\java\org\unicode\cldr\util\data\tzdb-version.txt to change the version, eg for the file tzdata2012j.tar.gz, the version is 2012j.
    • Do an "svn status".  You can throw away any of the files that aren't currently in SVN, ( i.e. lines beginning with '?' ),  such as "Makefile", "solar*", "yearistype.sh", "iso3166.tab", etc.
    • If you are using Eclipse, remember to refresh the project.
  2. Diff zone.tab with SVN. ( svn diff zone.tab )
    • if any IDs in zone.tab changed name, add the mapping to org.unicode.cldr.util.ZoneParser.FIX_UNSTABLE_TZID_DATA
    • The format is <new name>, <old name>
      • Eg {"America/Argentina/Buenos_Aires", "America/Buenos_Aires"},
  3. Now Verify
    • Run GenerateSupplementalZoneData to generate new data.
    • Paste the <variable id="$tzid" type="choice"> ... </variable>  into supplementalMetadata.xml
    • CAREFULLY COMPARE THE RESULTS TO THE LAST VERSION
    • Any new zone.tab ID must show up, eg.
      • supplementalMetadata.xml, new: Australia/Eucla
  4. Check for REMOVED IDs. This doesn't happen very often, but requires some real thought when it does.
    • If there are any $tzid's that are in the last version that are not in the current,
    • find out what "real" alias it should point to. There are 2 types.
    • 1. ID was removed completely, like HST. In that case, there will be no item or alias in zoneItem's.
      • Look at the old supplemental data to determine what it used to map to (eg Pacific/Honolulu)
      • Add to supplementalMetaData
        • <zoneAlias type="HST" replacement="Pacific/Honolulu"/>
      • Add ZoneParser.ADD_ZONE_ALIASES_DATA
        • eg {"HST", "Pacific/Honolulu"},
      • Rerun  GenerateSupplementalZoneData  + cut/paste into supplementalMetadata.xml
    • 2. ID is no longer in zone.tab (after fixing "A"), but is still linked.
      • Add to supplementalMetadata. Use the zoneItem info
        • <zoneAlias type="Africa/Timbuktu" replacement="Africa/Bamako"/>
      • Add to ZoneParser.FIX_DEPRECATED_ZONE_DATA. Example:
        • "Africa/Timbuktu",
      • Rerun GenerateSupplementalZoneData  + cut/paste into supplementalMetadata.xml
      • Sometimes the aliases will be on the wrong element. If so, add to org.unicode.cldr.util.ZoneParser.PREFERRED_BASES.
  5. Repeat C and D until no changes occur.
    • When you are all done, there should ONLY be additions to $tzid
  6. For any of the timezones that are added, changed, or deleted, you will need to make the appropriate metazone updates to supplemental/metazoneInfo.xml.  For each zone, you will need to read the Olson TZ data file ( they are grouped by continent ), and compute the transition times ( in GMT, not local time ) for any metazone transitions.  A metazone transition usually occurs when the abbreviation changes, for example, from E%sT to C%sT.  If a zone is simply starting or stopping observence of DST, then usually no metazone transition is necessary.  Example, going from E%sT to EST is NOT a metazone transition.
  7. Check in the new supplemental files and the data files in ...org\unicode\cldr\util\data
    1. just the data files that are already checked in (eg check in 'africa', but not 'factory')
  8. Do Regenerate Charts
Comments