Tz database

Last updated

The tz database partitions the world into regions where local clocks have, since 1970, all been the same. This map, taken from the 2017a edition of the database, is of all the regions outside Antarctica. 2017a.png
The tz database partitions the world into regions where local clocks have, since 1970, all been the same. This map, taken from the 2017a edition of the database, is of all the regions outside Antarctica.

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. [2] Paul Eggert is its current editor and maintainer, [3] with the organizational backing of ICANN. [4] 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. [5]

Contents

Its uniform naming convention for time zones, such as America/New_York and Europe/Paris, was designed by Paul Eggert. [6] The database attempts to record historical time zones and all civil changes since 1970, the Unix time epoch. [7] It also includes transitions such as daylight saving time, and also records leap seconds. [8]

The database, as well as some reference source code, is in the public domain. [9] New editions of the database and code are published as changes warrant, usually several times per year. [10]

Data structure

File formats

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 APIs 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. [11] 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 line ends.

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 Area and Location names have a maximum length of 14 characters. [12] [13]

Area

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

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 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. [14]

Usually the most populous city in a region is chosen to represent the entire time zone, although another city may be selected if it are more widely known, and another location, including a location other than a city, may be used if it results in a less ambiguous name. [15] In the event that the name of the location used to represent the time zone changes, the convention is to create an alias [16] 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 "America/North_Dakota/...".

The location selected is representative for the entire area.

Examples

America/Costa_Rica name of country used because the name of the largest city (and capital city) San José is ambiguous
America/New_York Space replaced with underscore
Asia/Kolkata 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 true [17]
Asia/Sakhalin name of island used, because largest city, Yuzhno-Sakhalinsk, has more than 14 characters
America/Bahia_Banderas name of largest city altered, "de" removed from Bahia de Banderas, because correct name has more than 14 characters
Antarctica/DumontDUrville 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 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    LETTER/S Rule    US      1918    1919    -       Mar     lastSun 2:00    1:00    D Rule    US      1918    1919    -       Oct     lastSun 2:00    0       S 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       S Rule    US      1967    2006    -       Oct     lastSun 2:00    0       S Rule    US      1967    1973    -       Apr     lastSun 2:00    1:00    D Rule    US      1974    only    -       Jan     6       2:00    1:00    D Rule    US      1975    only    -       Feb     23      2:00    1:00    D Rule    US      1976    1986    -       Apr     lastSun 2:00    1:00    D Rule    US      1987    2006    -       Apr     Sun>=1  2:00    1:00    D Rule    US      2007    max     -       Mar     Sun>=8  2:00    1:00    D Rule    US      2007    max     -       Nov     Sun>=1  2:00    0       S .... # Rule  NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER Rule    NYC     1920    only    -       Mar     lastSun 2:00    1:00    D Rule    NYC     1920    only    -       Oct     lastSun 2:00    0       S Rule    NYC     1921    1966    -       Apr     lastSun 2:00    1:00    D Rule    NYC     1921    1954    -       Sep     lastSun 2:00    0       S Rule    NYC     1955    1966    -       Oct     lastSun 2:00    0       S # Zone  NAME            GMTOFF  RULES   FORMAT  [UNTIL] Zone America/New_York   -4:56:02 -      LMT     1883 November 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).

Zone.tab

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 #     in 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 country that # (1) makes some geographical sense, and # (2) puts the most populous zones first, where that does not contradict (1).

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 since 1970.

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. [18]

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. [19]

Coverage

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.

Maintenance

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.

Unix-like systems

The standard path for the timezone database is /usr/share/zoneinfo/ in Linux distributions, macOS, and some other Unix-like systems.

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 [1] 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

The Unicode 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. [20] [21]

Use in software systems

The tz database is used for time zone processing and conversions in many computer software systems, including:

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, although such a mapping cannot be perfect because the number of time zones in Windows systems is significantly lower that those in the IANA TZ database. [31]

History

The project's origins go back to 1986 or earlier. [32]

2011 lawsuit

On 30 September 2011, a lawsuit, Astrolabe, Inc. v. Olson et al., was filed concerning copyright in the database. [33] [34] As a result, on 6 October 2011, the database's mailing list and FTP site were shut down. [35] The case revolved around the database maintainers' use of The American Atlas, by Thomas G. Shanks, and The International Atlas, by 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. [34] [36] [37]

This lawsuit was resolved on 22 February 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. [38]

Move to ICANN

ICANN took responsibility for the maintenance of the database on 14 October 2011. [4] The full database and a description of current and future plans for its maintenance are available online from IANA. [39]

See also

Related Research Articles

A time zone is a designated area of the globe that observes a uniform standard time for legal, commercial and social purposes. Time zones tend to follow the boundaries of countries and their subdivisions instead of strictly following longitude because it is convenient for areas in close commercial or other communication to keep the same time. France, including its overseas territories, has the most time zones of any country, with a total of 12.

Daylight saving time Time adjustment practice

Daylight saving time (DST), also daylight savings time or daylight time and summer time, is the practice of advancing clocks during warmer months so that darkness falls later each day according to the clock. The typical implementation of DST is to set clocks forward by one hour in the spring and set clocks back by one hour in autumn to return to standard time. As a result, there is one 23-hour day in late winter or early spring and one 25-hour day in the autumn.

Japan Standard Time

Japan Standard Time, abbreviated as JST, is the standard time zone in Japan, 9 hours ahead of UTC. There is no daylight saving time, though its introduction has been debated several times. During World War II, it was often called Tokyo Standard Time.

ISO 3166-1 alpha-2 RFCtwo-letter country codes defined in ISO 3166-1

ISO 3166-1 alpha-2 codes are two-letter country codes defined in ISO 3166-1, part of the ISO 3166 standard published by the International Organization for Standardization (ISO), to represent countries, dependent territories, and special areas of geographical interest. They are the most widely used of the country codes published by ISO, and are used most prominently for the Internet's country code top-level domains. They are also used as country identifiers extending the postal code when appropriate within the international postal system for paper mail, and has replaced the previous one consisting one-letter codes. They were first included as part of the ISO 3166 standard in its first edition in 1974.

TZ or tz may refer to:

A country code top-level domain (ccTLD) is an Internet top-level domain generally used or reserved for a country, sovereign state, or dependent territory identified with a country code. All ASCII ccTLD identifiers are two letters long, and all two-letter top-level domains are ccTLDs.

The Common Locale Data Repository Project, often abbreviated as CLDR, is a project of the Unicode Consortium to provide locale data in the XML format for use in computer applications. CLDR contains locale-specific information that an operating system will typically provide to applications. CLDR is written in LDML. The information is currently used in International Components for Unicode, Apple's macOS, LibreOffice, MediaWiki, and IBM's AIX, among other applications and operating systems.

Further-eastern European Time

Further-eastern European Time (FET) is a time zone defined as three hours ahead of UTC (UTC+03:00) without daylight saving time, the zone immediately higher than the Eastern European Time. The time zone used in Belarus between 2011-2014.

Time in the United Kingdom

The United Kingdom uses Greenwich Mean Time or Western European Time (UTC) and British Summer Time or Western European Summer Time (UTC+01:00).

Argentina is located at a longitude that would naturally put it in the UTC−04:00 or UTC−05:00 time zone; however, it actually uses the UTC−03:00 time zone. Argentina determines whether to observe daylight saving time on a year-by-year basis, and individual provinces may opt out of the federal decision. At present, Argentina does not observe daylight saving time.

Iran Standard Time

Iran Standard Time (IRST) or Iran Time (IT) is the time zone used in Iran. Iran uses a UTC offset UTC+03:30. IRST is defined by the 52.5 degrees east meridian, the same meridian which defines the Iranian calendar and is the official meridian of Iran.

Time in Germany Germany uses CET/CEST

The time zone in Germany is Central European Time and Central European Summer Time. Daylight saving time is observed from the last Sunday in March to the last Sunday in October. The doubled hour during the switch back to standard time is named 2A and 2B.

In Norway the standard time is the Central European Time (UTC+01:00). Norway observes Summer Time. The transition dates are the same as for other European countries.

An IETF BCP 47 language tag is a code to identify human languages. For example, the tag en stands for English; es-419 for Latin American Spanish; rm-sursilv for Sursilvan; gsw-u-sd-chzh for Zürich German; nan-Hant-TW for Min Nan Chinese as spoken in Taiwan using traditional Han characters. To distinguish language variants for countries, regions, writing systems etc., IETF language tags combine subtags from other standards such as ISO 639, ISO 15924, ISO 3166-1, and UN M.49. The tag structure has been standardized by the Internet Engineering Task Force (IETF) in Best Current Practice (BCP) 47; the subtags are maintained by the IANA Language Subtag Registry. IETF language tags are used by computing standards such as HTTP, HTML, XML, and PNG.

The time zone in Ethiopia is East Africa Time (EAT) (UTC+03:00). The IANA time zone database identifier is Africa/Addis Ababa.

The regional indicator symbols are a set of 26 alphabetic Unicode characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2 two-letter country codes in a way that allows optional special treatment.

Switzerland uses a single time zone, denoted as Central European Time. Switzerland also observes summer time, shifting to Central European Summer Time.

Time in the Danish Realm

Denmark, including the dependencies Faroe Islands and Greenland, uses six time zones.

Time in Gibraltar

Gibraltar uses Standard Time or Central European Time (UTC+01:00) and daylight saving time or Central European Summer Time (UTC+02:00).

References

  1. 1 2 Muller, Eric (8 October 2012). "A shapefile of the TZ timezones of the world".
  2. Eggert, Paul; Olson, Arthur David (29 November 2007). "Sources for time zone and daylight saving time data" . Retrieved 3 December 2007.
  3. Eggert, Paul (17 January 2005). "Re: FW: IANA time zone registration – proposal". tz (Mailing list).
  4. 1 2 "ICANN to Manage Time Zone Database" (news alert). ICANN. 15 October 2011. Retrieved 30 December 2011.
  5. Olson, Arthur David (16 December 1986). "Resolved timezone issue? Other issues. New ctime manual page". tz (Mailing list).
  6. Eggert, Paul (20 October 1993). "proposal for time zone names". tz (Mailing list).
  7. Olson, Arthur David (18 March 1987). "Re: List of issues". tz (Mailing list).
  8. Devine, Bob (2 June 1988). "leap seconds; [0-60] is ok". tz (Mailing list).
  9. Eggert, Paul (11 November 1995). "questions and comments on http://tycho.usno.navy.mil/tzones.html". tz (Mailing list).
  10. "zoneinfo tzcode and tzdata archives (FTP)" . Retrieved 30 October 2007.
  11. Theory (text file), contained in the "tzcode" distribution. Version tzcode2007h.tar.gz 1 October 2007 referenced.
  12. Olson, Arthur David (1 May 2010). "proposed time zone package changes (Bahia de Banderas; version naming)". tz (Mailing list).
  13. "Timezone identifiers". Theory and pragmatics of the tz code and data. Use only valid POSIX file name components (i.e., the parts of names other than '/'). Do not use the file name components '.' and '..'. Within a file name component, use only ASCII letters, '.', '-' and '_'. Do not use digits, as that might create an ambiguity with POSIX TZ strings. A file name component must not exceed 14 characters or start with '-'. E.g., prefer Asia/Brunei to Asia/Bandar_Seri_Begawan. Exceptions: see the discussion of legacy names below.
  14. "Timezone identifiers". Theory and pragmatics of the tz code and data. Keep locations compact. Use cities or small islands, not countries or regions, so that any future changes do not split individual locations into different timezones. E.g., prefer Europe/Paris to Europe/France, since France has had multiple time zones.
  15. "Timezone identifiers". Theory and pragmatics of the tz code and data. Here are the general guidelines used for choosing timezone names, in decreasing order of importance: ... If a name is ambiguous, use a less ambiguous alternative; e.g., many cities are named San José and Georgetown, so prefer America/Costa_Rica to America/San_Jose and America/Guyana to America/Georgetown. ... Use the most populous among locations in a region, e.g., prefer Asia/Shanghai to Asia/Beijing. Among locations with similar populations, pick the best-known location, e.g., prefer Europe/Rome to Europe/Milan.
  16. "Timezone identifiers". Theory and pragmatics of the tz code and data. If a name is changed, put its old spelling in the 'backward' file. This means old spellings will continue to work. Ordinarily a name change should occur only in the rare case when a location's consensus English-language spelling changes; for example, in 2008 Asia/Calcutta was renamed to Asia/Kolkata due to long-time widespread use of the new city name instead of the old.
  17. Paul Eggert (21 December 2012). "Re: zoneinfo : ist : error". tz (Mailing list).
  18. Olson, Arthur David (6 January 2010). "RE: little nuance in brazil 1963". tz (Mailing list).
  19. DST and midsummer DST in Germany until 1979, Physikalisch-Technische Bundesanstalt. (2010)
  20. "Unicode Locale Extension ('u') for BCP 47". CLDR - Unicode Common Locale Data Repository.
  21. "Unicode Locale Data Markup Language (LDML), Part 4: Dates". section 5, Time Zone Names.
  22. "Olson time zone support and setup". AIX 7.1 information. IBM. Retrieved 12 March 2011.
  23. "Managing the Time Zone Variable". IBM. 2 February 2007. Retrieved 14 September 2018.
  24. 1 2 "AIX O/S updated to support 2007 Daylight Saving Time change". IBM. 18 October 2007. Retrieved 12 March 2011.
  25. "2007 daylight savings [sic] time changes for Unix". Academic Computing and Communications Center, University of Illinois at Chicago. 25 February 2007. Archived from the original on 1 August 2012. Retrieved 18 March 2008.)
  26. Wickremasinghe, Christopher (30 March 2009). "Introduction of daylight saving time in Western Australia 2006". AIX Wiki. IBM. Retrieved 11 March 2011.
  27. "ZoneId".
  28. "ECMAScript 2015 Internationalization API Specification". ecma-international.org (2nd ed.). June 2015. Retrieved 14 January 2020. The ECMAScript 2015 Internationalization API Specification identifies time zones using the Zone and Link names of the IANA Time Zone Database. Their canonical form is the corresponding Zone name in the casing used in the IANA Time Zone Database. ... It is recommended that implementations use the time zone information of the IANA Time Zone Database.
  29. "TZDB library moved to GitHub on April 23, 2014" . Retrieved 21 October 2015.
  30. 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 1 December 2008. Retrieved 30 October 2007.
  31. "Windows → Tzid". Unicode Consortium. 12 November 2007. Retrieved 17 February 2008.
  32. Olson, Arthur David (24 November 1986). "seismo!elsie!tz ; new versions of time zone stuff". tz (Mailing list).
  33. "Astrolabe, Inc. v. Olson et al". 6 October 2011. Retrieved 6 October 2011.
  34. 1 2 "ASTROLABE, INC., Plaintiff, v. ARTHUR DAVID OLSON and PAUL EGGERT, Defendants" (PDF). 30 September 2011. Retrieved 7 October 2011.
  35. Olson, Arthur David (6 October 2011). "Civil suit; ftp shutdown; mailing list shutdown". tz (Mailing list). Retrieved 27 October 2018.
  36. "Time zone database shut down". The Daily Parker. 6 October 2011. Retrieved 6 October 2011.
  37. "Time-zone database – Astrolabe's opinion". Stephen Colebourne's blog. 13 October 2011. Retrieved 26 October 2011.
  38. "EFF Wins Protection for Time Zone Database". Electronic Frontier Foundation. 22 February 2012. Retrieved 22 February 2012.
  39. "Time Zone Database". IANA.

General

Official IANA sources

Man pages