• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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