The tz database is a collaborative compilation of information about
the world's time zones, primarily intended for use with computer
programs and operating systems. Paul Eggert is its current editor
and maintainer, with the organizational backing of ICANN. The tz
database is also known as tzdata, the zoneinfo database or IANA time
zone database, and occasionally as the Olson database, referring to
the founding contributor, Arthur David Olson.
Its uniform naming convention for time zones, such as America/New_York
and Europe/Paris, was designed by Paul Eggert. The database
attempts to record historical time zones and all civil changes since
Unix time epoch. It also includes transitions such as
daylight saving time, and also records leap seconds.
The database, as well as some reference source code, is in the public
domain. New editions of the database and code are published as
changes warrant, usually several times per year.
1 Data structure
1.2 Definition of a time zone
Daylight saving time
Daylight saving time (DST) rules
1.4 Names of time zones
1.5 Example zone and rule lines
1.6 Data stored for each zone
1.6.2 Data before 1970
2.1 Zones covering multiple post-1970 countries
5 Usage and extensions
5.1 Boundaries of time zones
5.2 Use in other standards
5.3 Use in software systems
6.1 2011 lawsuit
6.2 Move to ICANN
7 See also
9 External links
9.2 Official IANA sources
9.3 Man pages
The tz database is published as a set of text files which list the
rules and zone transitions in a human-readable format. For use, these
text files are compiled into a set of platform-independent binary
files—one per time zone. The reference source code includes such a
compiler called zic (zone information compiler), as well as code to
read those files and use them in standard application programming
interfaces such as localtime() and mktime().
Definition of a time zone
Within the tz database, a time zone is any national region where local
clocks have all agreed since 1970. This definition concerns itself
first with geographic areas which have had consistent local clocks.
This is different from other definitions which concern themselves with
consistent offsets from a prime meridian. Therefore, each of the time
zones defined by the tz database may document multiple offsets from
UTC, typically including both standard time and daylight saving time.
In the time zone text files, each time zone has one or more "zone
lines" in one of the time zone text files. The first zone line for a
time zone gives the name of the time zone; any subsequent zone lines
for that time zone leave the name blank, indicating that they apply to
the same zone as the previous line. Each zone line for a zone
specifies, for a range of date and time, the offset to UTC for
standard time, the name of the set of rules that govern daylight
saving time (or a hyphen if standard time always applies), the format
for time zone abbreviations, and, for all but the last zone line, the
date and time at which the range of date and time governed by that
Daylight saving time
Daylight saving time (DST) rules
The rules for daylight saving time are specified in named rule sets.
Each rule set has one or more rule lines in the time zone text files.
A rule line contains the name of the rule set to which it belongs, the
first year in which the rule applies, the last year in which the rule
applies (or "only" if it applies only in one year or "max" if it is
the rule currently in effect), the type of year to which the rule
applies ("-" if it applies to all years in the specified range, which
is almost always the case, otherwise a name used as an argument to a
script that indicates whether the year is of the specified type), the
month in which the rule takes effect, the day on which the rule takes
effect (which could either be a specific day or a specification such
as "the last Sunday of the month"), the time of day at which the rule
takes effect, the amount of time to add to the offset to UTC when the
rule is in effect, and the letter or letters to use in the time zone
abbreviation (for example, "S" if the rule governs standard time and
"D" if it governs daylight saving time).
Names of time zones
The time zones have unique names in the form "Area/Location", e.g.
"America/New_York". A choice was also made to use English names or
equivalents, and to omit punctuation and common suffixes. The
underscore character is used in place of spaces. Hyphens are used
where they appear in the name of a location. The names have a maximum
length of 14 characters.
Area is the name of a continent, an ocean, or "Etc". The continents
and oceans currently used are Africa, America, Antarctica, Arctic,
Asia, Atlantic, Australia, Europe, Indian, and Pacific.
The oceans are included since some islands are hard to connect to a
certain continent. Some are geographically connected to one continent
and politically to another. See also Boundaries between continents.
The special area of "Etc" is used for some administrative zones,
particularly for "Etc/UTC" which represents Coordinated Universal
Time. In order to conform with the
POSIX style, those zone names
beginning with "Etc/GMT" have their sign reversed from the standard
ISO 8601 convention. In the "Etc" area, zones west of GMT have a
positive sign and those east have a negative sign in their name (e.g
"Etc/GMT-14" is 14 hours ahead of GMT.)
Location is the name of a specific location within the area –
usually a city or small island.
Country names are not used in this scheme, primarily because they
would not be robust, owing to frequent political and boundary changes.
The names of large cities tend to be more permanent. However, the
database maintainers attempt to include at least one zone for every
ISO 3166-1 alpha-2
ISO 3166-1 alpha-2 country code, and a number of user interfaces to
the database take advantage of this. Additionally there is a desire to
keep locations geographically compact so that any future time zone
changes do not split locations into different time zones.[citation
Usually the most populous city in a region is chosen to represent the
entire time zone, although other cities may be selected if they are
more widely known or result in a less ambiguous name.
In the event that the name of a city changes, the convention is to
create an alias in future editions so that both the
old and new names refer to the same database entry.
In some cases the Location is itself represented as a compound name,
for example the time zone "America/Indiana/Indianapolis". Three-level
names include those under "America/Argentina/...",
"America/Kentucky/...", "America/Indiana/...", and
The location selected is representative for the entire area.
name of country used because the name of the largest city (and capital
city) San José is ambiguous
Space replaced with underscore
name of city of
Kolkata used, because it was the most populous city in
the zone at the time the zone was set up, though this is no longer
name of island used, because largest city, Yuzhno-Sakhalinsk, has more
than 14 characters
name of largest city altered, "de" removed from Bahia de Banderas,
because correct name has more than 14 characters
the apostrophe is removed. The space would normally be replaced with
"_", but the name would then exceed 14 characters.
Example zone and rule lines
These are rule lines for the standard United States daylight saving
time rules, rule lines for the daylight saving time rules in effect in
the US Eastern Time Zone (called "NYC" as
New York City
New York City is the city
representing that zone) in some years, and zone lines for the
America/New_York time zone, as of release version tzdata2011n of the
time zone database. The zone and rule lines reflect the history of DST
in the United States.
# Rule NAME FROM TO TYPE IN ON AT SAVE
Rule US 1918 1919 - Mar lastSun 2:00 1:00
Rule US 1918 1919 - Oct lastSun 2:00 0
Rule US 1942 only - Feb 9 2:00 1:00
W # War
Rule US 1945 only - Aug 14 23:00u 1:00
P # Peace
Rule US 1945 only - Sep 30 2:00 0
Rule US 1967 2006 - Oct lastSun 2:00 0
Rule US 1967 1973 - Apr lastSun 2:00 1:00
Rule US 1974 only - Jan 6 2:00 1:00
Rule US 1975 only - Feb 23 2:00 1:00
Rule US 1976 1986 - Apr lastSun 2:00 1:00
Rule US 1987 2006 - Apr Sun>=1 2:00
Rule US 2007 max - Mar Sun>=8 2:00
Rule US 2007 max - Nov Sun>=1 2:00 0
# Rule NAME FROM TO TYPE IN ON AT SAVE
Rule NYC 1920 only - Mar lastSun 2:00 1:00
Rule NYC 1920 only - Oct lastSun 2:00 0
Rule NYC 1921 1966 - Apr lastSun 2:00 1:00
Rule NYC 1921 1954 - Sep lastSun 2:00 0
Rule NYC 1955 1966 - Oct lastSun 2:00 0
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58
-5:00 US E%sT 1920
-5:00 NYC E%sT 1942
-5:00 US E%sT 1946
-5:00 NYC E%sT 1967
-5:00 US E%sT
Data stored for each zone
For each time zone that has multiple offsets (usually due to daylight
saving time), the tz database records the exact moment of transition.
The format can accommodate changes in the dates and times of
transitions as well. Zones may have historical rule changes going back
many decades (as shown in the example above).
The file zone.tab is in the public domain and lists the zones. Columns
and row sorting are described in the comments of the file, as follows:
# This file contains a table with the following columns:
# 1. ISO 3166 2-character country code. See the file `iso3166.tab'.
# 2. Latitude and longitude of the zone's principal location
ISO 6709 sign-degrees-minutes-seconds format,
# either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS,
# first latitude (+ is north), then longitude (+ is east).
# 3. Zone name used in value of TZ environment variable.
# 4. Comments; present if and only if the country has multiple rows.
# Columns are separated by a single tab.
# The table is sorted first by country, then an order within the
# (1) makes some geographical sense, and
# (2) puts the most populous zones first, where that does not
Data before 1970
Data before 1970 aims to be correct for the city identifying the
region, but is not necessarily correct for the entire region. This is
because new regions are created only as required to distinguish clocks
For example, between 1963-10-23 and 1963-12-09 in Brazil only the
states of Minas Gerais, Espirito Santo, Rio de Janeiro, and São Paulo
had summer time. However, a requested split from America/Sao_Paulo was
rejected in 2010 with the reasoning that, since 1970, the clocks were
the same in the whole region.
Time in Germany, which is represented by Europe/Berlin, is not correct
for the year 1945 when the
Trizone used different daylight saving time
rules than Berlin.
Zones covering multiple post-1970 countries
There are two zones that cover an area that was covered by two
countries after 1970. The database follows the definitions of
countries as per ISO 3166-1, whose predecessor, ISO 3166, was first
published in 1974.
Asia/Aden – two countries until 1990:
North Yemen (Aden,
People's Republic, ISO 3166-1: YE) and
South Yemen (Sanaa, ISO 3166-1:
YD, ISO 3166-3: YDYE).
Europe/Berlin – two countries until 1990:
East Germany (ISO
3166-1: DD, ISO 3166-3: DDDE) and
West Germany (ISO 3166-1: DE)
The tz reference code and database is maintained by a group of
volunteers. Arthur David Olson makes most of the changes to the code,
and Paul Eggert to the database. Proposed changes are sent to the tz
mailing list, which is gatewayed to the comp.time.tz Usenet newsgroup.
Source files are distributed via the IANA FTP server. Typically, these
files are taken by a software distributor like Debian, compiled, and
then the source and binaries are packaged as part of that
distribution. End users can either rely on their software
distribution's update procedures, which may entail some delay, or
obtain the source directly and build the binary files themselves. The
IETF has published RFC 6557, "Procedures for Maintaining the Time
Zone Database" documenting best practices based on similar principles.
The standard path for the timezone database is /usr/share/zoneinfo/ in
Linux distributions, macOS, and some other
Usage and extensions
Boundaries of time zones
Geographical boundaries in the form of coordinate sets are not part of
the tz database, but boundaries are published by Eric Muller in the
form of vector polygons. Using these vector polygons, one can
determine, for each place on the globe, the tz database zone in which
it is located.
Use in other standards
Common Locale Data Repository (CLDR) refers to zones in
the tz database. However, as the name for a zone can change from one
tz database release to another, the CLDR assigns the
UN/LOCODE for the
city used in the name for the zone, or an internally-assigned code if
there is no such city for the zone, to a tzdb zone.
Use in software systems
The tz database is used for time zone processing and conversions in
many computer software systems, including:
BSD-derived systems, including FreeBSD, NetBSD, OpenBSD, DragonFly
BSD, and macOS (they also use the reference TZ database processing
code as their TZ
POSIX API implementation);
GNU C Library
GNU C Library and systems that use it, including GNU, most Linux
distributions, BeOS, Haiku, Nexenta OS, and Cygwin;
System V Release 4-derived systems, such as Solaris and UnixWare;
AIX 6.1 and later (earlier versions of AIX, starting with AIX
5.2, include zoneinfo, for support of third-party applications
such as MySQL, but do not use it themselves);
Unix systems, including Tru64, and UNICOS/mp (also IRIX,
still maintained but no longer shipped);
the Java Runtime Environment since release 1.4 (2002);
the Java library Joda-Time;
Perl modules DateTime::TimeZone and DateTime::LeapSecond since
PHP releases since 5.1.0 (2005);
the Ruby Gem TZInfo;
the Python module pytz;
the Pandas (Python) module ;
.NET Framework libraries NodaTime, TZ4Net and zoneinfo;
the Haskell libraries timezone-series and timezone-olson;
the Erlang module ezic;
The Go standard library time package;
Squeak Smalltalk time package;
C++ libraries Boost and Qt;
The Delphi library TZDB;
Free Pascal library PascalTZ;
Oracle releases since 10g (2004);
PostgreSQL since release 8.0 (2005);
Microsoft SQL Server
Microsoft SQL Server library SQL Server Time Zone Support
MongoDB since release 3.6;
embedded software such as the firmware used in IP clocks.
The Olson timezone IDs are also used by the Unicode Common Locale Data
Repository (CLDR) and
International Components for Unicode (ICU). For
example, the CLDR Windows–Tzid table maps Microsoft Windows time
zone IDs to the standard Olson names.
The project's origins go back to 1986 or earlier.
On September 30, 2011, a lawsuit, Astrolabe, Inc. v. Olson et al., was
filed concerning copyright in the database. As a result, on
October 6, 2011, the database's mailing list and FTP site were shut
down. The case revolved around the database maintainers' use of
The American Atlas, by Thomas G. Shanks, and The International Atlas,
Thomas G. Shanks and Rique Pottenger. It complained of unauthorised
reproduction of atlas data in the timezone mailing list archive and in
some auxiliary link collections maintained with the database, though
it did not actually point at the database itself. The complaint
related only to the compilation of historical timezone data, and did
not cover current tzdata world timezone tables.
This lawsuit was resolved on February 22, 2012 after the involvement
of the Electronic Frontier Foundation, when Astrolabe voluntarily
moved to dismiss the lawsuit without having ever served the defendants
and agreed to a covenant not to sue in the future.
Move to ICANN
ICANN took responsibility for the maintenance of the database on
October 14, 2011. The full database and a description of current
and future plans for its maintenance are available online from
List of tz database time zones
Daylight saving time
^ a b Muller, Eric (2012-10-08). "A shapefile of the TZ timezones of
^ Eggert, Paul; Olson, Arthur David (2007-11-29). "Sources for time
zone and daylight saving time data". Retrieved 2007-12-03.
^ Eggert, Paul (2005-01-17). "Re: FW: IANA time zone registration –
proposal". tz (Mailing list). Archived from the original on
^ a b "
ICANN to Manage Time Zone Database" (news alert). ICANN.
2011-10-15. Retrieved 2011-12-30.
^ Olson, Arthur David (1986-12-16). "Resolved timezone issue? Other
issues. New ctime manual page". tz (Mailing list). Missing or
empty url= (help)
^ Eggert, Paul (1993-10-20). "proposal for time zone names". tz
^ Olson, Arthur David (1987-03-18). "Re: ist of issues". tz (Mailing
list). Missing or empty url= (help)
^ Devine, Bob (1988-06-02). "leap seconds; [0-60] is ok". tz (Mailing
^ Eggert, Paul (1995-11-11). "questions and comments on
http://tycho.usno.navy.mil/tzones.html". tz (Mailing list).
Missing or empty url= (help)
^ "zoneinfo tzcode and tzdata archives (FTP)". Retrieved
^ Theory (text file), contained in the "tzcode" distribution. Version
tzcode2007h.tar.gz 2007-10-01 referenced.
^ Olson, Arthur David (2010-05-01). "proposed time zone package
changes (Bahia de Banderas; version naming)".
^ Paul Eggert (December 21, 2012). "Re: zoneinfo : ist :
error". tz (Mailing list).
^ Olson, Arthur David (2010-01-06). "RE: little nuance in brazil
1963". tz (Mailing list).
^ DST and midsummer DST in Germany until 1979, Physikalisch-Technische
^ "Unicode Locale Extension ('u') for BCP 47". CLDR - Unicode Common
Locale Data Repository.
^ "Unicode Locale Data Markup Language (LDML), Part 4: Dates". section
5, Time Zone Names.
^ "Olson time zone support and setup". AIX 7.1 information. IBM.
^ "Managing the Time Zone Variable". IBM. 2007-02-02. Retrieved
^ a b "AIX O/S updated to support 2007 Daylight Saving Time change".
IBM. 2007-10-18. Retrieved 2011-03-12.
^ "2007 daylight savings [sic] time changes for Unix". Academic
Computing and Communications Center, University of Illinois at
Chicago. 2007-02-25. Archived from the original on 2012-08-01.
Retrieved 2008-03-18. )
^ Wickremasinghe, Christopher (2009-03-30). "Introduction of daylight
saving time in Western Australia 2006". AIX Wiki. IBM. Retrieved
^ "TZDB library moved to GitHub on April 23, 2014". Retrieved 21
Oracle Database Globalization Support Guide 10g Release 1 (10.1):
Chapter 4, Section "Choosing a Time Zone File". Oracle Corporation.
June 2004. pp. 4–14. Part No. B10749-02. Archived from the
original on 2008-12-01. Retrieved 2007-10-30.
^ "Windows → Tzid". Unicode Consortium. 2007-11-12. Retrieved
^ Olson, Arthur David (1986-11-24). "seismo!elsie!tz ; new
versions of time zone stuff". tz (Mailing list).
^ "Astrolabe, Inc. v. Olson et al". 2011-10-06. Retrieved
^ a b "ASTROLABE, INC., Plaintiff, v. ARTHUR DAVID OLSON and PAUL
EGGERT, Defendants" (PDF). 2011-09-30. Retrieved 2011-10-07.
^ Olson, Arthur David (2011-10-06). "Civil suit; ftp shutdown; mailing
list shutdown". Retrieved 2011-10-06.
Time zone database shut down". The Daily Parker. 2011-10-06.
^ "Time-zone database – Astrolabe's opinion". Stephen Colebourne's
blog. 13 October 2011. Retrieved 26 October 2011.
^ "EFF Wins Protection for Time Zone Database". Electronic Frontier
Foundation. 22 February 2012. Retrieved 22 February 2012.
^ "Time Zone Database". IANA.
Legal time (PDF), ITU, 2015 .
The tz database home page, UCLA (deprecated, see Official IANA
The tz mailing list archive, Gmane, archived from the original on
tz (archive) (mailing list) [permanent dead link].
tz mailing list at ICANN
“A literary appreciation of the Olson/Zoneinfo/tz database” by Jon
Official IANA sources
rsync, at rsync://rsync.iana.org/tz
Linux Administration and Privileged Commands
Manual (gives the syntax of source files for the tz database)
File Formats Manual (gives the format of
compiled tz database files)
Coordinated Universal Time
Coordinated Universal Time (UTC)
UTC offset for standard time and
Daylight saving time
Daylight saving time (DST)
Italics: historical or unofficial
180° to < 90°W
90°W to < 0°
0° to < 90°E
90°E to < 180°
(180° to < 90°W)
Time zone data sources
Lists of time zones
Time zones by country
Time zones by UTC offset
tz database time zones
Military time zones
Time zone abbreviations