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