1.\" This file is in the public domain, so clarified as of 2.\" 2009-05-17 by Arthur David Olson. 3.\" 4.\" $FreeBSD$ 5.\" 6.Dd January 21, 2023 7.Dt ZIC 8 8.Os 9.Sh NAME 10.Nm zic 11.Nd timezone compiler 12.Sh SYNOPSIS 13.Nm 14.Op Fl -help 15.Op Fl -version 16.Op Fl Dsv 17.Op Fl b Ar slim | fat 18.Op Fl d Ar directory 19.Op Fl g Ar gid 20.Op Fl l Ar localtime 21.Op Fl L Ar leapseconds 22.Op Fl m Ar mode 23.Op Fl p Ar posixrules 24.Oo 25.Fl r 26.Op @ Ns Ar lo Ns 27.Op /@ Ns Ar hi 28.Oc 29.Op Fl R @ Ns Ar hi 30.Op Fl t Ar localtime-link 31.Op Fl u Ar uid 32.Op Ar filename ... 33.Sh DESCRIPTION 34The 35.Nm 36program reads text from the file(s) named on the command line 37and creates the timezone information format (TZif) files 38specified in this input. 39If a 40.Ar filename 41is 42.Dq "-" , 43standard input is read. 44.Pp 45The following options are available: 46.Bl -tag -width indent 47.It Fl -version 48Output version information and exit. 49.It Fl -help 50Output short usage message and exit. 51.It Fl b Ar bloat 52Output backward-compatibility data as specified by 53.Ar bloat . 54If 55.Ar bloat 56is 57.Cm fat , 58generate additional data entries that work around potential bugs or 59incompatibilities in older software, such as software that mishandles 60the 64-bit generated data. 61If 62.Ar bloat 63is 64.Cm slim , 65keep the output files small; this can help check for the bugs 66and incompatibilities. 67The default is 68.Cm slim , 69as software that mishandles 64-bit data typically 70mishandles timestamps after the year 2038 anyway. 71Also see the 72.Fl r 73option for another way to alter output size. 74.It Fl D 75Do not create directories. 76.It Fl d Ar directory 77Create time conversion information files in the named directory rather than 78in the standard directory named below. 79.It Fl l Ar timezone 80Use 81.Ar timezone 82as local time. 83The 84.Nm 85utility 86will act as if the input contained a link line of the form 87.Bd -literal -offset indent 88Link timezone localtime 89.Ed 90.Pp 91If 92.Ar timezone 93is 94.Ql - , 95any already-existing link is removed. 96.It Fl L Ar filename 97Read leap second information from the file with the given name. 98If this option is not used, 99no leap second information appears in output files. 100.It Fl p Ar timezone 101Use 102.Ar timezone 's 103rules when handling nonstandard 104TZ strings like 105.Dq "EET\-2EEST" 106that lack transition rules. 107The 108.Nm 109utility 110will act as if the input contained a link line of the form 111.Bd -literal -offset indent 112Link \fItimezone\fP posixrules 113.Ed 114.Pp 115This feature is obsolete and poorly supported. 116Among other things it should not be used for timestamps after the year 2037, 117and it should not be combined with 118.Fl b Cm slim 119if 120.Ar timezone 's 121transitions are at standard time or Universal Time (UT) instead of local time. 122.Pp 123If 124.Ar timezone 125is 126.Ql - , 127any already-existing link is removed. 128.It Fl r Oo @ Ns Ar lo Oc Ns Oo /@ Ns Ar hi Oc 129Limit the applicability of output files 130to timestamps in the range from 131.Ar lo 132(inclusive) to 133.Ar hi 134(exclusive), where 135.Ar lo 136and 137.Ar hi 138are possibly-signed decimal counts of seconds since the Epoch 139(1970-01-01 00:00:00 UTC). 140Omitted counts default to extreme values. 141The output files use UT offset 0 and abbreviation 142.Dq "\-00" 143in place of the omitted timestamp data. 144For example, 145.Fl r @0 146omits data intended for negative timestamps (i.e., before the Epoch), and 147.Fl r @0/@2147483648 148outputs data intended only for nonnegative timestamps that fit into 14931-bit signed integers. 150Although this option typically reduces the output file's size, 151the size can increase due to the need to represent the timestamp range 152boundaries, particularly if 153.Ar hi 154causes a TZif file to contain explicit entries for 155.Em pre- 156.Ar hi 157transitions rather than concisely representing them 158with an extended POSIX TZ string. 159Also see the 160.Fl b Cm slim 161option for another way to shrink output size. 162.It Fl R @ Ns Ar hi 163Generate redundant trailing explicit transitions for timestamps 164that occur less than 165.Ar hi 166seconds since the Epoch, even though the transitions could be 167more concisely represented via the extended POSIX TZ string. 168This option does not affect the represented timestamps. 169Although it accommodates nonstandard TZif readers 170that ignore the extended POSIX TZ string, 171it increases the size of the altered output files. 172.It Fl t Ar file 173When creating local time information, put the configuration link in 174the named file rather than in the standard location. 175.It Fl v 176Be more verbose, and complain about the following situations: 177.Bl -bullet 178.It 179The input specifies a link to a link, 180something not supported by some older parsers, including 181.Nm 182itself through release 2022e. 183.It 184A year that appears in a data file is outside the range 185of representable years. 186.It 187A time of 24:00 or more appears in the input. 188Pre-1998 versions of 189.Nm 190prohibit 24:00, and pre-2007 versions prohibit times greater than 24:00. 191.It 192A rule goes past the start or end of the month. 193Pre-2004 versions of 194.Nm 195prohibit this. 196.It 197A time zone abbreviation uses a 198.Ql %z 199format. 200Pre-2015 versions of 201.Nm 202do not support this. 203.It 204A timestamp contains fractional seconds. 205Pre-2018 versions of 206.Nm 207do not support this. 208.It 209The input contains abbreviations that are mishandled by pre-2018 versions of 210.Nm 211due to a longstanding coding bug. 212These abbreviations include 213.Dq L 214for 215.Dq Link , 216.Dq mi 217for 218.Dq min , 219.Dq Sa 220for 221.Dq Sat , 222and 223.Dq Su 224for 225.Dq Sun . 226.It 227The output file does not contain all the information about the 228long-term future of a timezone, because the future cannot be summarized as 229an extended POSIX TZ string. 230For example, as of 2019 this problem 231occurs for Iran's daylight-saving rules for the predicted future, as 232these rules are based on the Iranian calendar, which cannot be 233represented. 234.It 235The output contains data that may not be handled properly by client 236code designed for older 237.Nm 238output formats. 239These compatibility issues affect only timestamps 240before 1970 or after the start of 2038. 241.It 242The output contains a truncated leap second table, 243which can cause some older TZif readers to misbehave. 244This can occur if the 245.Fl L 246option is used, and either an Expires line is present or 247the 248.Fl r 249option is also used. 250.It 251The output file contains more than 1200 transitions, 252which may be mishandled by some clients. 253The current reference client supports at most 2000 transitions; 254pre-2014 versions of the reference client support at most 1200 255transitions. 256.It 257A time zone abbreviation has fewer than 3 or more than 6 characters. 258POSIX requires at least 3, and requires implementations to support 259at least 6. 260.It 261An output file name contains a byte that is not an ASCII letter, 262.Dq "\-" , 263.Dq "/" , 264or 265.Dq "_" ; 266or it contains a file name component that contains more than 14 bytes 267or that starts with 268.Dq "\-" . 269.El 270.El 271.RE 272.Sh FILES 273Input files use the format described in this section; output files use 274.Xr tzfile 5 275format. 276.Pp 277Input files should be text files, that is, they should be a series of 278zero or more lines, each ending in a newline byte and containing at 279most 2048 bytes counting the newline, and without any NUL bytes. 280The input text's encoding 281is typically UTF-8 or ASCII; it should have a unibyte representation 282for the POSIX Portable Character Set (PPCS) 283\*<https://pubs\*:.opengroup\*:.org/\*:onlinepubs/\*:9699919799/\*:basedefs/\*:V1_chap06\*:.html\*> 284and the encoding's non-unibyte characters should consist entirely of 285non-PPCS bytes. 286Non-PPCS characters typically occur only in comments: 287although output file names and time zone abbreviations can contain 288nearly any character, other software will work better if these are 289limited to the restricted syntax described under the 290.Fl v 291option. 292.Pp 293Input lines are made up of fields. 294Fields are separated from one another by one or more white space characters. 295The white space characters are space, form feed, carriage return, newline, 296tab, and vertical tab. 297Leading and trailing white space on input lines is ignored. 298An unquoted sharp character (\(sh) in the input introduces a comment which extends 299to the end of the line the sharp character appears on. 300White space characters and sharp characters may be enclosed in double quotes 301(\(dq) if they're to be used as part of a field. 302Any line that is blank (after comment stripping) is ignored. 303Nonblank lines are expected to be of one of three types: 304rule lines, zone lines, and link lines. 305.Pp 306Names must be in English and are case insensitive. 307They appear in several contexts, and include month and weekday names 308and keywords such as 309.Dq "maximum" , 310.Dq "only" , 311.Dq "Rolling" , 312and 313.Dq "Zone" . 314A name can be abbreviated by omitting all but an initial prefix; any 315abbreviation must be unambiguous in context. 316.Pp 317A rule line has the form 318.Bd -literal -offset indent 319Rule NAME FROM TO \- IN ON AT SAVE LETTER/S 320.Ed 321.Pp 322For example: 323.Bd -literal -offset indent 324Rule US 1967 1973 \- Apr lastSun 2:00w 1:00d D 325.Ed 326.Pp 327The fields that make up a rule line are: 328.Bl -tag -width "LETTER/S" 329.It NAME 330Gives the name of the rule set that contains this line. 331The name must start with a character that is neither 332an ASCII digit nor 333.Dq \- 334nor 335.Dq + . 336To allow for future extensions, 337an unquoted name should not contain characters from the set 338.Dq Ql "!$%&'()*,/:;<=>?@[\]^`{|}~" . 339.It FROM 340Gives the first year in which the rule applies. 341Any signed integer year can be supplied; the proleptic Gregorian calendar 342is assumed, with year 0 preceding year 1. 343The word 344.Cm minimum 345(or an abbreviation) means the indefinite past. 346The word 347.Cm maximum 348(or an abbreviation) means the indefinite future. 349Rules can describe times that are not representable as time values, 350with the unrepresentable times ignored; this allows rules to be portable 351among hosts with differing time value types. 352.It TO 353Gives the final year in which the rule applies. 354In addition to 355.Cm minimum 356and 357.Cm maximum 358(as above), 359the word 360.Cm only 361(or an abbreviation) 362may be used to repeat the value of the 363.Ar FROM 364field. 365.It \- 366Is a reserved field and should always contain 367.Ql \- 368for compatibility with older versions of 369.Nm . 370It was previously known as the 371.Ar TYPE 372field, which could contain values to allow a 373separate script to further restrict in which 374.Dq types 375of years the rule would apply. 376.It IN 377Names the month in which the rule takes effect. 378Month names may be abbreviated. 379.It ON 380Gives the day on which the rule takes effect. 381Recognized forms include: 382.Bl -tag -compact -width "Sun<=25" 383.It 5 384the fifth of the month 385.It lastSun 386the last Sunday in the month 387.It lastMon 388the last Monday in the month 389.It Sun>=8 390first Sunday on or after the eighth 391.It Sun<=25 392last Sunday on or before the 25th 393.El 394.Pp 395A weekday name (e.g., 396.Ql "Sunday" ) 397or a weekday name preceded by 398.Dq "last" 399(e.g., 400.Ql "lastSunday" ) 401may be abbreviated or spelled out in full. 402There must be no white space characters within the 403.Ar ON 404field. 405The 406.Dq <= 407and 408.Dq >= 409constructs can result in a day in the neighboring month; 410for example, the IN-ON combination 411.Dq "Oct Sun>=31" 412stands for the first Sunday on or after October 31, 413even if that Sunday occurs in November. 414.It AT 415Gives the time of day at which the rule takes effect, 416relative to 00:00, the start of a calendar day. 417Recognized forms include: 418.Bl -tag -compact -width "00:19:32.13" 419.It 2 420time in hours 421.It 2:00 422time in hours and minutes 423.It 01:28:14 424time in hours, minutes, and seconds 425.It 00:19:32.13 426time with fractional seconds 427.It 12:00 428midday, 12 hours after 00:00 429.It 15:00 4303 PM, 15 hours after 00:00 431.It 24:00 432end of day, 24 hours after 00:00 433.It 260:00 434260 hours after 00:00 435.It \-2:30 4362.5 hours before 00:00 437.It \- 438equivalent to 0 439.El 440.Pp 441Although 442.Nm 443rounds times to the nearest integer second 444(breaking ties to the even integer), the fractions may be useful 445to other applications requiring greater precision. 446The source format does not specify any maximum precision. 447Any of these forms may be followed by the letter 448.Ql w 449if the given time is local or 450.Dq "wall clock" 451time, 452.Ql s 453if the given time is standard time without any adjustment for daylight saving, 454or 455.Ql u 456(or 457.Ql g 458or 459.Ql z ) 460if the given time is universal time; 461in the absence of an indicator, 462local (wall clock) time is assumed. 463These forms ignore leap seconds; for example, 464if a leap second occurs at 00:59:60 local time, 465.Ql "1:00" 466stands for 3601 seconds after local midnight instead of the usual 3600 seconds. 467The intent is that a rule line describes the instants when a 468clock/calendar set to the type of time specified in the 469.Ar AT 470field would show the specified date and time of day. 471.It SAVE 472Gives the amount of time to be added to local standard time when the rule is in 473effect, and whether the resulting time is standard or daylight saving. 474This field has the same format as the 475.Ar AT 476field 477except with a different set of suffix letters: 478.Ql s 479for standard time and 480.Ql d 481for daylight saving time. 482The suffix letter is typically omitted, and defaults to 483.Ql s 484if the offset is zero and to 485.Ql d 486otherwise. 487Negative offsets are allowed; in Ireland, for example, daylight saving 488time is observed in winter and has a negative offset relative to 489Irish Standard Time. 490The offset is merely added to standard time; for example, 491.Nm 492does not distinguish a 10:30 standard time plus an 0:30 493.Ar SAVE 494from a 10:00 standard time plus a 1:00 495.Ar SAVE . 496.It LETTER/S 497Gives the 498.Dq "variable part" 499(for example, the 500.Dq "S" 501or 502.Dq "D" 503in 504.Dq "EST" 505or 506.Dq "EDT" ) 507of time zone abbreviations to be used when this rule is in effect. 508If this field is 509.Ql \- , 510the variable part is null. 511.El 512.Pp 513A zone line has the form 514.Bd -literal -offset indent 515Zone NAME STDOFF RULES FORMAT [UNTIL] 516.Ed 517.Pp 518For example: 519.Bd -literal -offset indent 520Zone Asia/Amman 2:00 Jordan EE%sT 2017 Oct 27 01:00 521.Ed 522.Pp 523The fields that make up a zone line are: 524.Bl -tag -width "STDOFF" 525.It NAME 526The name of the timezone. 527This is the name used in creating the time conversion information file for the 528timezone. 529It should not contain a file name component 530.Dq ".\&" 531or 532.Dq ".." ; 533a file name component is a maximal substring that does not contain 534.Dq "/" . 535.It STDOFF 536The amount of time to add to UT to get standard time, 537without any adjustment for daylight saving. 538This field has the same format as the 539.Ar AT 540and 541.Ar SAVE 542fields of rule lines, except without suffix letters; 543begin the field with a minus sign if time must be subtracted from UT. 544.It RULES 545The name of the rules that apply in the timezone or, 546alternatively, a field in the same format as a rule-line SAVE column, 547giving the amount of time to be added to local standard time 548and whether the resulting time is standard or daylight saving. 549If this field is 550.Ql \- 551then standard time always applies. 552When an amount of time is given, only the sum of standard time and 553this amount matters. 554.It FORMAT 555The format for time zone abbreviations. 556The pair of characters 557.Ql %s 558is used to show where the 559.Dq "variable part" 560of the time zone abbreviation goes. 561Alternatively, a format can use the pair of characters 562.Ql %z 563to stand for the UT offset in the form 564.Ar \(+- hh , 565.Ar \(+- hhmm , 566or 567.Ar \(+- hhmmss , 568using the shortest form that does not lose information, where 569.Ar hh , 570.Ar mm , 571and 572.Ar ss 573are the hours, minutes, and seconds east (+) or west (\-) of UT. 574Alternatively, 575a slash (/) 576separates standard and daylight abbreviations. 577To conform to POSIX, a time zone abbreviation should contain only 578alphanumeric ASCII characters, 579.Ql "+" 580and 581.Ql "\-". 582By convention, the time zone abbreviation 583.Ql "\-00" 584is a placeholder that means local time is unspecified. 585.It UNTIL 586The time at which the UT offset or the rule(s) change for a location. 587It takes the form of one to four fields 588.Ar YEAR Op Ar MONTH Op Ar DAY Op Ar TIME . 589If this is specified, 590the time zone information is generated from the given UT offset 591and rule change until the time specified, which is interpreted using 592the rules in effect just before the transition. 593The month, day, and time of day have the same format as the 594.Ar IN , 595.Ar ON , 596and 597.Ar AT 598fields of a rule; trailing fields can be omitted, and default to the 599earliest possible value for the missing fields. 600.IP 601The next line must be a 602.Dq "continuation" 603line; this has the same form as a zone line except that the 604string 605.Dq "Zone" 606and the name are omitted, as the continuation line will 607place information starting at the time specified as the 608.Dq "until" 609information in the previous line in the file used by the previous line. 610Continuation lines may contain 611.Dq "until" 612information, just as zone lines do, indicating that the next line is a further 613continuation. 614.El 615.Pp 616If a zone changes at the same instant that a rule would otherwise take 617effect in the earlier zone or continuation line, the rule is ignored. 618A zone or continuation line 619.Ar L 620with a named rule set starts with standard time by default: 621that is, any of 622.Ar L 's 623timestamps preceding 624.Ar L 's 625earliest rule use the rule in effect after 626.Ar L 's 627first transition into standard time. 628In a single zone it is an error if two rules take effect at the same 629instant, or if two zone changes take effect at the same instant. 630.Pp 631If a continuation line subtracts 632.Ar N 633seconds from the UT offset after a transition that would be 634interpreted to be later if using the continuation line's UT offset and 635rules, the 636.Dq "until" 637time of the previous zone or continuation line is interpreted 638according to the continuation line's UT offset and rules, and any rule 639that would otherwise take effect in the next 640.Ar N 641seconds is instead assumed to take effect simultaneously. 642For example: 643.Bd -literal -offset indent 644# Rule NAME FROM TO \*- IN ON AT SAVE LETTER/S 645Rule US 1967 2006 - Oct lastSun 2:00 0 S 646Rule US 1967 1973 - Apr lastSun 2:00 1:00 D 647 648# Zone\0\0NAME STDOFF RULES FORMAT [UNTIL] 649Zone\0\0America/Menominee \*-5:00 \*- EST 1973 Apr 29 2:00 650 \*-6:00 US C%sT 651.Ed 652Here, an incorrect reading would be there were two clock changes on 1973-04-29, 653the first from 02:00 EST (\-05) to 01:00 CST (\-06), 654and the second an hour later from 02:00 CST (\-06) to 03:00 CDT (\-05). 655However, 656.Nm 657interprets this more sensibly as a single transition from 02:00 CST (\-05) to 65802:00 CDT (\-05). 659.Pp 660A link line has the form 661.Bd -literal -offset indent 662Link TARGET LINK-NAME 663.Ed 664.Pp 665For example: 666.Bd -literal -offset indent 667Link Europe/Istanbul Asia/Istanbul 668.Ed 669.Pp 670The 671.Ar TARGET 672field should appear as the 673.Ar NAME 674field in some zone line or as the 675.Ar LINK-NAME 676field in some link line. 677The 678.Ar LINK-NAME 679field is used as an alternative name for that zone; 680it has the same syntax as a zone line's 681.Ar NAME 682field. 683Links can chain together, although the behavior is unspecified if a 684chain of one or more links does not terminate in a Zone name. 685A link line can appear before the line that defines the link target. 686For example: 687.Bd -literal -offset indent 688Link Greenwich G_M_T 689Link Etc/GMT Greenwich 690Zone Etc/GMT\0\00\0\0\-\0\0GMT 691.Ed 692.Pp 693The two links are chained together, and G_M_T, Greenwich, and Etc/GMT 694all name the same zone. 695.Pp 696Except for continuation lines, 697lines may appear in any order in the input. 698However, the behavior is unspecified if multiple zone or link lines 699define the same name. 700.Pp 701The file that describes leap seconds can have leap lines and an 702expiration line. 703Leap lines have the following form: 704.Bd -literal -offset indent 705Leap YEAR MONTH DAY HH:MM:SS CORR R/S 706.Ed 707.Pp 708For example: 709.Bd -literal -offset indent 710Leap 2016 Dec 31 23:59:60 + S 711.Ed 712.Pp 713The 714.Ar YEAR , 715.Ar MONTH , 716.Ar DAY , 717and 718.Ar HH:MM:SS 719fields tell when the leap second happened. 720The 721.Ar CORR 722field 723should be 724.Ql "+" 725if a second was added 726or 727.Ql "\-" 728if a second was skipped. 729The 730.Ar R/S 731field 732should be (an abbreviation of) 733.Dq "Stationary" 734if the leap second time given by the other fields should be interpreted as UTC 735or 736(an abbreviation of) 737.Dq "Rolling" 738if the leap second time given by the other fields should be interpreted as 739local (wall clock) time. 740.Pp 741Rolling leap seconds were implemented back when it was not 742clear whether common practice was rolling or stationary, 743with concerns that one would see 744Times Square ball drops where there'd be a 745.Dq "3... 2... 1... leap... Happy New Year" 746countdown, placing the leap second at 747midnight New York time rather than midnight UTC. 748However, this countdown style does not seem to have caught on, 749which means rolling leap seconds are not used in practice; 750also, they are not supported if the 751.Fl r 752option is used. 753.Pp 754The expiration line, if present, has the form: 755.Bd -literal -offset indent 756Expires YEAR MONTH DAY HH:MM:SS 757.Ed 758.Pp 759For example: 760.Bd -literal -offset indent 761Expires 2020 Dec 28 00:00:00 762.Ed 763.Pp 764The 765.Ar YEAR , 766.Ar MONTH , 767.Ar DAY , 768and 769.Ar HH:MM:SS 770fields give the expiration timestamp in UTC for the leap second table. 771.Sh "EXTENDED EXAMPLE" 772Here is an extended example of 773.Nm 774input, intended to illustrate many of its features. 775.Bd -literal -offset indent 776# Rule NAME FROM TO \- IN ON AT SAVE LETTER/S 777Rule Swiss 1941 1942 \- May Mon>=1 1:00 1:00 S 778Rule Swiss 1941 1942 \- Oct Mon>=1 2:00 0 \- 779 780Rule EU 1977 1980 \- Apr Sun>=1 1:00u 1:00 S 781Rule EU 1977 only \- Sep lastSun 1:00u 0 \- 782Rule EU 1978 only \- Oct 1 1:00u 0 \- 783Rule EU 1979 1995 \- Sep lastSun 1:00u 0 \- 784Rule EU 1981 max \- Mar lastSun 1:00u 1:00 S 785Rule EU 1996 max \- Oct lastSun 1:00u 0 \- 786 787# Zone NAME STDOFF RULES FORMAT [UNTIL] 788Zone Europe/Zurich 0:34:08 \- LMT 1853 Jul 16 789 0:29:45.50 \- BMT 1894 Jun 790 1:00 Swiss CE%sT 1981 791 1:00 EU CE%sT 792 793Link Europe/Zurich Europe/Vaduz 794.Ed 795.Pp 796In this example, the EU rules are for the European Union 797and for its predecessor organization, the European Communities. 798The timezone is named Europe/Zurich and it has the alias Europe/Vaduz. 799This example says that Zurich was 34 minutes and 8 800seconds east of UT until 1853-07-16 at 00:00, when the legal offset 801was changed to 8027\(de26\(fm22.50\(sd, 803which works out to 0:29:45.50; 804.Nm 805treats this by rounding it to 0:29:46. 806After 1894-06-01 at 00:00 the UT offset became one hour 807and Swiss daylight saving rules (defined with lines beginning with 808.Dq "Rule Swiss") 809apply. 810From 1981 to the present, EU daylight saving rules have 811applied, and the UTC offset has remained at one hour. 812.Pp 813In 1941 and 1942, daylight saving time applied from the first Monday 814in May at 01:00 to the first Monday in October at 02:00. 815The pre-1981 EU daylight-saving rules have no effect 816here, but are included for completeness. 817Since 1981, daylight 818saving has begun on the last Sunday in March at 01:00 UTC. 819Until 1995 it ended the last Sunday in September at 01:00 UTC, 820but this changed to the last Sunday in October starting in 1996. 821.Pp 822For purposes of display, 823.Dq "LMT" 824and 825.Dq "BMT" 826were initially used, respectively. 827Since 828Swiss rules and later EU rules were applied, the time zone abbreviation 829has been CET for standard time and CEST for daylight saving 830time. 831.Sh FILES 832.Bl -tag -width "/usr/share/zoneinfo" 833.It Pa /etc/localtime 834Default local timezone file. 835.It Pa /usr/share/zoneinfo 836Default timezone information directory. 837.El 838.Sh NOTES 839For areas with more than two types of local time, 840you may need to use local standard time in the 841.Ar AT 842field of the earliest transition time's rule to ensure that 843the earliest transition time recorded in the compiled file is correct. 844.Pp 845If, 846for a particular timezone, 847a clock advance caused by the start of daylight saving 848coincides with and is equal to 849a clock retreat caused by a change in UT offset, 850.Nm 851produces a single transition to daylight saving at the new UT offset 852without any change in local (wall clock) time. 853To get separate transitions 854use multiple zone continuation lines 855specifying transition instants using universal time. 856.Sh SEE ALSO 857.Xr tzfile 5 , 858.Xr zdump 8 859