Added Cyg-Win
This commit is contained in:
parent
82cbc206eb
commit
413c315806
10586 changed files with 3806249 additions and 0 deletions
673
Agent-Windows/OGP64/usr/share/doc/tzcode/tz-how-to.html
Normal file
673
Agent-Windows/OGP64/usr/share/doc/tzcode/tz-how-to.html
Normal file
|
|
@ -0,0 +1,673 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>How to Read the tz Database</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<style>
|
||||
pre {margin-left: 1.3rem; overflow: auto;}
|
||||
td {text-align: center;}
|
||||
table {border: 1px outset;}
|
||||
th, td {border: 1px inset;}
|
||||
table.rule {border: none; margin: auto;}
|
||||
td.footnote {text-align: left;}
|
||||
ul {padding-left: 1.3rem;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h2>How to Read the <a href="https://en.wikipedia.org/wiki/Tz_database">tz
|
||||
Database</a> Source Files</h2>
|
||||
<h3>by Bill Seymour</h3>
|
||||
<p>This guide uses the <code>America/Chicago</code> and
|
||||
<code>Pacific/Honolulu</code> zones as examples of how to infer
|
||||
times of day from the <a href="tz-link.html">tz database</a>
|
||||
source files. It might be helpful, but not absolutely necessary,
|
||||
for the reader to have already downloaded the
|
||||
latest release of the database and become familiar with the basic layout
|
||||
of the data files. The format is explained in the “man page”
|
||||
for the zic compiler, <code>zic.8.txt</code>, in
|
||||
the <code>code</code> subdirectory.
|
||||
Although this guide covers many of the common cases, it is not a
|
||||
complete summary of what zic accepts; the man page is the
|
||||
authoritative reference.</p>
|
||||
|
||||
<p>We’ll begin by talking about the rules for changing between standard
|
||||
and daylight saving time since we’ll need that information when we talk
|
||||
about the zones.</p>
|
||||
|
||||
<p>First, let’s consider the special daylight saving time rules
|
||||
for Chicago (from the <code>northamerica</code> file in
|
||||
the <code>data</code> subdirectory):</p>
|
||||
|
||||
<pre>#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
|
||||
</pre>
|
||||
<table>
|
||||
<tr>
|
||||
<th colspan="6">Reformatted a Bit</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>From</th>
|
||||
<th>To</th>
|
||||
<th colspan="2">On</th>
|
||||
<th>At</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">1920 only</td>
|
||||
<td colspan="2">June 13<small><sup>th</sup></small></td>
|
||||
<td rowspan="6">02:00 local</td>
|
||||
<td>go to daylight saving time</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1920</td>
|
||||
<td>1921</td>
|
||||
<td rowspan="5">last Sunday</td>
|
||||
<td>in October</td>
|
||||
<td>return to standard time</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">1921 only</td>
|
||||
<td>in March</td>
|
||||
<td rowspan="2">go to daylight saving time</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">1922</td>
|
||||
<td>1966</td>
|
||||
<td>in April</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1954</td>
|
||||
<td>in September</td>
|
||||
<td rowspan="2">return to standard time</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1955</td>
|
||||
<td>1966</td>
|
||||
<td>in October</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>The <code>FROM</code> and <code>TO</code> columns, respectively, specify the
|
||||
first and last calendar years defining a contiguous range over which a specific
|
||||
Rule line is to apply. The keyword <code>only</code> can be used in the
|
||||
<code>TO</code> field to repeat the value of the <code>FROM</code> field in the
|
||||
event that a rule should only apply to a single year. Often, the keyword
|
||||
<code>max</code> is used to extend a rule’s application into the
|
||||
indefinite future; it is a platform-agnostic stand-in for the largest
|
||||
representable year.
|
||||
|
||||
<p>The next column, <code>-</code>, is reserved; for compatibility with earlier
|
||||
releases, it always contains a hyphen, which acts as a kind of null value.
|
||||
Prior to the 2020b release, it was called the <code>TYPE</code> field, though
|
||||
it had not been used in the main data since the 2000e release.
|
||||
An obsolescent supplementary file used the
|
||||
field as a proof-of-concept to allow <code>zic</code> to apply a given Rule
|
||||
line only to certain “types” of years within the specified range as
|
||||
dictated by the output of a separate script, such as: only years which would
|
||||
have a US presidential election, or only years which wouldn’t.
|
||||
|
||||
<p>The <code>SAVE</code> column contains the local (wall clock) offset from
|
||||
local standard time.
|
||||
This is usually either zero for standard time or one hour for daylight
|
||||
saving time; but there’s no reason, in principle, why it can’t
|
||||
take on other values.
|
||||
|
||||
<p>The <code>LETTER</code> (sometimes called <code>LETTER/S</code>)
|
||||
column can contain a variable
|
||||
part of the usual abbreviation of the time zone’s name, or it can just
|
||||
be a hyphen if there’s no variable part. For example, the abbreviation
|
||||
used in the central time zone will be either “CST” or “CDT”.
|
||||
The variable part is ‘S’ or ‘D’;
|
||||
and, sure enough, that’s just what we find in
|
||||
the <code>LETTER</code> column
|
||||
in the <code>Chicago</code> rules. More about this when we talk about
|
||||
“Zone” lines.
|
||||
|
||||
<p>One important thing to notice is that “Rule” lines
|
||||
want at once to be both <i>transitions</i> and <i>steady states</i>:
|
||||
<ul>
|
||||
<li>On the one hand, they represent transitions between standard and
|
||||
daylight saving time; and any number of Rule lines can be in effect
|
||||
during a given period (which will always be a non-empty set of
|
||||
contiguous calendar years).</li>
|
||||
<li>On the other hand, the <code>SAVE</code> and <code>LETTER</code>
|
||||
columns contain state that exists between transitions. More about this
|
||||
when we talk about the US rules.</li>
|
||||
</ul>
|
||||
|
||||
<p>In the example above, the transition to daylight saving time
|
||||
happened on the 13<small><sup>th</sup></small> of June in 1920, and on
|
||||
the last Sunday in March in 1921; but the return to standard time
|
||||
happened on the last Sunday in October in both of those
|
||||
years. Similarly, the rule for changing to daylight saving time was
|
||||
the same from 1922 to 1966; but the rule for returning to standard
|
||||
time changed in 1955. Got it?</p>
|
||||
|
||||
<p>OK, now for the somewhat more interesting “US” rules:</p>
|
||||
|
||||
<pre>#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
|
||||
</pre>
|
||||
<table>
|
||||
<tr>
|
||||
<th colspan="6">Reformatted a Bit</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>From</th>
|
||||
<th>To</th>
|
||||
<th colspan="2">On</th>
|
||||
<th>At</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">1918</td>
|
||||
<td rowspan="2">1919</td>
|
||||
<td rowspan="2">last Sunday</td>
|
||||
<td>in March</td>
|
||||
<td rowspan="3">02:00 local</td>
|
||||
<td>go to daylight saving time</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>in October</td>
|
||||
<td>return to standard time</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">1942 only</td>
|
||||
<td colspan="2">February 9<small><sup>th</sup></small></td>
|
||||
<td>go to “war time”</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" rowspan="2">1945 only</td>
|
||||
<td colspan="2">August 14<small><sup>th</sup></small></td>
|
||||
<td>23:00 <a href="https://en.wikipedia.org/wiki/Universal_Time">UT</a></td>
|
||||
<td>
|
||||
rename “war time” to “peace<br>time;”
|
||||
clocks don’t change
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">September 30<small><sup>th</sup></small></td>
|
||||
<td rowspan="9">02:00 local</td>
|
||||
<td rowspan="2">return to standard time</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">1967</td>
|
||||
<td>2006</td>
|
||||
<td rowspan="2">last Sunday</td>
|
||||
<td>in October</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1973</td>
|
||||
<td>in April</td>
|
||||
<td rowspan="6">go to daylight saving time</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">1974 only</td>
|
||||
<td colspan="2">January 6<small><sup>th</sup></small></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">1975 only</td>
|
||||
<td colspan="2">February 23<small><sup>rd</sup></small></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1976</td>
|
||||
<td>1986</td>
|
||||
<td>last Sunday</td>
|
||||
<td rowspan="2">in April</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1987</td>
|
||||
<td>2006</td>
|
||||
<td>first Sunday</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">2007</td>
|
||||
<td rowspan="2">present</td>
|
||||
<td colspan="2">second Sunday in March</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">first Sunday in November</td>
|
||||
<td>return to standard time</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>There are two interesting things to note here.</p>
|
||||
|
||||
<p>First, the time that something happens (in the <code>AT</code>
|
||||
column) is not necessarily the local (wall clock) time. The time can be
|
||||
suffixed with ‘s’ (for “standard”) to mean
|
||||
local standard time, different from local (wall clock) time when observing
|
||||
daylight saving time; or it can be suffixed with ‘g’,
|
||||
‘u’, or ‘z’, all three of which mean the
|
||||
standard time at the
|
||||
<a href="https://en.wikipedia.org/wiki/Prime_Meridian">prime meridian</a>.
|
||||
‘g’ stands for “<a
|
||||
href="https://en.wikipedia.org/wiki/Greenwich_Mean_Time">GMT</a>”;
|
||||
‘u’ stands for “<a
|
||||
href="https://en.wikipedia.org/wiki/Universal_Time">UT</a>” or “<a
|
||||
href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">UTC</a>”
|
||||
(whichever was official at the time); ‘z’ stands for the
|
||||
<a href="https://en.wikipedia.org/wiki/Nautical_time">nautical time zone</a>
|
||||
Z (a.k.a. “Zulu” which, in turn, stands for ‘Z’).
|
||||
The time can also be suffixed with ‘w’ meaning local (wall
|
||||
clock) time; but it usually isn’t because that’s the
|
||||
default.</p>
|
||||
|
||||
<p>Second, the day in the <code>ON</code> column, in addition to
|
||||
“<code>lastSun</code>” or a particular day of the month,
|
||||
can have the form, “<code>Sun>=</code><i>x</i>” or
|
||||
“<code>Sun<=</code><i>x</i>,” where <i>x</i> is a day
|
||||
of the month. For example, “<code>Sun>=8</code>” means
|
||||
“the first Sunday on or after the eighth of the month,” in
|
||||
other words, the second Sunday of the month. Furthermore, although
|
||||
there are no examples above, the weekday needn’t be
|
||||
“<code>Sun</code>” in either form, but can be the usual
|
||||
three-character English abbreviation for any day of the week.</p>
|
||||
|
||||
<p>And the US rules give us more examples of a couple of things
|
||||
already mentioned:</p>
|
||||
|
||||
<ul>
|
||||
<li>The rules for changing to and from daylight saving time are
|
||||
actually <i>different sets</i> of rules; and the two sets can change
|
||||
independently. Consider, for example, that the rule for the return to
|
||||
standard time stayed the same from 1967 to 2006; but the rule for the
|
||||
transition to daylight saving time changed several times in the same
|
||||
period. There can also be periods, 1946 to 1966 for example, when no
|
||||
rule from this group is in effect, and so either no transition
|
||||
happened in those years, or some other rule is in effect (perhaps a
|
||||
state or other more local rule).</li>
|
||||
|
||||
<li>The <code>SAVE</code> and <code>LETTER</code> columns
|
||||
contain <i>steady state</i>, not transitions. Consider, for example,
|
||||
the transition from “war time” to “peace time”
|
||||
that happened on August 14, 1945. The “1:00” in
|
||||
the <code>SAVE</code> column is <i>not</i> an instruction to advance
|
||||
the clock an hour. It means that clocks should <i>be</i> one hour
|
||||
ahead of standard time, which they already are because of the previous
|
||||
rule, so there should be no change.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>OK, now let’s look at a Zone record:</p>
|
||||
|
||||
<pre>
|
||||
#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
|
||||
</pre>
|
||||
<table>
|
||||
<tr>
|
||||
<th colspan="5">Columns Renamed</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">Standard Offset<br>
|
||||
from <a href="https://en.wikipedia.org/wiki/Prime_Meridian">Prime
|
||||
Meridian</a></th>
|
||||
<th rowspan="2">Daylight<br>Saving Time</th>
|
||||
<th rowspan="2">Abbreviation(s)</th>
|
||||
<th colspan="2">Ending at Local Time</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Time</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>−5:50:36</td>
|
||||
<td>not observed</td>
|
||||
<td>LMT</td>
|
||||
<td>1883-11-18</td>
|
||||
<td>12:09:24</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">−6:00:00</td>
|
||||
<td>US rules</td>
|
||||
<td rowspan="2">CST or CDT</td>
|
||||
<td>1920-01-01</td>
|
||||
<td>00:00:00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Chicago rules</td>
|
||||
<td>1936-03-01</td>
|
||||
<td rowspan="2">02:00:00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>−5:00:00</td>
|
||||
<td>not observed</td>
|
||||
<td>EST</td>
|
||||
<td>1936-11-15</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">−6:00:00</td>
|
||||
<td>Chicago rules</td>
|
||||
<td>CST or CDT</td>
|
||||
<td>1942-01-01</td>
|
||||
<td rowspan="3">00:00:00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>US rules</td>
|
||||
<td>CST, CWT or CPT</td>
|
||||
<td>1946-01-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Chicago rules</td>
|
||||
<td rowspan="2">CST or CDT</td>
|
||||
<td>1967-01-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>US rules</td>
|
||||
<td colspan="2">–</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>There are a couple of interesting differences between Zones and Rules.</p>
|
||||
|
||||
<p>First, and somewhat trivially, whereas Rules are considered to
|
||||
contain one or more records, a Zone is considered to be a single
|
||||
record with zero or more <i>continuation lines</i>. Thus, the keyword,
|
||||
“<code>Zone</code>,” and the zone name are not
|
||||
repeated. The last line is the one without anything in
|
||||
the <code>[UNTIL]</code> column.</p>
|
||||
|
||||
<p>Second, and more fundamentally, each line of a Zone represents a
|
||||
steady state, not a transition between states. The state exists from
|
||||
the date and time in the previous line’s <code>[UNTIL]</code>
|
||||
column up to the date and time in the current
|
||||
line’s <code>[UNTIL]</code> column. In other words, the date and
|
||||
time in the <code>[UNTIL]</code> column is the instant that separates
|
||||
this state from the next. Where that would be ambiguous because
|
||||
we’re setting our clocks back, the <code>[UNTIL]</code> column
|
||||
specifies the first occurrence of the instant. The state specified by
|
||||
the last line, the one without anything in the <code>[UNTIL]</code>
|
||||
column, continues to the present.</p>
|
||||
|
||||
<p>The first line typically specifies the mean solar time observed
|
||||
before the introduction of standard time. Since there’s no line before
|
||||
that, it has no beginning. <code>8-) </code> For some places near the <a
|
||||
href="https://en.wikipedia.org/wiki/International_Date_Line">International
|
||||
Date Line</a>, the first <i>two</i> lines will show solar times
|
||||
differing by 24 hours; this corresponds to a movement of the Date
|
||||
Line. For example:</p>
|
||||
|
||||
<pre>
|
||||
#Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone America/Juneau 15:02:19 - LMT 1867 Oct 18
|
||||
-8:57:41 - LMT ...
|
||||
</pre>
|
||||
|
||||
<p>When Alaska was purchased from Russia in 1867, the Date Line moved
|
||||
from the Alaska/Canada border to the Bering Strait; and the time in
|
||||
Alaska was then 24 hours earlier than it had
|
||||
been. <code><aside></code>(6 October in the Julian calendar,
|
||||
which Russia was still using then for religious reasons, was followed
|
||||
by <i>a second instance of the same day with a different name</i>, 18
|
||||
October in the Gregorian calendar. Isn’t civil time
|
||||
wonderful? <code>8-)</code>)<code></aside></code></p>
|
||||
|
||||
<p>The abbreviation, “LMT” stands for “local mean
|
||||
time”, which is an invention of
|
||||
the <a href="https://en.wikipedia.org/wiki/Tz_database">tz
|
||||
database</a> and was probably never actually used during the
|
||||
period. Furthermore, the value is almost certainly wrong except in the
|
||||
archetypal place after which the zone is named. (The tz database
|
||||
usually doesn’t provide a separate Zone record for places where
|
||||
nothing significant happened after 1970.)</p>
|
||||
|
||||
<p>The <code>RULES</code> column tells us whether daylight saving time is being observed:
|
||||
<ul>
|
||||
<li>A hyphen, a kind of null value, means that we have not set our
|
||||
clocks ahead of standard time.</li>
|
||||
|
||||
<li>An amount of time (usually but not necessarily “1:00”
|
||||
meaning one hour) means that we have set our clocks ahead by that
|
||||
amount.</li>
|
||||
|
||||
<li>Some alphabetic string means that we <i>might have</i> set our
|
||||
clocks ahead; and we need to check the rule the name of which is the
|
||||
given alphabetic string.</li>
|
||||
</ul>
|
||||
|
||||
<p>An example of a specific amount of time is:</p>
|
||||
<pre>
|
||||
#Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Pacific/Honolulu ... 1933 Apr 30 2:00
|
||||
-10:30 1:00 HDT 1933 May 21 12:00
|
||||
...
|
||||
</pre>
|
||||
|
||||
<p>Hawaii tried daylight saving time for three weeks in 1933 and
|
||||
decided they didn’t like it. <code>8-) </code>Note that
|
||||
the <code>STDOFF</code> column always contains the standard time
|
||||
offset, so the local (wall clock) time during this period was GMT −
|
||||
10:30 + 1:00 = GMT − 9:30.</p>
|
||||
|
||||
<p>The <code>FORMAT</code> column specifies the usual abbreviation of
|
||||
the time zone name. It should have one of four forms:</p>
|
||||
<ul>
|
||||
|
||||
<li>a time zone abbreviation that is a string of three or more
|
||||
characters that are either ASCII alphanumerics,
|
||||
“<code>+</code>”, or “<code>-</code>”</li>
|
||||
|
||||
<li>the string “%z”, in which case the
|
||||
“<code>%z</code>” will be replaced by a numeric time zone
|
||||
abbreviation</li>
|
||||
|
||||
<li>a pair of time zone abbreviations separated by a slash
|
||||
(‘<code>/</code>’), in which case the first string is the
|
||||
abbreviation for the standard time name and the second string is the
|
||||
abbreviation for the daylight saving time name</li>
|
||||
|
||||
<li>a string containing “<code>%s</code>”, in which case
|
||||
the “<code>%s</code>” will be replaced by the text in the
|
||||
appropriate Rule’s <code>LETTER</code> column, and the resulting
|
||||
string should be a time zone abbreviation</li>
|
||||
</ul>
|
||||
|
||||
<p>The last two make sense only if there’s a named rule in effect.</p>
|
||||
|
||||
<p>An example of a slash is:</p>
|
||||
<pre>
|
||||
#Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||
Zone Europe/London ... 1996
|
||||
0:00 EU GMT/BST
|
||||
</pre>
|
||||
|
||||
<p>The current time in the UK is called either Greenwich mean time or
|
||||
British summer time.</p>
|
||||
|
||||
<p>One wrinkle, not fully explained in <code>zic.8.txt</code>, is what
|
||||
happens when switching to a named rule. To what values should
|
||||
the <code>SAVE</code> and <code>LETTER</code> data be initialized?</p>
|
||||
|
||||
<ul>
|
||||
<li>If at least one transition has happened, use
|
||||
the <code>SAVE</code> and <code>LETTER</code> data from the most
|
||||
recent.</li>
|
||||
|
||||
<li>If switching to a named rule before any transition has happened,
|
||||
assume standard time (<code>SAVE</code> zero), and use
|
||||
the <code>LETTER</code> data from the earliest transition with
|
||||
a <code>SAVE</code> of zero.
|
||||
|
||||
</ul>
|
||||
|
||||
<p>And three last things about the <code>FORMAT</code> column:</p>
|
||||
<ul>
|
||||
|
||||
<li>The <a href="https://en.wikipedia.org/wiki/Tz_database">tz
|
||||
database</a> gives abbreviations for time zones
|
||||
in popular English-language usage. For
|
||||
example, the last line in
|
||||
<code>Zone</code> <code>Pacific/Honolulu</code> (shown below) gives
|
||||
“HST” for “Hawaii standard time” even though the
|
||||
<a href="https://www.law.cornell.edu/uscode/text/15/263">legal</a>
|
||||
name for that time zone is “Hawaii–Aleutian standard time”.
|
||||
This author has read that there are also some places in Australia where
|
||||
popular time zone names differ from the legal ones.
|
||||
|
||||
<li>No attempt is made to <a
|
||||
href="https://en.wikipedia.org/wiki/Internationalization_and_localization">localize</a>
|
||||
the abbreviations. They are intended to be the values returned through the
|
||||
<code>"%Z"</code> format specifier to
|
||||
<a href="https://en.wikipedia.org/wiki/C_(programming_language)">C</a>’s
|
||||
<a href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/strftime.html"><code>strftime</code></a>
|
||||
function in the
|
||||
<a href="https://kirste.userpage.fu-berlin.de/chemnet/use/info/libc/libc_19.html#SEC324">“C” locale</a>.
|
||||
|
||||
<li>If there is no generally accepted abbreviation for a time zone,
|
||||
a numeric offset is used instead, e.g., <code>+07</code> for 7 hours
|
||||
ahead of Greenwich. By convention, <code>-00</code> is used in a
|
||||
zone while uninhabited, where the offset is zero but in some sense
|
||||
the true offset is undefined.
|
||||
</ul>
|
||||
|
||||
<p>As a final example, here’s the complete history for Hawaii:</p>
|
||||
|
||||
<pre># 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
|
||||
</pre>
|
||||
<table>
|
||||
<tr>
|
||||
<th colspan="6">What We Infer</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">Wall-Clock<br>Offset from<br>Prime Meridian</th>
|
||||
<th rowspan="2">Adjust<br>Clocks</th>
|
||||
<th colspan="2">Time Zone</th>
|
||||
<th colspan="2">Ending at Local Time</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Abbrv.</th>
|
||||
<th>Name</th>
|
||||
<th>Date</th>
|
||||
<th>Time</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>−10:31:26</td>
|
||||
<td>–</td>
|
||||
<td>LMT</td>
|
||||
<td>local mean time</td>
|
||||
<td>1896-01-13</td>
|
||||
<td>12:00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>−10:30</td>
|
||||
<td>+0:01:26</td>
|
||||
<td>HST</td>
|
||||
<td>Hawaii standard time</td>
|
||||
<td>1933-04-30</td>
|
||||
<td>02:00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>−9:30</td>
|
||||
<td>+1:00</td>
|
||||
<td>HDT</td>
|
||||
<td>Hawaii daylight time</td>
|
||||
<td>1933-05-21</td>
|
||||
<td>12:00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>−10:30¹</td>
|
||||
<td>−1:00¹</td>
|
||||
<td>HST¹</td>
|
||||
<td>Hawaii standard time</td>
|
||||
<td>1942-02-09</td>
|
||||
<td>02:00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">−9:30</td>
|
||||
<td>+1:00</td>
|
||||
<td>HWT</td>
|
||||
<td>Hawaii war time</td>
|
||||
<td>1945-08-14</td>
|
||||
<td>13:30²</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>HPT</td>
|
||||
<td>Hawaii peace time</td>
|
||||
<td>1945-09-30</td>
|
||||
<td rowspan="2">02:00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>−10:30</td>
|
||||
<td>−1:00</td>
|
||||
<td rowspan="2">HST</td>
|
||||
<td rowspan="2">Hawaii standard time</td>
|
||||
<td>1947-06-08</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>−10:00³</td>
|
||||
<td>+0:30³</td>
|
||||
<td colspan="2">–</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6" class="footnote">
|
||||
¹Switching to US rules...most recent transition (in 1919) was to standard time
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6" class="footnote">
|
||||
²23:00 <a href="https://en.wikipedia.org/wiki/Universal_Time">UT</a>
|
||||
+ (−9:30) = 13:30 local
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6" class="footnote">
|
||||
³Since <a href="https://en.wikipedia.org/wiki/ISO_8601">1947-06-08T12:30Z</a>,
|
||||
the civil time in Hawaii has been
|
||||
<a href="https://en.wikipedia.org/wiki/Universal_Time">UT</a>/<a href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">UTC</a>
|
||||
−10:00 year-round.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>There will be a short quiz later. <code>8-)</code></p>
|
||||
|
||||
<hr>
|
||||
<address>
|
||||
This web page is in the public domain, so clarified as of
|
||||
2015-10-20 by Bill Seymour.
|
||||
<br>
|
||||
All suggestions and corrections will be welcome; all flames will be amusing.
|
||||
Mail to was at pobox dot com.
|
||||
</address>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue