summaryrefslogtreecommitdiffstats
path: root/intl/icu/source/tools/tzcode/readme.txt
blob: 5ec8bb3d17008db7da27e24d149f058d10d04499 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
* Copyright (C) 2016 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
**********************************************************************
* Copyright (c) 2003-2014, International Business Machines
* Corporation and others.  All Rights Reserved.
**********************************************************************
* Author: Alan Liu
* Created: August 18 2003
* Since: ICU 2.8
**********************************************************************

Note:  this directory currently contains tzcode as of tzcode2014b.tar.gz
   with localtime.c  patches from tzcode2014b.tar.gz


----------------------------------------------------------------------
OVERVIEW

This file describes the tools in icu/source/tools/tzcode

The purpose of these tools is to process the zoneinfo or "Olson" time
zone database into a form usable by ICU4C (release 2.8 and later).
Unlike earlier releases, ICU4C 2.8 supports historical time zone
behavior, as well as the full set of Olson compatibility IDs.

References:

ICU4C:  http://www.icu-project.org/
Olson:  ftp://ftp.iana.org/tz/releases/

----------------------------------------------------------------------
ICU4C vs. ICU4J

For ICU releases >= 2.8, both ICU4C and ICU4J implement full
historical time zones, based on Olson data.  The implementations in C
and Java are somewhat different.  The C implementation is a
self-contained implementation, whereas ICU4J uses the underlying JDK
1.3 or 1.4 time zone implementation.

Older versions of ICU (C and Java <= 2.6) implement a "present day
snapshot".  This only reflects current time zone behavior, without
historical variation.  Furthermore, it lacks the full set of Olson
compatibility IDs.

----------------------------------------------------------------------
BACKGROUND

The zoneinfo or "Olson" time zone package is used by various systems
to describe the behavior of time zones.  The package consists of
several parts.  E.g.:

  Index of ftp://ftp.iana.org/tz/releases/

  tzcode2014b.tar.gz      172 KB       3/25/2014     05:11:00 AM
  tzdata2014b.tar.gz      216 KB       3/25/2014     05:11:00 AM

ICU only uses the tzdataYYYYV.tar.gz files,
where YYYY is the year and V is the version letter ('a'...'z').

This directory has partial contents of tzcode checked into ICU

----------------------------------------------------------------------
HOWTO

0. Note, these instructions will only work on POSIX type systems.

1. Obtain the current versions of tzdataYYYYV.tar.gz (aka `tzdata') from
   the FTP site given above.  Either manually download or use wget:

   $ cd {path_to}/icu/source/tools/tzcode
   $ wget "ftp://ftp.iana.org/tz/releases/tzdata*.tar.gz"

2. Copy only one tzdata*.tar.gz file into the icu/source/tools/tzcode/
   directory (this directory).

   *** Make sure you only have ONE FILE named tzdata*.tar.gz in the
       directory.

3. Build ICU normally. You will see a notice "updating zoneinfo.txt..."

### Following instructions for ICU maintainers only ###

4. Obtain the current version of tzcodeYYYY.tar.gz from the FTP site to
   this directory.

5. Run make target "check-dump".  This target extract makes the original
   tzcode and compile the original tzdata with icu supplemental data
   (icuzones).  Then it makes zdump / icuzdump and dump all time
   transitions for all ICU timezone to files under zdumpout / icuzdumpout
   directory.  When they produce different results, the target returns
   the error.

6. Don't forget to check in the new zoneinfo64.txt (from its location at
   {path_to}/icu/source/data/misc/zoneinfo64.txt) into SVN.