• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1**********************************************************************
2* Copyright (c) 2003-2007, International Business Machines
3* Corporation and others.  All Rights Reserved.
4**********************************************************************
5* Author: Alan Liu
6* Created: August 18 2003
7* Since: ICU 2.8
8**********************************************************************
9
10Note:  this directory currently contains tzcode as of tzcode2006h.tar.gz
11   with localtime.c  patches from tzcode2006i.tar.gz
12
13
14----------------------------------------------------------------------
15OVERVIEW
16
17This file describes the tools in icu/source/tools/tzcode
18
19The purpose of these tools is to process the zoneinfo or "Olson" time
20zone database into a form usable by ICU4C (release 2.8 and later).
21Unlike earlier releases, ICU4C 2.8 supports historical time zone
22behavior, as well as the full set of Olson compatibility IDs.
23
24References:
25
26ICU4C:  http://www.icu-project.org/
27Olson:  ftp://elsie.nci.nih.gov/pub/
28
29----------------------------------------------------------------------
30ICU4C vs. ICU4J
31
32For ICU releases >= 2.8, both ICU4C and ICU4J implement full
33historical time zones, based on Olson data.  The implementations in C
34and Java are somewhat different.  The C implementation is a
35self-contained implementation, whereas ICU4J uses the underlying JDK
361.3 or 1.4 time zone implementation.
37
38Older versions of ICU (C and Java <= 2.6) implement a "present day
39snapshot".  This only reflects current time zone behavior, without
40historical variation.  Furthermore, it lacks the full set of Olson
41compatibility IDs.
42
43----------------------------------------------------------------------
44BACKGROUND
45
46The zoneinfo or "Olson" time zone package is used by various systems
47to describe the behavior of time zones.  The package consists of
48several parts.  E.g.:
49
50  Index of ftp://elsie.nci.nih.gov/pub/
51
52  classictzcode.tar.gz    65 KB        12/10/1994    12:00:00 AM
53  classictzdata.tar.gz    67 KB        12/10/1994    12:00:00 AM
54  e5+57.tar.gz            2909 KB      3/22/1993     12:00:00 AM
55  iso8601.ps.gz           16 KB        7/27/1996     12:00:00 AM
56  leastsq.xls             49 KB        4/24/1997     12:00:00 AM
57  ltroff.tar.gz           36 KB        7/16/1993     12:00:00 AM
58  pi.shar.gz              4 KB         3/9/1994      12:00:00 AM
59  tzarchive.gz            3412 KB      8/18/2003     4:00:00 AM
60  tzcode2003a.tar.gz      98 KB        3/24/2003     2:32:00 PM
61  tzdata2003a.tar.gz      132 KB       3/24/2003     2:32:00 PM
62
63ICU only uses the tzdataYYYYV.tar.gz files,
64where YYYY is the year and V is the version letter ('a'...'z').
65
66This directory has partial contents of tzcode checked into ICU
67
68----------------------------------------------------------------------
69HOWTO
70
710. Note, these instructions will only work on POSIX type systems.
72
731. Obtain the current versions of tzdataYYYYV.tar.gz (aka `tzdata') from
74   the FTP site given above.  Either manually download or use wget:
75
76   $ cd {path_to}/icu/source/tools/tzcode
77   $ wget "ftp://elsie.nci.nih.gov/pub/tzdata*.tar.gz"
78
792. Copy only one tzdata*.tar.gz file into the icu/source/tools/tzcode/
80   directory (this directory).
81
82   *** Make sure you only have ONE FILE named tzdata*.tar.gz in the
83       directory.
84
853. Build ICU normally. You will see a notice "updating zoneinfo.txt..."
86
87### Following instructions for ICU maintainers only ###
88
894. Obtain the current version of tzcodeYYYY.tar.gz from the FTP site to
90   this directory.
91
925. Run make target "check-dump".  This target extract makes the original
93   tzcode and compile the original tzdata with icu supplemental data
94   (icuzones).  Then it makes zdump / icuzdump and dump all time
95   transitions for all ICU timezone to files under zdumpout / icuzdumpout
96   directory.  When they produce different results, the target returns
97   the error.
98
996. Don't forget to check in the new zoneinfo.txt (from its location at
100   {path_to}/icu/source/data/misc/zoneinfo.txt) into SVN.
101
102