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