1* Copyright (C) 2016 and later: Unicode, Inc. and others. 2* License & terms of use: http://www.unicode.org/copyright.html 3********************************************************************** 4* Copyright (c) 2003-2014, International Business Machines 5* Corporation and others. All Rights Reserved. 6********************************************************************** 7* Author: Alan Liu 8* Created: August 18 2003 9* Since: ICU 2.8 10********************************************************************** 11 12Note: this directory currently contains tzcode as of tzcode2014b.tar.gz 13 with localtime.c patches from tzcode2014b.tar.gz 14 15 16---------------------------------------------------------------------- 17OVERVIEW 18 19This file describes the tools in icu/source/tools/tzcode 20 21The purpose of these tools is to process the zoneinfo or "Olson" time 22zone database into a form usable by ICU4C (release 2.8 and later). 23Unlike earlier releases, ICU4C 2.8 supports historical time zone 24behavior, as well as the full set of Olson compatibility IDs. 25 26References: 27 28ICU4C: http://www.icu-project.org/ 29Olson: ftp://ftp.iana.org/tz/releases/ 30 31---------------------------------------------------------------------- 32ICU4C vs. ICU4J 33 34For ICU releases >= 2.8, both ICU4C and ICU4J implement full 35historical time zones, based on Olson data. The implementations in C 36and Java are somewhat different. The C implementation is a 37self-contained implementation, whereas ICU4J uses the underlying JDK 381.3 or 1.4 time zone implementation. 39 40Older versions of ICU (C and Java <= 2.6) implement a "present day 41snapshot". This only reflects current time zone behavior, without 42historical variation. Furthermore, it lacks the full set of Olson 43compatibility IDs. 44 45---------------------------------------------------------------------- 46BACKGROUND 47 48The zoneinfo or "Olson" time zone package is used by various systems 49to describe the behavior of time zones. The package consists of 50several parts. E.g.: 51 52 Index of ftp://ftp.iana.org/tz/releases/ 53 54 tzcode2014b.tar.gz 172 KB 3/25/2014 05:11:00 AM 55 tzdata2014b.tar.gz 216 KB 3/25/2014 05:11:00 AM 56 57ICU only uses the tzdataYYYYV.tar.gz files, 58where YYYY is the year and V is the version letter ('a'...'z'). 59 60This directory has partial contents of tzcode checked into ICU 61 62---------------------------------------------------------------------- 63HOWTO 64 650. Note, these instructions will only work on POSIX type systems. 66 671. Obtain the current versions of tzdataYYYYV.tar.gz (aka `tzdata') from 68 the FTP site given above. Either manually download or use wget: 69 70 $ cd {path_to}/icu/source/tools/tzcode 71 $ wget "ftp://ftp.iana.org/tz/releases/tzdata*.tar.gz" 72 732. Copy only one tzdata*.tar.gz file into the icu/source/tools/tzcode/ 74 directory (this directory). 75 76 *** Make sure you only have ONE FILE named tzdata*.tar.gz in the 77 directory. 78 793. Build ICU normally. You will see a notice "updating zoneinfo.txt..." 80 81### Following instructions for ICU maintainers only ### 82 834. Obtain the current version of tzcodeYYYY.tar.gz from the FTP site to 84 this directory. 85 865. Run make target "check-dump". This target extract makes the original 87 tzcode and compile the original tzdata with icu supplemental data 88 (icuzones). Then it makes zdump / icuzdump and dump all time 89 transitions for all ICU timezone to files under zdumpout / icuzdumpout 90 directory. When they produce different results, the target returns 91 the error. 92 936. Don't forget to check in the new zoneinfo64.txt (from its location at 94 {path_to}/icu/source/data/misc/zoneinfo64.txt) into SVN. 95 96