{
    "mode": "man",
    "parameter": "zic",
    "section": "8",
    "url": "https://www.chedong.com/phpMan.php/man/zic/8/json",
    "generated": "2026-08-11T22:49:49Z",
    "synopsis": "zic [ option ... ] [ filename ... ]",
    "sections": {
        "NAME": {
            "content": "zic - timezone compiler\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "zic [ option ... ] [ filename ... ]\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "The  zic  program reads text from the file(s) named on the command line and creates the time‐\nzone information format (TZif) files specified in this input.  If a filename is “-”, standard\ninput is read.\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "--version\nOutput version information and exit.\n\n--help Output short usage message and exit.\n\n-b bloat\nOutput backward-compatibility data as specified by bloat.  If bloat is  fat,  generate\nadditional  data entries that work around potential bugs or incompatibilities in older\nsoftware, such as software that mishandles the 64-bit generated  data.   If  bloat  is\nslim, keep the output files small; this can help check for the bugs and incompatibili‐\nties.   The default is slim, as software that mishandles 64-bit data typically mishan‐\ndles timestamps after the year 2038 anyway.  Also see the -r option for another way to\nalter output size.\n\n-d directory\nCreate time conversion information files in the named directory  rather  than  in  the\nstandard directory named below.\n\n-l timezone\nUse timezone as local time.  zic will act as if the input contained a link line of the\nform\n\nLink  timezone  localtime\n\nIf timezone is -, any already-existing link is removed.\n\n-L leapsecondfilename\nRead leap second information from the file with the given name.  If this option is not\nused, no leap second information appears in output files.\n\n-p timezone\nUse  timezone's  rules when handling nonstandard TZ strings like \"EET-2EEST\" that lack\ntransition rules.  zic will act as if the input contained a link line of the form\n\nLink  timezone  posixrules\n\nIf timezone is “-” (the default), any already-existing link is removed.\n\nUnless timezone is “-”, this option is obsolete and  poorly  supported.   Among  other\nthings  it should not be used for timestamps after the year 2037, and it should not be\ncombined with -b slim if timezone's transitions are at standard time or Universal Time\n(UT) instead of local time.\n\n-r [@lo][/@hi]\nLimit the applicability of output files to timestamps in the range from lo (inclusive)\nto hi (exclusive), where lo and hi are possibly signed decimal counts of seconds since\nthe Epoch (1970-01-01 00:00:00 UTC).  Omitted counts default to extreme  values.   The\noutput  files use UT offset 0 and abbreviation “-00” in place of the omitted timestamp\ndata.  For example, “zic -r @0” omits data intended for negative timestamps (i.e., be‐\nfore the Epoch), and “zic -r @0/@2147483648” outputs data intended only  for  nonnega‐\ntive  timestamps  that  fit  into 31-bit signed integers.  On platforms with GNU date,\n“zic -r @$(date +%s)” omits data intended for past timestamps.  Although  this  option\ntypically  reduces  the  output  file's size, the size can increase due to the need to\nrepresent the timestamp range boundaries, particularly if hi causes  a  TZif  file  to\ncontain  explicit  entries  for  pre-hi transitions rather than concisely representing\nthem with an extended POSIX.1-2017 TZ string.  Also see the -b slim option for another\nway to shrink output size.\n\n-R @hi Generate redundant trailing explicit transitions for timestamps that occur  less  than\nhi seconds since the Epoch, even though the transitions could be more concisely repre‐\nsented  via the extended POSIX.1-2017 TZ string.  This option does not affect the rep‐\nresented timestamps.  Although it accommodates nonstandard TZif  readers  that  ignore\nthe  extended  POSIX.1-2017  TZ  string,  it  increases the size of the altered output\nfiles.\n\n-t file\nWhen creating local time information, put the configuration link  in  the  named  file\nrather than in the standard location.\n\n-v     Be more verbose, and complain about the following situations:\n\nThe  input  specifies a link to a link, something not supported by some older parsers,\nincluding zic itself through release 2022e.\n\nA year that appears in a data file is outside the range of representable years.\n\nA time of 24:00 or more appears in the  input.   Pre-1998  versions  of  zic  prohibit\n24:00, and pre-2007 versions prohibit times greater than 24:00.\n\nA  rule  goes  past  the start or end of the month.  Pre-2004 versions of zic prohibit\nthis.\n\nA time zone abbreviation uses a %z format.  Pre-2015 versions of zic  do  not  support\nthis.\n\nA  timestamp  contains  fractional  seconds.   Pre-2018 versions of zic do not support\nthis.\n\nThe input contains abbreviations that are mishandled by pre-2018 versions of  zic  due\nto  a  longstanding  coding bug.  These abbreviations include “L” for “Link”, “mi” for\n“min”, “Sa” for “Sat”, and “Su” for “Sun”.\n\nThe output file does not contain all the information about the long-term future  of  a\ntimezone,  because  the  future  cannot  be  summarized as an extended POSIX.1-2017 TZ\nstring.  For example, as of 2023 this problem  occurs  for  Morocco's  daylight-saving\nrules,  as  these  rules  are  based on predictions for when Ramadan will be observed,\nsomething that an extended POSIX.1-2017 TZ string cannot represent.\n\nThe output contains data that may not be handled properly by client code designed  for\nolder  zic  output  formats.  These compatibility issues affect only timestamps before\n1970 or after the start of 2038.\n\nThe output contains a truncated leap second table, which can  cause  some  older  TZif\nreaders  to misbehave.  This can occur if the -L option is used, and either an Expires\nline is present or the -r option is also used.\n\nThe output file contains more than 1200 transitions, which may be mishandled  by  some\nclients.   The  current  reference  client supports at most 2000 transitions; pre-2014\nversions of the reference client support at most 1200 transitions.\n\nA time zone abbreviation has fewer than 3 or more than 6 characters.   POSIX  requires\nat least 3, and requires implementations to support at least 6.\n\nAn  output file name contains a byte that is not an ASCII letter, “-”, “/”, or “”; or\nit contains a file name component that contains more than 14 bytes or that starts with\n“-”.\n",
            "subsections": []
        },
        "FILES": {
            "content": "/etc/localtime\nDefault local timezone file.\n\n/usr/share/zoneinfo\nDefault timezone information directory.\n",
            "subsections": []
        },
        "EXTENDED EXAMPLE": {
            "content": "Here is an extended example of zic input, intended to illustrate many of its features.\n\n# Rule  NAME  FROM  TO    -  IN   ON       AT    SAVE  LETTER/S\nRule    Swiss 1941  1942  -  May  Mon>=1   1:00  1:00  S\nRule    Swiss 1941  1942  -  Oct  Mon>=1   2:00  0     -\nRule    EU    1977  1980  -  Apr  Sun>=1   1:00u 1:00  S\nRule    EU    1977  only  -  Sep  lastSun  1:00u 0     -\nRule    EU    1978  only  -  Oct   1       1:00u 0     -\nRule    EU    1979  1995  -  Sep  lastSun  1:00u 0     -\nRule    EU    1981  max   -  Mar  lastSun  1:00u 1:00  S\nRule    EU    1996  max   -  Oct  lastSun  1:00u 0     -\n\n# Zone  NAME           STDOFF      RULES  FORMAT  [UNTIL]\nZone    Europe/Zurich  0:34:08     -      LMT     1853 Jul 16\n0:29:45.50  -      BMT     1894 Jun\n1:00        Swiss  CE%sT   1981\n1:00        EU     CE%sT\n\nLink    Europe/Zurich  Europe/Vaduz\n\nIn  this  example,  the EU rules are for the European Union and for its predecessor organiza‐\ntion, the European Communities.  The timezone is named Europe/Zurich and it has the alias Eu‐\nrope/Vaduz.  This example says that Zurich was 34 minutes and 8  seconds  east  of  UT  until\n1853-07-16 at 00:00, when the legal offset was changed to 7 degrees 26 minutes 22.50 seconds,\nwhich  works  out to 0:29:45.50; zic treats this by rounding it to 0:29:46.  After 1894-06-01\nat 00:00 the UT offset became one hour and Swiss daylight saving rules  (defined  with  lines\nbeginning  with “Rule Swiss”) apply.  From 1981 to the present, EU daylight saving rules have\napplied, and the UTC offset has remained at one hour.\n\nIn 1941 and 1942, daylight saving time applied from the first Monday in May at 01:00  to  the\nfirst Monday in October at 02:00.  The pre-1981 EU daylight-saving rules have no effect here,\nbut  are included for completeness.  Since 1981, daylight saving has begun on the last Sunday\nin March at 01:00 UTC.  Until 1995 it ended the last Sunday in September at  01:00  UTC,  but\nthis changed to the last Sunday in October starting in 1996.\n\nFor  purposes  of  display,  “LMT”  and “BMT” were initially used, respectively.  Since Swiss\nrules and later EU rules were applied, the time zone abbreviation has been CET  for  standard\ntime and CEST for daylight saving time.\n",
            "subsections": []
        },
        "NOTES": {
            "content": "For  areas with more than two types of local time, you may need to use local standard time in\nthe AT field of the earliest transition time's rule to ensure that  the  earliest  transition\ntime recorded in the compiled file is correct.\n\nIf,  for  a particular timezone, a clock advance caused by the start of daylight saving coin‐\ncides with and is equal to a clock retreat caused by a change in UT offset,  zic  produces  a\nsingle  transition  to daylight saving at the new UT offset without any change in local (wall\nclock) time.  To get separate transitions use multiple  zone  continuation  lines  specifying\ntransition instants using universal time.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "tzfile(5), zdump(8)\n\nTime Zone Database                                                                            zic(8)",
            "subsections": []
        }
    },
    "summary": "zic - timezone compiler",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "tzfile",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/tzfile/5/json"
        },
        {
            "name": "zdump",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/zdump/8/json"
        }
    ]
}