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