### Configure Build and Installation Options Source: https://www.iana.org/time-zones/releases/2017c Commands for customizing the installation of time zone data files and build behavior. ```bash make TZDATA_TEXT= ``` ```bash make TZDATA_TEXT=tzdata.zi ``` ```bash make BACKWARD= ``` ```bash make check ``` -------------------------------- ### Zone record with specific daylight saving time amount Source: https://www.iana.org/time-zones/tz-how-to Example showing the use of a specific time amount (1:00) in the RULES column to indicate daylight saving time. ```text #Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Honolulu ... 1933 Apr 30 2:00 -10:30 1:00 HDT 1933 May 21 12:00 ... ``` -------------------------------- ### Define a Zone Record with Slash-Separated Abbreviations Source: https://www.iana.org/time-zones/tz-how-to Example of using a slash in the FORMAT column to specify standard and daylight saving time abbreviations. ```text #Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/London ... 1996 0:00 EU GMT/BST ``` -------------------------------- ### US Rule Definitions in tz Database Source: https://www.iana.org/time-zones/tz-how-to Example of Rule entries defining daylight saving time transitions for the US. ```text #Rule NAME FROM TO - 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 ``` -------------------------------- ### Represent far-future timestamps with POSIX-like TZ strings Source: https://www.iana.org/time-zones/releases/2013e Example of a TZ string using an extended hour range for far-future timestamps in Fiji. ```text TZ='FJT-12FJST,M10.3.1/146,M1.3.4/75' ``` -------------------------------- ### Configure DATAFORM in Makefile Source: https://www.iana.org/time-zones/releases/2018d The DATAFORM macro allows installers to choose between vanguard, main, and rearguard source data formats to manage downstream compatibility. ```makefile DATAFORM=vanguard DATAFORM=main DATAFORM=rearguard ``` -------------------------------- ### Represent all-year daylight saving time with POSIX-like TZ strings Source: https://www.iana.org/time-zones/releases/2013e Example of a TZ string configured for Western Argentina Summer Time to remain in effect all year. ```text TZ='WART4WARST,J1/0,J365/25' ``` -------------------------------- ### zic compiler command usage Source: https://www.iana.org/time-zones/releases/2025b Example of a zic command that previously caused incorrect symlink creation and read buffer underflow. ```bash zic -l TIMEZONE -d . -l /some/other/file/system ``` -------------------------------- ### Complete Hawaii Time Zone History Record Source: https://www.iana.org/time-zones/tz-how-to A comprehensive example showing Rule definitions and the corresponding Zone record for Pacific/Honolulu. ```text # Relevant Excerpts from the US Rules #Rule NAME FROM TO - IN ON AT SAVE LETTER/S 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 lastSun 2:00 0 S # The Zone Record #Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00 -10:30 - HST 1933 Apr 30 2:00 -10:30 1:00 HDT 1933 May 21 2:00 -10:30 US H%sT 1947 Jun 8 2:00 -10:00 - HST ``` -------------------------------- ### Zone record structure for America/Chicago Source: https://www.iana.org/time-zones/tz-how-to Example of a Zone record showing multiple continuation lines defining time offsets and rules over time. ```text #Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24 -6:00 US C%sT 1920 -6:00 Chicago C%sT 1936 Mar 1 2:00 -5:00 - EST 1936 Nov 15 2:00 -6:00 Chicago C%sT 1942 -6:00 US C%sT 1946 -6:00 Chicago C%sT 1967 -6:00 US C%sT ``` -------------------------------- ### Define a Geographical TZ String Source: https://www.iana.org/time-zones/theory Example of using a geographical identifier for time zone configuration, which is more accurate and easier to manage than proleptic strings. ```text TZ='Pacific/Auckland' ``` -------------------------------- ### Define Chicago Daylight Saving Time Rules Source: https://www.iana.org/time-zones/tz-how-to Example of Rule lines from the northamerica data file defining daylight saving time transitions for Chicago. ```text #Rule NAME FROM TO - IN ON AT SAVE LETTER Rule Chicago 1920 only - Jun 13 2:00 1:00 D Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S ``` -------------------------------- ### Define a Proleptic TZ String for New Zealand Source: https://www.iana.org/time-zones/theory Example of a complex proleptic TZ string specifying standard time and daylight saving rules for New Zealand after 2007. ```text TZ='NZST-12NZDT,M9.5.0,M4.1.0/3' ``` -------------------------------- ### Build and Compile Options Source: https://www.iana.org/time-zones/releases/2026a Configuration commands for building the database and compiler flags for runtime behavior. ```bash make REDO=posix_right ``` ```bash make REDO=right_only ``` ```bash -DTZ_RUNTIME_LEAPS=0 ``` ```bash zic -v ``` ```bash zic -L ``` ```bash zic -p ``` ```bash -DSTD_INSPIRED ``` -------------------------------- ### Release Notes for 2012i Source: https://www.iana.org/time-zones/releases/2012i Summary of changes including configuration updates for Cuba, build system enhancements, and new Makefile targets. ```text Cuba switches from DST tomorrow at 01:00. (Thanks to Steffen Thorsen.) Linker flags can now be specified via LDFLAGS. AWK now defaults to 'awk', not 'nawk'. The shell in tzselect now defaults to /bin/bash, but this can be overridden by specifying KSHELL. The main web page now mentions the unofficial GitHub repository. (Thanks to Mike Frysinger.) Tarball signatures can now be built by running 'make signatures'. There are also new makefile rules 'tarballs', 'check_public', and separate makefile rules for each tarball and signature file. A few makefile rules are now more portable to strict POSIX. The main web page now lists the canonical IANA URL. ``` -------------------------------- ### Configure zdump with system library Source: https://www.iana.org/time-zones/releases/2014g Use this make command to build zdump using the system library instead of the tz library. ```bash make CFLAGS=-DUSE_LTZ=0 TZDOBJS=zdump.o CHECK_TIME_T_ALTERNATIVES= ``` -------------------------------- ### Release 2010c Change Notes Source: https://www.iana.org/time-zones/releases/2010c Technical notes regarding structural changes to initialization logic. ```text changes including KRE's suggestion for earlier initialization of "goahead" and "goback" structure elements ``` -------------------------------- ### Release Notes Summary Source: https://www.iana.org/time-zones/releases/2010m Summary of changes included in the 2010m release. ```text Hong Kong, Vostok, and zic.c changes ``` -------------------------------- ### Release Notes Content Source: https://www.iana.org/time-zones/releases/96k Contains the summary of changes for the 96k release. ```text the latest round of changes from Paul Eggert the recent Year 2000 material ``` -------------------------------- ### Makefile and TZif format updates Source: https://www.iana.org/time-zones/releases/code1997h-data1997j Contains release notes regarding TZif file headers and the addition of a zones target to the Makefile. ```text minor changes to put "TZif" at the start of each timezone information file a rule has also been added to the Makefile so you can make zones to just recompile the zone information files (rather than doing a full "make install" with its other effects). ``` -------------------------------- ### Run time_t alternative tests Source: https://www.iana.org/time-zones/releases/2013d Execute the make command to test time_t types other than the system default. ```bash make check_time_t_alternatives ``` -------------------------------- ### Build command for leap seconds and backzone Source: https://www.iana.org/time-zones/releases/2016a Use this command to combine leap seconds with the backzone file during the build process. ```bash make PACKRATDATA=backzone REDO=posix_right zones ``` -------------------------------- ### Release Notes Configuration Changes Source: https://www.iana.org/time-zones/releases/2000e Details regarding data modifications and constant definitions for the 2000e release. ```text data changes by Paul Eggert a change to the default value of the defined constant HAVE_STRERROR the addition of a Dave Barry quote on DST to the tz-arts file ``` -------------------------------- ### Release Notes Snippet Source: https://www.iana.org/time-zones/releases/2005r Contains release notes regarding Canadian time zone changes and zdump.c logic updates. ```text Canadian changes by Paul Eggert They also add "
" directives to time zone data files and reflect
  changes to warning message logic in "zdump.c" (but with calls to
  "gettext" kept unbundled at the suggestion of Ken Pizzini).
```

--------------------------------

### Release notes for code96l

Source: https://www.iana.org/time-zones/releases/code96l

Notes indicating that the previous release was missing components.

```text
  tzcode96k was missing a couple of pieces.
```

--------------------------------

### Release Notes Summary

Source: https://www.iana.org/time-zones/releases/2009r

Displays the specific changes included in the 2009r release.

```text
  "antarctica" and "tz-link.htm" changes
```

--------------------------------

### Clone tz database repository

Source: https://www.iana.org/time-zones/tz-link

Retrieves the development repository of code and data from GitHub.

```bash
git clone https://github.com/eggert/tz
```

--------------------------------

### Release notes for 2004a

Source: https://www.iana.org/time-zones/releases/2004a

Summary of changes implemented by Paul Eggert in the 2004a release.

```text
  changes by Paul Eggert

  Handle DST transitions that occur at the end of a month in some
  years but at the start of the following month in other years.

  Add a copy of the correspondence that's the basis for claims about
  DST in the Navajo Nation.
```

--------------------------------

### Release notes excerpt

Source: https://www.iana.org/time-zones/releases/1999e

Contains information regarding changes to DST-specifying timezone names and updates to documentation files.

```text
  changes circulated by Paul Eggert, although the change to handling
  of DST-specifying timezone names has been commented out for now
  (search for "XXX" in "localtime.c" for details).  These files also
  do not make any changes to the start of DST in Brazil.

  In addition to Paul's changes, there are updates to "Arts.htm" and
  cleanups of URLs.
```

--------------------------------

### Release Notes for 2011e

Source: https://www.iana.org/time-zones/releases/2011e

Summary of changes included in the 2011e release.

```text
  Morocco, Chile, and tz-link changes
```

--------------------------------

### Release Notes Content

Source: https://www.iana.org/time-zones/releases/code95d

Displays the specific release notes content regarding the addition of the Music file.

```text
  the addition of a "Music" file, which documents four recorded
  versions of the tune "Save That Time".
```

--------------------------------

### Release 2000f Change Log

Source: https://www.iana.org/time-zones/releases/2000f

Summary of changes implemented by Paul Eggert in the 2000f release.

```text
  changes by Paul Eggert

  Added information in "tz-art.htm" on a Seinfeld reference to DST.

  Error checking and messages in the "yearistype" script have been
  improved.
```

--------------------------------

### Execute zic Commands

Source: https://www.iana.org/time-zones/releases/2017c

Commands for reproducing binary time zone data files from text input.

```bash
zic tzdata.zi
```

```bash
zic -L leapseconds tzdata.zi
```

--------------------------------

### Parallelized Build Command

Source: https://www.iana.org/time-zones/releases/2018d

Use the -j flag with GNU Make to speed up the build process on multiprocessor hosts.

```bash
make -j to2050new.tzs
```

--------------------------------

### Release 95b Notes

Source: https://www.iana.org/time-zones/releases/95b

Summary of changes included in the 95b release.

```text
  Minor changes in both:

  The "code" file contains a workaround for the lack of "unistd.h" in
  Microsoft C++ version 7.

  The "data" file contains a fixed "Link" for America/Shiprock.
```

--------------------------------

### Fix missing optind.c reference

Source: https://www.iana.org/time-zones/releases/code94g

Corrects a missing file and its corresponding reference in the Makefile.

```text
  fix missing "optind.c" and a reference to it in the Makefile
```

--------------------------------

### Handle unsigned time_t systems

Source: https://www.iana.org/time-zones/releases/code2004i

Configuration or patch note addressing compatibility with systems using unsigned time_t types.

```text
  Deal with systems where time_t is unsigned.
```

--------------------------------

### Download tz database via single-tarball

Source: https://www.iana.org/time-zones/tz-link

Downloads and extracts the latest tz database release using the single-tarball format.

```bash
wget https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz
lzip -dc tzdb-latest.tar.lz | tar -xf -
```

--------------------------------

### Release Notes for 1997b

Source: https://www.iana.org/time-zones/releases/1997b

Summary of changes included in the 1997b release.

```text
  The data file incorporates the 1997 leap second.

  The code file incorporates Arthur David Olson's take on the
  zic/multiprocessor/directory-creation situation.
```

--------------------------------

### Download tz database via tarballs

Source: https://www.iana.org/time-zones/tz-link

Downloads and extracts the latest tzcode and tzdata tarballs on a GNU/Linux system.

```bash
mkdir tzdb
cd tzdb
wget https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz
wget https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
gzip -dc tzcode-latest.tar.gz | tar -xf -
gzip -dc tzdata-latest.tar.gz | tar -xf -
```

--------------------------------

### Release 2000h Change Log

Source: https://www.iana.org/time-zones/releases/2000h

Summary of changes implemented by Paul Eggert in the 2000h release.

```text
  changes by Paul Eggert

  one typo fix in the "art" file

  With providence, this is the last update of the millennium.
```

--------------------------------

### Fix mkdirs compilation bug

Source: https://www.iana.org/time-zones/releases/code94c

Addresses an issue where mkdirs failed unless compiled with -fwritable-strings.

```text
  Fix bug where mkdirs was broken unless you compile with
  -fwritable-strings (which is generally losing to do).
```

--------------------------------

### Release Notes for 2012g

Source: https://www.iana.org/time-zones/releases/2012g

Summary of changes and technical updates included in the 2012g release.

```text
  Samoa fall 2012 and later.  (Thanks to Nicholas Pereira and Robert Elz.)

  Palestine fall 2012.  (Thanks to Steffen Thorsen.)

  Assume C89.

  To attack the version-number problem, this release ships the file
  'Makefile' (which contains the release number) in both the tzcode and
  the tzdata tarballs.  The two Makefiles are identical, and should be
  identical in any matching pair of tarballs, so it shouldn't matter
  which order you extract the tarballs.  Perhaps we can come up with a
  better version-number scheme at some point; this scheme does have the
  virtue of not adding more files.
```

--------------------------------

### Release Notes for 2005b

Source: https://www.iana.org/time-zones/releases/2005b

Summary of technical changes and documentation updates included in this release.

```text
  Get localtime and gmtime working on systems with exotic time_t types.

  Update the leap second commentary in the "leapseconds" file.
```

--------------------------------

### Release 2000d Change Log

Source: https://www.iana.org/time-zones/releases/2000d

Summary of modifications made to the codebase in release 2000d.

```text
  changes to the documentation and code of strftime for C99 conformance

  a bug fix for date.c

  These are based on (though modified from) changes by Paul Eggert.
```

--------------------------------

### Release Notes for 2004g

Source: https://www.iana.org/time-zones/releases/2004g

Summary of changes included in the 2004g release.

```text
  update to Cuba (taking effect this weekend)

  other changes by Paul Eggert

  correction of the spelling of Oslo

  changed versions of difftime.c and private.h
```

--------------------------------

### Release Notes for code96d-data96c

Source: https://www.iana.org/time-zones/releases/code96d-data96c

Summary of changes included in the code and data distributions for this release.

```text
  The "code" file simply updates Bob Kridle's electronic address.

  The "data" file updates rules for Mexico.
```

--------------------------------

### Release 2006d Change Log

Source: https://www.iana.org/time-zones/releases/2006d

Summary of changes implemented by Paul Eggert in the 2006d release.

```text
  changes by Paul Eggert

  added new items to tz-arts.htm that were found by Paul
```

--------------------------------

### Release Notes for code2006h

Source: https://www.iana.org/time-zones/releases/code2006h

Summary of changes and fixes included in the code2006h release.

```text
  adds public domain notices to four files

  includes a fix for transition times being off by a second

  adds a new recording to the "arts" file (information courtesy Colin Bowern)
```

--------------------------------

### POSIX Semantics Adjustment

Source: https://www.iana.org/time-zones/releases/94d

Configuration note regarding the avoidance of naming clashes with POSIX semantics for zones like GMT+4.

```text
  Avoid clashes with POSIX semantics for zones such as GMT+4.

  Some other very minor housekeeping is also present.
```

--------------------------------

### Release 1999b Change Log

Source: https://www.iana.org/time-zones/releases/1999b

Summary of code modifications and documentation updates included in the 1999b release.

```text
  changes by Paul Eggert

  code changes (suggested by Mani Varadarajan, mani at be.com) for
  correct handling of symbolic links when building using a relative directory

  code changes to generate correct messages for failed links

  updates to the URLs in Arts.htm
```

--------------------------------

### Release 2007j Change Log

Source: https://www.iana.org/time-zones/releases/2007j

Summary of technical changes and updates included in the 2007j release.

```text
  1. eliminate the "P" (parameter) macro;

  2. the "noncontroversial" changes circulated on the time zone
  mailing list (less the changes to "logwtmp.c");

  3. eliminate "too many transition" errors when "min" is used in time
  zone rules;

  4. changes by Paul Eggert (including updated information for Venezuela).
```

--------------------------------

### Release Notes for code1997e-data1997f

Source: https://www.iana.org/time-zones/releases/code1997e-data1997f

Summary of changes and improvements included in this specific release.

```text
  fixes to zic's error handling

  changes inspired by the item circulated on Slovenia

  The description of Web resources has been HTMLified for browsing
  convenience.

  A new piece of tz-related music has been added to the "Music" file.
```

--------------------------------

### Makefile public rule update

Source: https://www.iana.org/time-zones/releases/1999d

The public build rule now performs a test compilation of individual time zone data files to prevent errors.

```makefile
  changes by Paul Eggert

  The Makefile's "make public" rule has also been changed to do a test
  compile of each individual time zone data file (which should help
  avoid problems such as the one we had with Nicosia).
```

--------------------------------

### Release notes for data95c

Source: https://www.iana.org/time-zones/releases/data95c

Summary of file modifications included in the data95c release.

```text
  changes to "asia", "backward", "europe", and "southamerica"
  (read: northamericacentrics need not apply)
```

--------------------------------

### Release notes code changes

Source: https://www.iana.org/time-zones/releases/2005p

Lists specific file modifications included in the 2005p release.

```text
  "systemv", "tz-link.htm", and "zdump.c" changes
  (less the casts of arguments to the is* macros)
```

--------------------------------

### Release 2003b Change Log

Source: https://www.iana.org/time-zones/releases/2003b

Summary of functional changes and updates included in the 2003b release.

```text
  Add a "--version" option (and documentation) to the zic and zdump commands.

  changes to overflow/underflow checking in zic

  a localtime typo fix.

  Update the leapseconds and tz-art.htm files.
```

--------------------------------

### Release Notes for code94e

Source: https://www.iana.org/time-zones/releases/code94e

Contains the specific change log entry for this release.

```text
  change for the benefit of PCTS
```

--------------------------------

### Release 1998c Change Log

Source: https://www.iana.org/time-zones/releases/1998c

Summary of modifications made in the 1998c release.

```text
  changes by Paul Eggert (save the "French correction," on which I'll
  wait for the dust to settle)

  symlink changes

  changes and additions to Arts.htm
```

--------------------------------

### Release Notes for code96b

Source: https://www.iana.org/time-zones/releases/code96b

Summary of changes included in the code96b release.

```text
  fixes and enhancements from Paul Eggert, including code that
  emulates the behavior of recent versions of the SunOS "date"
  command.
```

--------------------------------

### Release Notes for code95g-data95k

Source: https://www.iana.org/time-zones/releases/code95g-data95k

Summary of changes including USNO data snapshots and minor cleanups.

```text
  (slightly reformatted) 8-bit-clean proposed patch

  minor patch: US/Eastern -> America/New_York

  snapshot of the USNO's latest data ("usno1995")

  some other minor cleanups
```

--------------------------------

### Fix zic.c inleap function

Source: https://www.iana.org/time-zones/releases/2003c

Corrects an issue with return values in the inleap function within zic.c.

```text
  Fix bad returns in zic.c's inleap function.
  Thanks to Bradley White for catching the problem!
```

--------------------------------

### Release 93g Notes

Source: https://www.iana.org/time-zones/releases/93g

Notes regarding historical data updates and bug fixes.

```text
  Paul Eggert has provided a good deal of historic information (based
  on Shanks), and there are some code changes to deal with the buglets
  that crawled out in dealing with the new information.
```

--------------------------------

### Release Notes and Technical Changes

Source: https://www.iana.org/time-zones/releases/2018f

Summary of time zone adjustments, historical data corrections, and technical updates to the zic compiler and localtime.c implementation.

```text
  Briefly:
  Volgograd moves from +03 to +04 on 2018-10-28.
  Fiji ends DST 2019-01-13, not 2019-01-20.
  Most of Chile changes DST dates, effective 2019-04-06.

  Changes to future timestamps

    Volgograd moves from +03 to +04 on 2018-10-28 at 02:00.
    (Thanks to Alexander Fetisov and Stepan Golosunov.)

    Fiji ends DST 2019-01-13 instead of the 2019-01-20 previously
    predicted.  (Thanks to Raymond Kumar.)  Adjust future predictions
    accordingly.

    Most of Chile will end DST on the first Saturday in April at 24:00 mainland
    time, and resume DST on the first Saturday in September at 24:00 mainland
    time.  The changes are effective from 2019-04-06, and do not affect the
    Magallanes region modeled by America/Punta_Arenas.  (Thanks to Juan Correa
    and Tim Parenti.)  Adjust future predictions accordingly.

  Changes to past timestamps

    The 2018-05-05 North Korea 30-minute time zone change took place
    at 23:30 the previous day, not at 00:00 that day.

    China's 1988 spring-forward transition was on April 17, not
    April 10.  Its DST transitions in 1986/91 were at 02:00, not 00:00.
    (Thanks to P Chan.)

    Fix several issues for Macau before 1992.  Macau's pre-1904 LMT
    was off by 10 s.  Macau switched to +08 in 1904 not 1912, and
    temporarily switched to +09/+10 during World War II.  Macau
    observed DST in 1942/79, not 1961/80, and there were several
    errors for transition times and dates.  (Thanks to P Chan.)

    The 1948-1951 fallback transitions in Japan were at 25:00 on
    September's second Saturday, not at 24:00.  (Thanks to Phake Nick.)
    zic turns this into 01:00 on the day after September's second
    Saturday, which is the best that POSIX or C platforms can do.

    Incorporate 1940-1949 Asia/Shanghai DST transitions from a 2014
    paper by Li Yu, replacing more-questionable data from Shanks.

  Changes to time zone abbreviations

    Use "PST" and "PDT" for Philippine time.  (Thanks to Paul Goyette.)

  Changes to code

    zic now always generates TZif files where time type 0 is used for
    timestamps before the first transition.  This simplifies the
    reading of TZif files and should not affect behavior of existing
    TZif readers because the same set of time types is used; only
    their internal indexes may have changed.  This affects only the
    legacy zones EST5EDT, CST6CDT, MST7MDT, PST8PDT, CET, MET, and
    EET, which previously used nonzero types for these timestamps.

    Because of the type 0 change, zic no longer outputs a dummy
    transition at time -2**59 (before the Big Bang), as clients should
    no longer need this to handle historical timestamps correctly.
    This reverts a change introduced in 2013d and shrinks most TZif
    files by a few bytes.

    zic now supports negative time-of-day in Rule and Leap lines, e.g.,
    "Rule X min max - Apr lastSun -6:00 1:00 -" means the transition
    occurs at 18:00 on the Saturday before the last Sunday in April.
    This behavior was documented in 2018a but the code did not
    entirely match the documentation.

    localtime.c no longer requires at least one time type in TZif
    files that lack transitions or have a POSIX-style TZ string.  This
    future-proofs the code against possible future extensions to the
    format that would allow TZif files with POSIX-style TZ strings and
    without transitions or time types.

    A read-access subscript error in localtime.c has been fixed.
    It could occur only in TZif files with timecnt == 0, something that
    does not happen in practice now but could happen in future versions.

    localtime.c no longer ignores TZif POSIX-style TZ strings that
    specify only standard time.  Instead, these TZ strings now
    override the default time type for timestamps after the last
    transition (or for all timestamps if there are no transitions),
    just as DST strings specifying DST have always done.

    leapseconds.awk now outputs "#updated" and "#expires" comments,
    and supports leap seconds at the ends of months other than June
    and December.  (Inspired by suggestions from Chris Woodbury.)

  Changes to documentation

    New restrictions: A Rule name must start with a character that
    is neither an ASCII digit nor "-" nor "+", and an unquoted name
    should not use characters in the set "!$%&'()*,/:;<=>?@[\]^`{|}~".
    The latter restriction makes room for future extensions (a
    possibility noted by Tom Lane).

    tzfile.5 now documents what time types apply before the first and
    after the last transition, if any.
```

--------------------------------

### Release 2003e Change Log

Source: https://www.iana.org/time-zones/releases/2003e

Summary of code and data changes implemented by Arthur David Olson and Paul Eggert.

```text
  changes by Arthur David Olson (primarily code changes)

  changes by Paul Eggert (primarily data changes)

  minor changes to "Makefile" and "northamerica" (in the latter case,
  optimization of the "Toronto" rules)
```

--------------------------------

### Build procedure change for rearguard tarballs

Source: https://www.iana.org/time-zones/releases/2020f

Corrects a bug in the 2020e release where rearguard.zi was generated incorrectly.

```text
  Change to build procedure

    'make rearguard_tarballs' no longer generates a bad rearguard.zi,
    fixing a 2020e bug.  (Problem reported by Deborah Goldsmith.)
```

--------------------------------

### Release Notes 2005c

Source: https://www.iana.org/time-zones/releases/2005c

Summary of technical improvements and data updates included in the 2005c release.

```text
  get better results when mktime runs on a system where time_t is double

  changes to the data files (most importantly to Paraguay)
```

--------------------------------

### Localtime modification by Guy Harris

Source: https://www.iana.org/time-zones/releases/code1998f

This snippet represents the specific addition made to the localtime.c source file.

```c
  addition to localtime.c by Guy Harris
```

--------------------------------

### Release 2021b Summary Notes

Source: https://www.iana.org/time-zones/releases/2021b

A summary of the technical changes and updates included in the 2021b release of the IANA Time Zone Database.

```text
  Briefly:
    Jordan now starts DST on February's last Thursday.
    Samoa no longer observes DST.
    Merge more location-based Zones whose timestamps agree since 1970.
    Move some backward-compatibility links to 'backward'.
    Rename Pacific/Enderbury to Pacific/Kanton.
    Correct many pre-1993 transitions in Malawi, Portugal, etc.
    zic now creates each output file or link atomically.
    zic -L no longer omits the POSIX TZ string in its output.
    zic fixes for truncation and leap second table expiration.
    zic now follows POSIX for TZ strings using all-year DST.
    Fix some localtime crashes and bugs in obscure cases.
    zdump -v now outputs more-useful boundary cases.
    tzfile.5 better matches a draft successor to RFC 8536.
    A new file SECURITY.

    This release is prompted by recent announcements by Jordan and Samoa.
    It incorporates many other changes that had accumulated since 2021a.
    However, it omits most proposed changes that merged all Zones
    agreeing since 1970, as concerns were raised about doing too many of
    these changes at once.  It does keeps some of these changes in the
    interest of making tzdb more equitable one step at a time; see
    "Merge more location-based Zones" below.

  Changes to future timestamps

    Jordan now starts DST on February's last Thursday.
    (Thanks to Steffen Thorsen.)

    Samoa no longer observes DST.  (Thanks to Geoffrey D. Bennett.)

  Changes to zone name

    Rename Pacific/Enderbury to Pacific/Kanton.  When we added
    Enderbury in 1993, we did not know that it is uninhabited and that
    Kanton (population two dozen) is the only inhabited location in
    that timezone.  The old name is now a backward-compatibility link.

  Changes to past timestamps

    Correct many pre-1993 transitions, fixing entries originally
    derived from Shanks, Whitman, and Mundell.  The fixes include:
      - Barbados: standard time was introduced in 1911, not 1932; and
	DST was observed in 1942-1944
      - Cook Islands: In 1899 they switched from east to west of GMT,
	celebrating Christmas for two days.  They (and Niue) switched
	to standard time in 1952, not 1901.
      - Guyana: corrected LMT for Georgetown; the introduction of
	standard time in 1911, not 1915; and corrections to 1975 and
	1992 transitions
      - Kanton: uninhabited before 1937-08-31
      - Niue: only observed -11:20 from 1952 through 1964, then went to
        -11 instead of -11:30
      - Portugal: DST was observed in 1950
      - Tonga: corrected LMT; the introduction of standard time in 1945,
        not 1901; and corrections to the transition from +12:20 to +13
        in 1961, not 1941
    Additional fixes to entries in the 'backzone' file include:
      - Enderbury: inhabited only 1860/1885 and 1938-03-06/1942-02-09
      - The Gambia: 1933 and 1942 transitions
      - Malawi: several 1911 through 1925 transitions
      - Sierra Leone: several 1913 through 1941 transitions, and DST
	was NOT observed in 1957 through 1962
    (Thanks to P Chan, Michael Deckers, Alexander Krivenyshev and
    Alois Treindl.)

    Merge more location-based Zones whose timestamps agree since 1970,
    as pre-1970 timestamps are out of scope.  This is part of a
    process that has been ongoing since 2013.  This does not affect
    post-1970 timestamps, and timezone historians who build with 'make
    PACKRATDATA=backzone' should see no changes to pre-1970 timestamps.
    When merging, keep the most-populous location's data, and move
    data for other locations to 'backzone' with a backward
    link in 'backward'.  For example, move America/Creston data to
    'backzone' with a link in 'backward' from America/Phoenix because
    the two timezones' timestamps agree since 1970; this change
    affects some pre-1968 timestamps in America/Creston because
    Creston and Phoenix disagreed before 1968.  The affected Zones
    are Africa/Accra, America/Atikokan, America/Blanc-Sablon,
    America/Creston, America/Curacao, America/Nassau,
    America/Port_of_Spain, Antarctica/DumontDUrville, and
    Antarctica/Syowa.

  Changes to maintenance procedure

    The new file SECURITY covers how to report security-related bugs.

    Several backward-compatibility links have been moved to the
    'backward' file.  These links, which range from Africa/Addis_Ababa
    to Pacific/Saipan, are only for compatibility with now-obsolete
    guidelines suggesting an entry for every ISO 3166 code.
    The intercontinental convenience links Asia/Istanbul and
    Europe/Nicosia have also been moved to 'backward'.

  Changes to code
```

--------------------------------

### Release 2018g Notes

Source: https://www.iana.org/time-zones/releases/2018g

Summary of changes including Morocco's time zone switch, zic bug fixes, and historical abbreviation updates.

```text
  Briefly:
    Morocco switches to permanent +01 on 2018-10-28.

  Changes to future timestamps

    Morocco switches from +00/+01 to permanent +01 effective 2018-10-28,
    so its clocks will not fall back as previously scheduled.
    (Thanks to Mohamed Essedik Najd and Brian Inglis.)

  Changes to code

    When generating TZif files with leap seconds, zic no longer uses a
    format that trips up older 32-bit clients, fixing a bug introduced
    in 2018f.  (Reported by Daniel Fischer.)  Also, the zic workaround
    for QTBUG-53071 now also works for TZif files with leap seconds.

    The translator to rearguard format now rewrites the line
    "Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S" to
    "Rule Japan 1948 1951 - Sep Sun>=9  1:00 0 S".
    This caters to zic before 2007 and to Oracle TZUpdater 2.2.0
    and earlier.  (Reported by Christos Zoulas.)

  Changes to past time zone abbreviations

    Change HDT to HWT/HPT for WWII-era abbreviations in Hawaii.
    This reverts to 2011h, as the abbreviation change in 2011i was
    likely inadvertent.

  Changes to documentation

    tzfile.5 has new sections on interoperability issues.
```

--------------------------------

### Release Notes for code1997g-data1997h

Source: https://www.iana.org/time-zones/releases/code1997g-data1997h

Summary of changes including corrections for Uruguay and updates to mktime logic.

```text
  corrections for Uruguay (and other locations)

  Arthur David Olson's simple-minded fix allowing mktime to both
  correctly handle leap seconds and correctly handle tm_sec values
  upon which arithmetic has been performed.
```

--------------------------------

### Apply strftime %V patch

Source: https://www.iana.org/time-zones/releases/code96i

Suggested patch for correcting week number calculations in strftime.

```text
  Paul's suggested patch for strftime %V week numbers
```

--------------------------------

### Handle wide-ranging tm_year values

Source: https://www.iana.org/time-zones/releases/code2004f

Update to improve compatibility with diverse tm_year inputs.

```text
  Cope with wide-ranging tm_year values.
```

--------------------------------

### Update Egypt DST rules

Source: https://www.iana.org/time-zones/releases/2011g

Configuration update reflecting the abandonment of Daylight Saving Time in Egypt.

```text
  update the rules for Egypt to reflect its abandonment of DST this year
```

--------------------------------

### Update strftime.c for ISO 8601

Source: https://www.iana.org/time-zones/releases/96a

This snippet outlines the changes made to strftime.c to support ISO 8601 week numbers and year formats.

```text
  Israel updates

  fixes to strftime.c for correct ISO 8601 week number generation,
  plus support for two new formats ('G' and 'g') to give ISO 8601 year
  numbers (which are not necessarily the same as calendar year numbers)
```

--------------------------------

### Fix symlink creation in zic.c

Source: https://www.iana.org/time-zones/releases/2002c

A code change to prevent zic.c from creating symlinks to files that do not exist.

```c
  changes by Paul Eggert

  Change zic.c to avoid creating symlinks to files that don't exist.
```

--------------------------------

### Zone record for America/Juneau with Date Line shift

Source: https://www.iana.org/time-zones/tz-how-to

Demonstrates a Zone record where the first two lines show solar times differing by 24 hours due to a movement of the International Date Line.

```text
#Zone NAME          STDOFF   RULES FORMAT [UNTIL]
Zone America/Juneau 15:02:19 -     LMT    1867 Oct 18
                    -8:57:41 -     LMT    ...
```

--------------------------------

### Release changes for zic.c and usno1997

Source: https://www.iana.org/time-zones/releases/code1997c-data1997d

Summary of technical changes applied to the zic utility and the addition of a new data file.

```text
  changes to "zic.c" to correct performance of the "-s" option

  a new file "usno1997"
```

--------------------------------

### Release 2018h Notes

Source: https://www.iana.org/time-zones/releases/2018h

Summary of time zone changes, including regional shifts, DST adjustments, and historical data corrections.

```text
  Briefly:
    Qyzylorda, Kazakhstan moved from +06 to +05 on 2018-12-21.
    New zone Asia/Qostanay because Qostanay, Kazakhstan didn't move.
    Metlakatla, Alaska observes PST this winter only.
    Guess Morocco will continue to adjust clocks around Ramadan.
    Add predictions for Iran from 2038 through 2090.

  Changes to future timestamps

    Guess that Morocco will continue to fall back just before and
    spring forward just after Ramadan, the practice since 2012.
    (Thanks to Maamar Abdelkader.)  This means Morocco will observe
    negative DST during Ramadan in main and vanguard formats, and in
    rearguard format it stays in the +00 timezone and observes
    ordinary DST in all months other than Ramadan.  As before, extend
    this guesswork to the year 2037.  As a consequence, Morocco is
    scheduled to observe three DST transitions in some Gregorian years
    (e.g., 2033) due to the mismatch between the Gregorian and Islamic
    calendars.

    The table of exact transitions for Iranian DST has been extended.
    It formerly cut off before the year 2038 in a nod to 32-bit time_t.
    It now cuts off before 2091 as there is doubt about how the Persian
    calendar will treat 2091.  This change predicts DST transitions in
    2038-9, 2042-3, and 2046-7 to occur one day later than previously
    predicted.  As before, post-cutoff transitions are approximated.

  Changes to past and future timestamps

    Qyzylorda (aka Kyzylorda) oblast in Kazakhstan moved from +06 to
    +05 on 2018-12-21.  This is a zone split as Qostanay (aka
    Kostanay) did not switch, so create a zone Asia/Qostanay.

    Metlakatla moved from Alaska to Pacific standard time on 2018-11-04.
    It did not change clocks that day and remains on -08 this winter.
    (Thanks to Ryan Stanley.)  It will revert to the usual Alaska
    rules next spring, so this change affects only timestamps
    from 2018-11-04 through 2019-03-10.

  Change to past timestamps

    Kwajalein's 1993-08-20 transition from -12 to +12 was at 24:00,
    not 00:00.  I transcribed the time incorrectly from Shanks.
    (Thanks to Phake Nick.)

    Nauru's 1979 transition was on 02-10 at 02:00, not 05-01 at 00:00.
    (Thanks to Phake Nick.)

    Guam observed DST irregularly from 1959 through 1977.
    (Thanks to Phake Nick.)

    Hong Kong observed DST in 1941 starting 06-15 (not 04-01), then on
    10-01 changed standard time to +08:30 (not +08).  Its transition
    back to +08 after WWII was on 1945-09-15, not the previous day.
    Its 1904-10-30 change took effect at 01:00 +08 (not 00:00 LMT).
    (Thanks to Phake Nick, Steve Allen, and Joseph Myers.)  Also,
    its 1952 fallback was on 11-02 (not 10-25).

    This release contains many changes to timestamps before 1946 due
    to Japanese possession or occupation of Pacific/Chuuk,
    Pacific/Guam, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro,
    Pacific/Nauru, Pacific/Palau, and Pacific/Pohnpei.
    (Thanks to Phake Nick.)

    Assume that the Spanish East Indies was like the Philippines and
    observed American time until the end of 1844.  This affects
    Pacific/Chuuk, Pacific/Kosrae, Pacific/Palau, and Pacific/Pohnpei.

  Changes to past tm_isdst flags

    For the recent Morocco change, the tm_isdst flag should be 1 from
    2018-10-27 00:00 to 2018-10-28 03:00.  (Thanks to Michael Deckers.)
    Give a URL to the official decree.  (Thanks to Matt Johnson.)
```

--------------------------------

### mktime scan logic update

Source: https://www.iana.org/time-zones/releases/code95e

This change modifies the mktime function to scan from the future to the past when determining time zone offsets.

```text
  the mktime change to scan from future to past when trying to find time zone
  offsets
```

--------------------------------

### Limit zic output time range

Source: https://www.iana.org/time-zones/releases/2019a

Use the -r option with the zic compiler to restrict output data to a specific timestamp range, useful for reducing file size.

```bash
zic -r @1000000000
```

--------------------------------

### Update sp->typecnt variable

Source: https://www.iana.org/time-zones/releases/code96j

This snippet reflects the specific code change implemented in the code96j release.

```text
  Set sp->typecnt as suggested by Timothy Patrick Murphy.
```

--------------------------------

### Canada/Central Time Zone Adjustment

Source: https://www.iana.org/time-zones/releases/data95i

Correction for the Canada/Central time zone definition regarding daylight saving time transitions.

```text
  For Canada/Central, guess that the Sun customer's "one week too
  early" was just a approximation, and the true error is one month
  too early.  This is consistent with the rest of Canada.
```

=== COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.