Merge branch 'ent-10625-problemas-en-graficas-de-informes-con-las-timezones' into 'develop'
Ent 10625 problemas en graficas de informes con las timezones See merge request artica/pandorafms!5816
This commit is contained in:
commit
504fb8ccd2
|
@ -943,12 +943,18 @@ function pandoraFlotSlicebar(
|
||||||
|
|
||||||
// Format functions
|
// Format functions
|
||||||
function xFormatter(v) {
|
function xFormatter(v) {
|
||||||
var ct = new Date();
|
// var ct = new Date();
|
||||||
|
var ct = new timezoneJS.Date();
|
||||||
|
ct.setTimezone(phpTimezone);
|
||||||
|
|
||||||
var currentTime = ct.getTime();
|
var currentTime = ct.getTime();
|
||||||
|
|
||||||
var diffDates = (currentTime - 1000 * datelimit) / 1000;
|
var diffDates = (currentTime - 1000 * datelimit) / 1000;
|
||||||
|
|
||||||
var d = new Date(1000 * (v + datelimit));
|
// var d = new Date(1000 * (v + datelimit));
|
||||||
|
var d = new timezoneJS.Date(1000 * (v + datelimit));
|
||||||
|
d.setTimezone(phpTimezone);
|
||||||
|
|
||||||
var monthNames = [
|
var monthNames = [
|
||||||
"Jan",
|
"Jan",
|
||||||
"Feb",
|
"Feb",
|
||||||
|
@ -2048,7 +2054,7 @@ function pandoraFlotArea(
|
||||||
xaxes: [
|
xaxes: [
|
||||||
{
|
{
|
||||||
mode: "time",
|
mode: "time",
|
||||||
timezone: "browser",
|
timezone: phpTimezone,
|
||||||
localTimezone: true
|
localTimezone: true
|
||||||
//tickSize: [maxticks, 'hour']
|
//tickSize: [maxticks, 'hour']
|
||||||
}
|
}
|
||||||
|
@ -2148,7 +2154,7 @@ function pandoraFlotArea(
|
||||||
xaxes: [
|
xaxes: [
|
||||||
{
|
{
|
||||||
mode: "time",
|
mode: "time",
|
||||||
timezone: "browser",
|
timezone: phpTimezone,
|
||||||
localTimezone: true
|
localTimezone: true
|
||||||
//tickSize: [maxticks, 'hour']
|
//tickSize: [maxticks, 'hour']
|
||||||
}
|
}
|
||||||
|
@ -2247,7 +2253,7 @@ function pandoraFlotArea(
|
||||||
xaxes: [
|
xaxes: [
|
||||||
{
|
{
|
||||||
mode: "time",
|
mode: "time",
|
||||||
timezone: "browser",
|
timezone: phpTimezone,
|
||||||
localTimezone: true,
|
localTimezone: true,
|
||||||
tickSize: [maxticks_zoom, "hour"]
|
tickSize: [maxticks_zoom, "hour"]
|
||||||
}
|
}
|
||||||
|
@ -2294,7 +2300,7 @@ function pandoraFlotArea(
|
||||||
xaxes: [
|
xaxes: [
|
||||||
{
|
{
|
||||||
mode: "time",
|
mode: "time",
|
||||||
timezone: "browser",
|
timezone: phpTimezone,
|
||||||
localTimezone: true,
|
localTimezone: true,
|
||||||
tickSize: [maxticks_zoom, "hour"]
|
tickSize: [maxticks_zoom, "hour"]
|
||||||
}
|
}
|
||||||
|
@ -2356,7 +2362,11 @@ function pandoraFlotArea(
|
||||||
|
|
||||||
$("#timestamp_" + graph_id).show();
|
$("#timestamp_" + graph_id).show();
|
||||||
|
|
||||||
var d = new Date(pos.x);
|
// var d = new Date(pos.x);
|
||||||
|
var d = new timezoneJS.Date();
|
||||||
|
d.setTimezone(phpTimezone);
|
||||||
|
d.setTime(pos.x);
|
||||||
|
|
||||||
var monthNames = [
|
var monthNames = [
|
||||||
"Jan",
|
"Jan",
|
||||||
"Feb",
|
"Feb",
|
||||||
|
|
|
@ -36,9 +36,16 @@ function include_javascript_dependencies_flot_graph($return=false, $mobile=false
|
||||||
<script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/mobile/include/javascript/jquery.mobile-1.5.0-rc1.js').'"></script>';
|
<script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/mobile/include/javascript/jquery.mobile-1.5.0-rc1.js').'"></script>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$output .= '
|
||||||
|
<script type="text/javascript">
|
||||||
|
var phpTimezone = "'.date_default_timezone_get().'";
|
||||||
|
var configHomeurl = "'.$config['homeurl'].'";
|
||||||
|
</script>';
|
||||||
|
|
||||||
// NOTE: jquery.flot.threshold is not te original file. Is patched to allow multiple thresholds and filled area
|
// NOTE: jquery.flot.threshold is not te original file. Is patched to allow multiple thresholds and filled area
|
||||||
$output .= '
|
$output .= '
|
||||||
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/include/graphs/flot/excanvas.js').'"></script><![endif]-->
|
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/include/graphs/flot/excanvas.js').'"></script><![endif]-->
|
||||||
|
<script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/include/javascript/timezone/src/date.js').'"></script>
|
||||||
<script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/include/graphs/flot/jquery.flot.min.js').'"></script>
|
<script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/include/graphs/flot/jquery.flot.min.js').'"></script>
|
||||||
<script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/include/graphs/flot/jquery.flot.time.js').'"></script>
|
<script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/include/graphs/flot/jquery.flot.time.js').'"></script>
|
||||||
<script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/include/graphs/flot/jquery.flot.pie.js').'"></script>
|
<script language="javascript" type="text/javascript" src="'.ui_get_full_url($metaconsole_hack.'/include/graphs/flot/jquery.flot.pie.js').'"></script>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,97 @@
|
||||||
|
# Contributing to the tz code and data
|
||||||
|
|
||||||
|
Please do not create issues or pull requests on GitHub, as the
|
||||||
|
proper procedure for proposing and distributing patches is via
|
||||||
|
email as described below.
|
||||||
|
|
||||||
|
The time zone database is by no means authoritative: governments
|
||||||
|
change timekeeping rules erratically and sometimes with little
|
||||||
|
warning, the data entries do not cover all of civil time before
|
||||||
|
1970, and undoubtedly errors remain in the code and data. Feel
|
||||||
|
free to fill gaps or fix mistakes, and please email improvements
|
||||||
|
to <tz@iana.org> for use in the future. In your email, please give
|
||||||
|
reliable sources that reviewers can check.
|
||||||
|
|
||||||
|
## Contributing technical changes
|
||||||
|
|
||||||
|
To email small changes, please run a POSIX shell command like
|
||||||
|
'diff -u old/europe new/europe >myfix.patch', and attach
|
||||||
|
'myfix.patch' to the email.
|
||||||
|
|
||||||
|
For more-elaborate or possibly controversial changes,
|
||||||
|
such as renaming, adding or removing zones, please read
|
||||||
|
"Theory and pragmatics of the tz code and data"
|
||||||
|
<https://www.iana.org/time-zones/repository/theory.html>.
|
||||||
|
It is also good to browse the mailing list archives
|
||||||
|
<https://mm.icann.org/pipermail/tz/> for examples of patches that tend
|
||||||
|
to work well. Additions to data should contain commentary citing
|
||||||
|
reliable sources as justification. Citations should use "https:" URLs
|
||||||
|
if available.
|
||||||
|
|
||||||
|
For changes that fix sensitive security-related bugs, please see the
|
||||||
|
distribution's 'SECURITY' file.
|
||||||
|
|
||||||
|
Please submit changes against either the latest release
|
||||||
|
<https://www.iana.org/time-zones> or the main branch of the development
|
||||||
|
repository. The latter is preferred.
|
||||||
|
|
||||||
|
## Sample Git workflow for developing contributions
|
||||||
|
|
||||||
|
If you use Git the following workflow may be helpful:
|
||||||
|
|
||||||
|
* Copy the development repository.
|
||||||
|
|
||||||
|
git clone https://github.com/eggert/tz.git
|
||||||
|
cd tz
|
||||||
|
|
||||||
|
* Get current with the main branch.
|
||||||
|
|
||||||
|
git checkout main
|
||||||
|
git pull
|
||||||
|
|
||||||
|
* Switch to a new branch for the changes. Choose a different
|
||||||
|
branch name for each change set.
|
||||||
|
|
||||||
|
git checkout -b mybranch
|
||||||
|
|
||||||
|
* Sleuth by using 'git blame'. For example, when fixing data for
|
||||||
|
Africa/Sao_Tome, if the command 'git blame africa' outputs a line
|
||||||
|
'2951fa3b (Paul Eggert 2018-01-08 09:03:13 -0800 1068) Zone
|
||||||
|
Africa/Sao_Tome 0:26:56 - LMT 1884', commit 2951fa3b should
|
||||||
|
provide some justification for the 'Zone Africa/Sao_Tome' line.
|
||||||
|
|
||||||
|
* Edit source files. Include commentary that justifies the
|
||||||
|
changes by citing reliable sources.
|
||||||
|
|
||||||
|
* Debug the changes, e.g.:
|
||||||
|
|
||||||
|
make check
|
||||||
|
make install
|
||||||
|
./zdump -v America/Los_Angeles
|
||||||
|
|
||||||
|
* For each separable change, commit it in the new branch, e.g.:
|
||||||
|
|
||||||
|
git add northamerica
|
||||||
|
git commit
|
||||||
|
|
||||||
|
See recent 'git log' output for the commit-message style.
|
||||||
|
|
||||||
|
* Create patch files 0001-..., 0002-..., ...
|
||||||
|
|
||||||
|
git format-patch main
|
||||||
|
|
||||||
|
* After reviewing the patch files, send the patches to <tz@iana.org>
|
||||||
|
for others to review.
|
||||||
|
|
||||||
|
git send-email main
|
||||||
|
|
||||||
|
For an archived example of such an email, see
|
||||||
|
"[PROPOSED] Fix off-by-1 error for Jamaica and T&C before 1913"
|
||||||
|
<https://mm.icann.org/pipermail/tz/2018-February/026122.html>.
|
||||||
|
|
||||||
|
* Start anew by getting current with the main branch again
|
||||||
|
(the second step above).
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
This file is in the public domain.
|
|
@ -0,0 +1,5 @@
|
||||||
|
Unless specified below, all files in the tz code and data (including
|
||||||
|
this LICENSE file) are in the public domain.
|
||||||
|
|
||||||
|
If the files date.c, newstrftime.3, and strftime.c are present, they
|
||||||
|
contain material derived from BSD and use the BSD 3-clause license.
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,52 @@
|
||||||
|
README for the tz distribution
|
||||||
|
|
||||||
|
"Where do I set the hands of the clock?" -- Les Tremayne as The King
|
||||||
|
"Oh that--you can set them any place you want." -- Frank Baxter as The Scientist
|
||||||
|
(from the Bell System film "About Time")
|
||||||
|
|
||||||
|
The Time Zone Database (called tz, tzdb or zoneinfo) contains code and
|
||||||
|
data that represent the history of local time for many representative
|
||||||
|
locations around the globe. It is updated periodically to reflect
|
||||||
|
changes made by political bodies to time zone boundaries, UTC offsets,
|
||||||
|
and daylight-saving rules.
|
||||||
|
|
||||||
|
See <https://www.iana.org/time-zones/repository/tz-link.html> or the
|
||||||
|
file tz-link.html for how to acquire the code and data. Once acquired,
|
||||||
|
read the comments in the file 'Makefile' and make any changes needed
|
||||||
|
to make things right for your system, especially if you are using some
|
||||||
|
platform other than GNU/Linux. Then run the following commands,
|
||||||
|
substituting your desired installation directory for "$HOME/tzdir":
|
||||||
|
|
||||||
|
make TOPDIR=$HOME/tzdir install
|
||||||
|
$HOME/tzdir/usr/bin/zdump -v America/Los_Angeles
|
||||||
|
|
||||||
|
See the file tz-how-to.html for examples of how to read the data files.
|
||||||
|
|
||||||
|
This database of historical local time information has several goals:
|
||||||
|
|
||||||
|
* Provide a compendium of data about the history of civil time that
|
||||||
|
is useful even if not 100% accurate.
|
||||||
|
|
||||||
|
* Give an idea of the variety of local time rules that have existed
|
||||||
|
in the past and thus may be expected in the future.
|
||||||
|
|
||||||
|
* Test the generality of the local time rule description system.
|
||||||
|
|
||||||
|
The information in the time zone data files is by no means authoritative;
|
||||||
|
fixes and enhancements are welcome. Please see the file CONTRIBUTING
|
||||||
|
for details.
|
||||||
|
|
||||||
|
Thanks to these Time Zone Caballeros who've made major contributions to the
|
||||||
|
time conversion package: Keith Bostic; Bob Devine; Paul Eggert; Robert Elz;
|
||||||
|
Guy Harris; Mark Horton; John Mackin; and Bradley White. Thanks also to
|
||||||
|
Michael Bloom, Art Neilson, Stephen Prince, John Sovereign, and Frank Wales
|
||||||
|
for testing work, and to Gwillim Law for checking local mean time data.
|
||||||
|
Thanks in particular to Arthur David Olson, the project's founder and first
|
||||||
|
maintainer, to whom the time zone community owes the greatest debt of all.
|
||||||
|
None of them are responsible for remaining errors.
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
This file is in the public domain, so clarified as of 2009-05-17 by
|
||||||
|
Arthur David Olson. The other files in this distribution are either
|
||||||
|
public domain or BSD licensed; see the file LICENSE for details.
|
|
@ -0,0 +1,15 @@
|
||||||
|
Please report any sensitive security-related bugs via email to the
|
||||||
|
tzdb designated coordinators, currently Paul Eggert
|
||||||
|
<eggert@cs.ucla.edu> and Tim Parenti <tim@timtimeonline.com>.
|
||||||
|
Put "tzdb security" at the start of your email's subject line.
|
||||||
|
We prefer communications to be in English.
|
||||||
|
|
||||||
|
You should receive a response within a week. If not, please follow up
|
||||||
|
via email to make sure we received your original message.
|
||||||
|
|
||||||
|
If we confirm the bug, we plan to notify affected third-party services
|
||||||
|
or software that we know about, prepare an advisory, commit fixes to
|
||||||
|
the main development branch as quickly as is practical, and finally
|
||||||
|
publish the advisory on tz@iana.org. As with all tzdb contributions,
|
||||||
|
we give credit to security contributors unless they wish to remain
|
||||||
|
anonymous.
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,309 @@
|
||||||
|
# tzdb data for Antarctica and environs
|
||||||
|
|
||||||
|
# This file is in the public domain, so clarified as of
|
||||||
|
# 2009-05-17 by Arthur David Olson.
|
||||||
|
|
||||||
|
# From Paul Eggert (1999-11-15):
|
||||||
|
# To keep things manageable, we list only locations occupied year-round; see
|
||||||
|
# COMNAP - Stations and Bases
|
||||||
|
# http://www.comnap.aq/comnap/comnap.nsf/P/Stations/
|
||||||
|
# and
|
||||||
|
# Summary of the Peri-Antarctic Islands (1998-07-23)
|
||||||
|
# http://www.spri.cam.ac.uk/bob/periant.htm
|
||||||
|
# for information.
|
||||||
|
# Unless otherwise specified, we have no time zone information.
|
||||||
|
|
||||||
|
# FORMAT is '-00' and STDOFF is 0 for locations while uninhabited.
|
||||||
|
|
||||||
|
# Argentina - year-round bases
|
||||||
|
# Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05
|
||||||
|
# Carlini, Potter Cove, King George Island, -6414-0602320, since 1982-01
|
||||||
|
# Esperanza, Hope Bay, -6323-05659, since 1952-12-17
|
||||||
|
# Marambio, -6414-05637, since 1969-10-29
|
||||||
|
# Orcadas, Laurie I, -6016-04444, since 1904-02-22
|
||||||
|
# San Martín, Barry I, -6808-06706, since 1951-03-21
|
||||||
|
# (except 1960-03 / 1976-03-21)
|
||||||
|
|
||||||
|
# Australia - territories
|
||||||
|
# Heard Island, McDonald Islands (uninhabited)
|
||||||
|
# previously sealers and scientific personnel wintered
|
||||||
|
# Margaret Turner reports
|
||||||
|
# https://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html
|
||||||
|
# (1999-09-30) that they're UT +05, with no DST;
|
||||||
|
# presumably this is when they have visitors.
|
||||||
|
#
|
||||||
|
# year-round bases
|
||||||
|
# Casey, Bailey Peninsula, -6617+11032, since 1969
|
||||||
|
# Davis, Vestfold Hills, -6835+07759, since 1957-01-13
|
||||||
|
# (except 1964-11 - 1969-02)
|
||||||
|
# Mawson, Holme Bay, -6736+06253, since 1954-02-13
|
||||||
|
|
||||||
|
# From Steffen Thorsen (2009-03-11):
|
||||||
|
# Three Australian stations in Antarctica have changed their time zone:
|
||||||
|
# Casey moved from UTC+8 to UTC+11
|
||||||
|
# Davis moved from UTC+7 to UTC+5
|
||||||
|
# Mawson moved from UTC+6 to UTC+5
|
||||||
|
# The changes occurred on 2009-10-18 at 02:00 (local times).
|
||||||
|
#
|
||||||
|
# Government source: (Australian Antarctic Division)
|
||||||
|
# http://www.aad.gov.au/default.asp?casid=37079
|
||||||
|
#
|
||||||
|
# We have more background information here:
|
||||||
|
# https://www.timeanddate.com/news/time/antarctica-new-times.html
|
||||||
|
|
||||||
|
# From Steffen Thorsen (2010-03-10):
|
||||||
|
# We got these changes from the Australian Antarctic Division: ...
|
||||||
|
#
|
||||||
|
# - Casey station reverted to its normal time of UTC+8 on 5 March 2010.
|
||||||
|
# The change to UTC+11 is being considered as a regular summer thing but
|
||||||
|
# has not been decided yet.
|
||||||
|
#
|
||||||
|
# - Davis station will revert to its normal time of UTC+7 at 10 March 2010
|
||||||
|
# 20:00 UTC.
|
||||||
|
#
|
||||||
|
# - Mawson station stays on UTC+5.
|
||||||
|
#
|
||||||
|
# Background:
|
||||||
|
# https://www.timeanddate.com/news/time/antartica-time-changes-2010.html
|
||||||
|
|
||||||
|
# From Steffen Thorsen (2016-10-28):
|
||||||
|
# Australian Antarctica Division informed us that Casey changed time
|
||||||
|
# zone to UTC+11 in "the morning of 22nd October 2016".
|
||||||
|
|
||||||
|
# From Steffen Thorsen (2020-10-02, as corrected):
|
||||||
|
# Based on information we have received from the Australian Antarctic
|
||||||
|
# Division, Casey station and Macquarie Island station will move to Tasmanian
|
||||||
|
# daylight savings time on Sunday 4 October. This will take effect from 0001
|
||||||
|
# hrs on Sunday 4 October 2020 and will mean Casey and Macquarie Island will
|
||||||
|
# be on the same time zone as Hobart. Some past dates too for this 3 hour
|
||||||
|
# time change back and forth between UTC+8 and UTC+11 for Casey:
|
||||||
|
# - 2018 Oct 7 4:00 - 2019 Mar 17 3:00 - 2019 Oct 4 3:00 - 2020 Mar 8 3:00
|
||||||
|
# and now - 2020 Oct 4 0:01
|
||||||
|
|
||||||
|
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||||
|
Zone Antarctica/Casey 0 - -00 1969
|
||||||
|
8:00 - +08 2009 Oct 18 2:00
|
||||||
|
11:00 - +11 2010 Mar 5 2:00
|
||||||
|
8:00 - +08 2011 Oct 28 2:00
|
||||||
|
11:00 - +11 2012 Feb 21 17:00u
|
||||||
|
8:00 - +08 2016 Oct 22
|
||||||
|
11:00 - +11 2018 Mar 11 4:00
|
||||||
|
8:00 - +08 2018 Oct 7 4:00
|
||||||
|
11:00 - +11 2019 Mar 17 3:00
|
||||||
|
8:00 - +08 2019 Oct 4 3:00
|
||||||
|
11:00 - +11 2020 Mar 8 3:00
|
||||||
|
8:00 - +08 2020 Oct 4 0:01
|
||||||
|
11:00 - +11
|
||||||
|
Zone Antarctica/Davis 0 - -00 1957 Jan 13
|
||||||
|
7:00 - +07 1964 Nov
|
||||||
|
0 - -00 1969 Feb
|
||||||
|
7:00 - +07 2009 Oct 18 2:00
|
||||||
|
5:00 - +05 2010 Mar 10 20:00u
|
||||||
|
7:00 - +07 2011 Oct 28 2:00
|
||||||
|
5:00 - +05 2012 Feb 21 20:00u
|
||||||
|
7:00 - +07
|
||||||
|
Zone Antarctica/Mawson 0 - -00 1954 Feb 13
|
||||||
|
6:00 - +06 2009 Oct 18 2:00
|
||||||
|
5:00 - +05
|
||||||
|
# References:
|
||||||
|
# Casey Weather (1998-02-26)
|
||||||
|
# http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html
|
||||||
|
# Davis Station, Antarctica (1998-02-26)
|
||||||
|
# http://www.antdiv.gov.au/aad/exop/sfo/davis/video.html
|
||||||
|
# Mawson Station, Antarctica (1998-02-25)
|
||||||
|
# http://www.antdiv.gov.au/aad/exop/sfo/mawson/video.html
|
||||||
|
|
||||||
|
# Belgium - year-round base
|
||||||
|
# Princess Elisabeth, Queen Maud Land, -713412+0231200, since 2007
|
||||||
|
|
||||||
|
# Brazil - year-round base
|
||||||
|
# Ferraz, King George Island, -6205+05824, since 1983/4
|
||||||
|
|
||||||
|
# Bulgaria - year-round base
|
||||||
|
# St. Kliment Ohridski, Livingston Island, -623829-0602153, since 1988
|
||||||
|
|
||||||
|
# Chile - year-round bases and towns
|
||||||
|
# Escudero, South Shetland Is, -621157-0585735, since 1994
|
||||||
|
# Frei Montalva, King George Island, -6214-05848, since 1969-03-07
|
||||||
|
# O'Higgins, Antarctic Peninsula, -6319-05704, since 1948-02
|
||||||
|
# Prat, -6230-05941
|
||||||
|
# Villa Las Estrellas (a town), around the Frei base, since 1984-04-09
|
||||||
|
# These locations employ Region of Magallanes time; use
|
||||||
|
# TZ='America/Punta_Arenas'.
|
||||||
|
|
||||||
|
# China - year-round bases
|
||||||
|
# Great Wall, King George Island, -6213-05858, since 1985-02-20
|
||||||
|
# Zhongshan, Larsemann Hills, Prydz Bay, -6922+07623, since 1989-02-26
|
||||||
|
|
||||||
|
# France - year-round bases (also see "France & Italy")
|
||||||
|
#
|
||||||
|
# From Antoine Leca (1997-01-20):
|
||||||
|
# Time data entries are from Nicole Pailleau at the IFRTP
|
||||||
|
# (French Institute for Polar Research and Technology).
|
||||||
|
# She confirms that French Southern Territories and Terre Adélie bases
|
||||||
|
# don't observe daylight saving time, even if Terre Adélie supplies came
|
||||||
|
# from Tasmania.
|
||||||
|
#
|
||||||
|
# French Southern Territories with year-round inhabitants
|
||||||
|
#
|
||||||
|
# Alfred Faure, Possession Island, Crozet Islands, -462551+0515152, since 1964;
|
||||||
|
# sealing & whaling stations operated variously 1802/1911+;
|
||||||
|
# see Asia/Dubai.
|
||||||
|
#
|
||||||
|
# Martin-de-Viviès, Amsterdam Island, -374105+0773155, since 1950
|
||||||
|
# Port-aux-Français, Kerguelen Islands, -492110+0701303, since 1951;
|
||||||
|
# whaling & sealing station operated 1908/1914, 1920/1929, and 1951/1956
|
||||||
|
#
|
||||||
|
# St Paul Island - near Amsterdam, uninhabited
|
||||||
|
# fishing stations operated variously 1819/1931
|
||||||
|
#
|
||||||
|
# Kerguelen - see Indian/Maldives.
|
||||||
|
#
|
||||||
|
# year-round base in the main continent
|
||||||
|
# Dumont d'Urville - see Pacific/Port_Moresby.
|
||||||
|
|
||||||
|
# France & Italy - year-round base
|
||||||
|
# Concordia, -750600+1232000, since 2005
|
||||||
|
|
||||||
|
# Germany - year-round base
|
||||||
|
# Neumayer III, -704080-0081602, since 2009
|
||||||
|
|
||||||
|
# India - year-round bases
|
||||||
|
# Bharati, -692428+0761114, since 2012
|
||||||
|
# Maitri, -704558+0114356, since 1989
|
||||||
|
|
||||||
|
# Italy - year-round base (also see "France & Italy")
|
||||||
|
# Zuchelli, Terra Nova Bay, -744140+1640647, since 1986
|
||||||
|
|
||||||
|
# Japan - year-round bases
|
||||||
|
# See Asia/Riyadh.
|
||||||
|
|
||||||
|
# S Korea - year-round base
|
||||||
|
# Jang Bogo, Terra Nova Bay, -743700+1641205 since 2014
|
||||||
|
# King Sejong, King George Island, -6213-05847, since 1988
|
||||||
|
|
||||||
|
# New Zealand - claims
|
||||||
|
# Balleny Islands (never inhabited)
|
||||||
|
# Scott Island (never inhabited)
|
||||||
|
#
|
||||||
|
# year-round base
|
||||||
|
# Scott Base, Ross Island, since 1957-01.
|
||||||
|
# See Pacific/Auckland.
|
||||||
|
|
||||||
|
# Norway - territories
|
||||||
|
# Bouvet (never inhabited)
|
||||||
|
#
|
||||||
|
# claims
|
||||||
|
# Peter I Island (never inhabited)
|
||||||
|
#
|
||||||
|
# year-round base
|
||||||
|
# Troll, Queen Maud Land, -720041+0023206, since 2005-02-12
|
||||||
|
#
|
||||||
|
# From Paul-Inge Flakstad (2014-03-10):
|
||||||
|
# I recently had a long dialog about this with the developer of timegenie.com.
|
||||||
|
# In the absence of specific dates, he decided to choose some likely ones:
|
||||||
|
# GMT +1 - From March 1 to the last Sunday in March
|
||||||
|
# GMT +2 - From the last Sunday in March until the last Sunday in October
|
||||||
|
# GMT +1 - From the last Sunday in October until November 7
|
||||||
|
# GMT +0 - From November 7 until March 1
|
||||||
|
# The dates for switching to and from UTC+0 will probably not be absolutely
|
||||||
|
# correct, but they should be quite close to the actual dates.
|
||||||
|
#
|
||||||
|
# From Paul Eggert (2014-03-21):
|
||||||
|
# The CET-switching Troll rules require zic from tz 2014b or later, so as
|
||||||
|
# suggested by Bengt-Inge Larsson comment them out for now, and approximate
|
||||||
|
# with only UTC and CEST. Uncomment them when 2014b is more prevalent.
|
||||||
|
#
|
||||||
|
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
|
||||||
|
#Rule Troll 2005 max - Mar 1 1:00u 1:00 +01
|
||||||
|
Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
|
||||||
|
#Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01
|
||||||
|
#Rule Troll 2004 max - Nov 7 1:00u 0:00 +00
|
||||||
|
# Remove the following line when uncommenting the above '#Rule' lines.
|
||||||
|
Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
|
||||||
|
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||||
|
Zone Antarctica/Troll 0 - -00 2005 Feb 12
|
||||||
|
0:00 Troll %s
|
||||||
|
|
||||||
|
# Poland - year-round base
|
||||||
|
# Arctowski, King George Island, -620945-0582745, since 1977
|
||||||
|
|
||||||
|
# Romania - year-bound base
|
||||||
|
# Law-Racoviță, Larsemann Hills, -692319+0762251, since 1986
|
||||||
|
|
||||||
|
# Russia - year-round bases
|
||||||
|
# Bellingshausen, King George Island, -621159-0585337, since 1968-02-22
|
||||||
|
# Mirny, Davis coast, -6633+09301, since 1956-02
|
||||||
|
# Molodezhnaya, Alasheyev Bay, -6740+04551,
|
||||||
|
# year-round from 1962-02 to 1999-07-01
|
||||||
|
# Novolazarevskaya, Queen Maud Land, -7046+01150,
|
||||||
|
# year-round from 1960/61 to 1992
|
||||||
|
|
||||||
|
# Vostok, since 1957-12-16, temporarily closed 1994-02/1994-11
|
||||||
|
# See Asia/Urumqi.
|
||||||
|
|
||||||
|
# S Africa - year-round bases
|
||||||
|
# Marion Island, -4653+03752
|
||||||
|
# SANAE IV, Vesleskarvet, Queen Maud Land, -714022-0025026, since 1997
|
||||||
|
|
||||||
|
# Ukraine - year-round base
|
||||||
|
# Vernadsky (formerly Faraday), Galindez Island, -651445-0641526, since 1954
|
||||||
|
|
||||||
|
# United Kingdom
|
||||||
|
#
|
||||||
|
# British Antarctic Territories (BAT) claims
|
||||||
|
# South Orkney Islands
|
||||||
|
# scientific station from 1903
|
||||||
|
# whaling station at Signy I 1920/1926
|
||||||
|
# South Shetland Islands
|
||||||
|
#
|
||||||
|
# year-round bases
|
||||||
|
# Bird Island, South Georgia, -5400-03803, since 1983
|
||||||
|
# Deception Island, -6259-06034, whaling station 1912/1931,
|
||||||
|
# scientific station 1943/1967,
|
||||||
|
# previously sealers and a scientific expedition wintered by accident,
|
||||||
|
# and a garrison was deployed briefly
|
||||||
|
# Halley, Coates Land, -7535-02604, since 1956-01-06
|
||||||
|
# Halley is on a moving ice shelf and is periodically relocated
|
||||||
|
# so that it is never more than 10km from its nominal location.
|
||||||
|
# Rothera, Adelaide Island, -6734-6808, since 1976-12-01
|
||||||
|
#
|
||||||
|
# From Paul Eggert (2002-10-22)
|
||||||
|
# <http://webexhibits.org/daylightsaving/g.html> says Rothera is -03 all year.
|
||||||
|
#
|
||||||
|
# Zone NAME STDOFF RULES FORMAT [UNTIL]
|
||||||
|
Zone Antarctica/Rothera 0 - -00 1976 Dec 1
|
||||||
|
-3:00 - -03
|
||||||
|
|
||||||
|
# Uruguay - year round base
|
||||||
|
# Artigas, King George Island, -621104-0585107
|
||||||
|
|
||||||
|
# USA - year-round bases
|
||||||
|
#
|
||||||
|
# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968)
|
||||||
|
# See 'southamerica' for Antarctica/Palmer, since it uses South American DST.
|
||||||
|
#
|
||||||
|
# McMurdo Station, Ross Island, since 1955-12
|
||||||
|
# Amundsen-Scott South Pole Station, continuously occupied since 1956-11-20
|
||||||
|
#
|
||||||
|
# From Chris Carrier (1996-06-27):
|
||||||
|
# Siple, the first commander of the South Pole station,
|
||||||
|
# stated that he would have liked to have kept GMT at the station,
|
||||||
|
# but that he found it more convenient to keep GMT+12
|
||||||
|
# as supplies for the station were coming from McMurdo Sound,
|
||||||
|
# which was on GMT+12 because New Zealand was on GMT+12 all year
|
||||||
|
# at that time (1957). (Source: Siple's book 90° South.)
|
||||||
|
#
|
||||||
|
# From Susan Smith
|
||||||
|
# http://www.cybertours.com/whs/pole10.html
|
||||||
|
# (1995-11-13 16:24:56 +1300, no longer available):
|
||||||
|
# We use the same time as McMurdo does.
|
||||||
|
# And they use the same time as Christchurch, NZ does....
|
||||||
|
# One last quirk about South Pole time.
|
||||||
|
# All the electric clocks are usually wrong.
|
||||||
|
# Something about the generators running at 60.1hertz or something
|
||||||
|
# makes all of the clocks run fast. So every couple of days,
|
||||||
|
# we have to go around and set them back 5 minutes or so.
|
||||||
|
# Maybe if we let them run fast all of the time, we'd get to leave here sooner!!
|
||||||
|
#
|
||||||
|
# See Pacific/Auckland.
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,319 @@
|
||||||
|
# tzdb links for backward compatibility
|
||||||
|
|
||||||
|
# This file is in the public domain, so clarified as of
|
||||||
|
# 2009-05-17 by Arthur David Olson.
|
||||||
|
|
||||||
|
# This file provides links from old or merged timezone names to current ones.
|
||||||
|
# Many names changed in 1993 and in 1995, and many merged names moved here
|
||||||
|
# in the period from 2013 through 2022. Several of these names are
|
||||||
|
# also present in the file 'backzone', which has data important only
|
||||||
|
# for pre-1970 timestamps and so is out of scope for tzdb proper.
|
||||||
|
|
||||||
|
# Although this file is optional and tzdb will work if you omit it by
|
||||||
|
# building with 'make BACKWARD=', in practice downstream users
|
||||||
|
# typically use this file for backward compatibility.
|
||||||
|
|
||||||
|
# This file is divided into sections, one for each major reason for a
|
||||||
|
# backward compatibility link. Each section is sorted by link name.
|
||||||
|
|
||||||
|
# A "#= TARGET1" comment labels each link inserted only because some
|
||||||
|
# .zi parsers (including tzcode through 2022e) mishandle links to links.
|
||||||
|
# The comment says what the target would be if these parsers were fixed
|
||||||
|
# so that data could contain links to links. For example, the line
|
||||||
|
# "Link Australia/Sydney Australia/ACT #= Australia/Canberra" would be
|
||||||
|
# "Link Australia/Canberra Australia/ACT" were it not that data lines
|
||||||
|
# refrain from linking to links like Australia/Canberra, which means
|
||||||
|
# the Australia/ACT line links instead to Australia/Sydney,
|
||||||
|
# Australia/Canberra's target.
|
||||||
|
|
||||||
|
|
||||||
|
# Pre-1993 naming conventions
|
||||||
|
|
||||||
|
# Link TARGET LINK-NAME #= TARGET1
|
||||||
|
Link Australia/Sydney Australia/ACT #= Australia/Canberra
|
||||||
|
Link Australia/Lord_Howe Australia/LHI
|
||||||
|
Link Australia/Sydney Australia/NSW
|
||||||
|
Link Australia/Darwin Australia/North
|
||||||
|
Link Australia/Brisbane Australia/Queensland
|
||||||
|
Link Australia/Adelaide Australia/South
|
||||||
|
Link Australia/Hobart Australia/Tasmania
|
||||||
|
Link Australia/Melbourne Australia/Victoria
|
||||||
|
Link Australia/Perth Australia/West
|
||||||
|
Link Australia/Broken_Hill Australia/Yancowinna
|
||||||
|
Link America/Rio_Branco Brazil/Acre #= America/Porto_Acre
|
||||||
|
Link America/Noronha Brazil/DeNoronha
|
||||||
|
Link America/Sao_Paulo Brazil/East
|
||||||
|
Link America/Manaus Brazil/West
|
||||||
|
Link America/Halifax Canada/Atlantic
|
||||||
|
Link America/Winnipeg Canada/Central
|
||||||
|
# This line is commented out, as the name exceeded the 14-character limit
|
||||||
|
# and was an unused misnomer.
|
||||||
|
#Link America/Regina Canada/East-Saskatchewan
|
||||||
|
Link America/Toronto Canada/Eastern
|
||||||
|
Link America/Edmonton Canada/Mountain
|
||||||
|
Link America/St_Johns Canada/Newfoundland
|
||||||
|
Link America/Vancouver Canada/Pacific
|
||||||
|
Link America/Regina Canada/Saskatchewan
|
||||||
|
Link America/Whitehorse Canada/Yukon
|
||||||
|
Link America/Santiago Chile/Continental
|
||||||
|
Link Pacific/Easter Chile/EasterIsland
|
||||||
|
Link America/Havana Cuba
|
||||||
|
Link Africa/Cairo Egypt
|
||||||
|
Link Europe/Dublin Eire
|
||||||
|
# Vanguard section, for most .zi parsers.
|
||||||
|
#Link GMT Etc/GMT
|
||||||
|
#Link GMT Etc/GMT+0
|
||||||
|
#Link GMT Etc/GMT-0
|
||||||
|
#Link GMT Etc/GMT0
|
||||||
|
#Link GMT Etc/Greenwich
|
||||||
|
# Rearguard section, for TZUpdater 2.3.2 and earlier.
|
||||||
|
Link Etc/GMT Etc/GMT+0
|
||||||
|
Link Etc/GMT Etc/GMT-0
|
||||||
|
Link Etc/GMT Etc/GMT0
|
||||||
|
Link Etc/GMT Etc/Greenwich
|
||||||
|
# End of rearguard section.
|
||||||
|
Link Etc/UTC Etc/UCT
|
||||||
|
Link Etc/UTC Etc/Universal
|
||||||
|
Link Etc/UTC Etc/Zulu
|
||||||
|
Link Europe/London GB
|
||||||
|
Link Europe/London GB-Eire
|
||||||
|
# Vanguard section, for most .zi parsers.
|
||||||
|
#Link GMT GMT+0
|
||||||
|
#Link GMT GMT-0
|
||||||
|
#Link GMT GMT0
|
||||||
|
#Link GMT Greenwich
|
||||||
|
# Rearguard section, for TZUpdater 2.3.2 and earlier.
|
||||||
|
Link Etc/GMT GMT+0
|
||||||
|
Link Etc/GMT GMT-0
|
||||||
|
Link Etc/GMT GMT0
|
||||||
|
Link Etc/GMT Greenwich
|
||||||
|
# End of rearguard section.
|
||||||
|
Link Asia/Hong_Kong Hongkong
|
||||||
|
Link Africa/Abidjan Iceland #= Atlantic/Reykjavik
|
||||||
|
Link Asia/Tehran Iran
|
||||||
|
Link Asia/Jerusalem Israel
|
||||||
|
Link America/Jamaica Jamaica
|
||||||
|
Link Asia/Tokyo Japan
|
||||||
|
Link Pacific/Kwajalein Kwajalein
|
||||||
|
Link Africa/Tripoli Libya
|
||||||
|
Link America/Tijuana Mexico/BajaNorte
|
||||||
|
Link America/Mazatlan Mexico/BajaSur
|
||||||
|
Link America/Mexico_City Mexico/General
|
||||||
|
Link Pacific/Auckland NZ
|
||||||
|
Link Pacific/Chatham NZ-CHAT
|
||||||
|
Link America/Denver Navajo #= America/Shiprock
|
||||||
|
Link Asia/Shanghai PRC
|
||||||
|
Link Europe/Warsaw Poland
|
||||||
|
Link Europe/Lisbon Portugal
|
||||||
|
Link Asia/Taipei ROC
|
||||||
|
Link Asia/Seoul ROK
|
||||||
|
Link Asia/Singapore Singapore
|
||||||
|
Link Europe/Istanbul Turkey
|
||||||
|
Link Etc/UTC UCT
|
||||||
|
Link America/Anchorage US/Alaska
|
||||||
|
Link America/Adak US/Aleutian
|
||||||
|
Link America/Phoenix US/Arizona
|
||||||
|
Link America/Chicago US/Central
|
||||||
|
Link America/Indiana/Indianapolis US/East-Indiana
|
||||||
|
Link America/New_York US/Eastern
|
||||||
|
Link Pacific/Honolulu US/Hawaii
|
||||||
|
Link America/Indiana/Knox US/Indiana-Starke
|
||||||
|
Link America/Detroit US/Michigan
|
||||||
|
Link America/Denver US/Mountain
|
||||||
|
Link America/Los_Angeles US/Pacific
|
||||||
|
Link Pacific/Pago_Pago US/Samoa
|
||||||
|
Link Etc/UTC UTC
|
||||||
|
Link Etc/UTC Universal
|
||||||
|
Link Europe/Moscow W-SU
|
||||||
|
Link Etc/UTC Zulu
|
||||||
|
|
||||||
|
|
||||||
|
# Two-part names that were renamed mostly to three-part names in 1995
|
||||||
|
|
||||||
|
# Link TARGET LINK-NAME #= TARGET1
|
||||||
|
Link America/Argentina/Buenos_Aires America/Buenos_Aires
|
||||||
|
Link America/Argentina/Catamarca America/Catamarca
|
||||||
|
Link America/Argentina/Cordoba America/Cordoba
|
||||||
|
Link America/Indiana/Indianapolis America/Indianapolis
|
||||||
|
Link America/Argentina/Jujuy America/Jujuy
|
||||||
|
Link America/Indiana/Knox America/Knox_IN
|
||||||
|
Link America/Kentucky/Louisville America/Louisville
|
||||||
|
Link America/Argentina/Mendoza America/Mendoza
|
||||||
|
Link America/Puerto_Rico America/Virgin #= America/St_Thomas
|
||||||
|
Link Pacific/Pago_Pago Pacific/Samoa
|
||||||
|
|
||||||
|
|
||||||
|
# Pre-2013 practice, which typically had a Zone per zone.tab line
|
||||||
|
|
||||||
|
# Link TARGET LINK-NAME
|
||||||
|
Link Africa/Abidjan Africa/Accra
|
||||||
|
Link Africa/Nairobi Africa/Addis_Ababa
|
||||||
|
Link Africa/Nairobi Africa/Asmara
|
||||||
|
Link Africa/Abidjan Africa/Bamako
|
||||||
|
Link Africa/Lagos Africa/Bangui
|
||||||
|
Link Africa/Abidjan Africa/Banjul
|
||||||
|
Link Africa/Maputo Africa/Blantyre
|
||||||
|
Link Africa/Lagos Africa/Brazzaville
|
||||||
|
Link Africa/Maputo Africa/Bujumbura
|
||||||
|
Link Africa/Abidjan Africa/Conakry
|
||||||
|
Link Africa/Abidjan Africa/Dakar
|
||||||
|
Link Africa/Nairobi Africa/Dar_es_Salaam
|
||||||
|
Link Africa/Nairobi Africa/Djibouti
|
||||||
|
Link Africa/Lagos Africa/Douala
|
||||||
|
Link Africa/Abidjan Africa/Freetown
|
||||||
|
Link Africa/Maputo Africa/Gaborone
|
||||||
|
Link Africa/Maputo Africa/Harare
|
||||||
|
Link Africa/Nairobi Africa/Kampala
|
||||||
|
Link Africa/Maputo Africa/Kigali
|
||||||
|
Link Africa/Lagos Africa/Kinshasa
|
||||||
|
Link Africa/Lagos Africa/Libreville
|
||||||
|
Link Africa/Abidjan Africa/Lome
|
||||||
|
Link Africa/Lagos Africa/Luanda
|
||||||
|
Link Africa/Maputo Africa/Lubumbashi
|
||||||
|
Link Africa/Maputo Africa/Lusaka
|
||||||
|
Link Africa/Lagos Africa/Malabo
|
||||||
|
Link Africa/Johannesburg Africa/Maseru
|
||||||
|
Link Africa/Johannesburg Africa/Mbabane
|
||||||
|
Link Africa/Nairobi Africa/Mogadishu
|
||||||
|
Link Africa/Lagos Africa/Niamey
|
||||||
|
Link Africa/Abidjan Africa/Nouakchott
|
||||||
|
Link Africa/Abidjan Africa/Ouagadougou
|
||||||
|
Link Africa/Lagos Africa/Porto-Novo
|
||||||
|
Link America/Puerto_Rico America/Anguilla
|
||||||
|
Link America/Puerto_Rico America/Antigua
|
||||||
|
Link America/Puerto_Rico America/Aruba
|
||||||
|
Link America/Panama America/Atikokan
|
||||||
|
Link America/Puerto_Rico America/Blanc-Sablon
|
||||||
|
Link America/Panama America/Cayman
|
||||||
|
Link America/Phoenix America/Creston
|
||||||
|
Link America/Puerto_Rico America/Curacao
|
||||||
|
Link America/Puerto_Rico America/Dominica
|
||||||
|
Link America/Puerto_Rico America/Grenada
|
||||||
|
Link America/Puerto_Rico America/Guadeloupe
|
||||||
|
Link America/Puerto_Rico America/Kralendijk
|
||||||
|
Link America/Puerto_Rico America/Lower_Princes
|
||||||
|
Link America/Puerto_Rico America/Marigot
|
||||||
|
Link America/Puerto_Rico America/Montserrat
|
||||||
|
Link America/Toronto America/Nassau
|
||||||
|
Link America/Puerto_Rico America/Port_of_Spain
|
||||||
|
Link America/Puerto_Rico America/St_Barthelemy
|
||||||
|
Link America/Puerto_Rico America/St_Kitts
|
||||||
|
Link America/Puerto_Rico America/St_Lucia
|
||||||
|
Link America/Puerto_Rico America/St_Thomas
|
||||||
|
Link America/Puerto_Rico America/St_Vincent
|
||||||
|
Link America/Puerto_Rico America/Tortola
|
||||||
|
Link Pacific/Port_Moresby Antarctica/DumontDUrville
|
||||||
|
Link Pacific/Auckland Antarctica/McMurdo
|
||||||
|
Link Asia/Riyadh Antarctica/Syowa
|
||||||
|
Link Asia/Urumqi Antarctica/Vostok
|
||||||
|
Link Europe/Berlin Arctic/Longyearbyen
|
||||||
|
Link Asia/Riyadh Asia/Aden
|
||||||
|
Link Asia/Qatar Asia/Bahrain
|
||||||
|
Link Asia/Kuching Asia/Brunei
|
||||||
|
Link Asia/Singapore Asia/Kuala_Lumpur
|
||||||
|
Link Asia/Riyadh Asia/Kuwait
|
||||||
|
Link Asia/Dubai Asia/Muscat
|
||||||
|
Link Asia/Bangkok Asia/Phnom_Penh
|
||||||
|
Link Asia/Bangkok Asia/Vientiane
|
||||||
|
Link Africa/Abidjan Atlantic/Reykjavik
|
||||||
|
Link Africa/Abidjan Atlantic/St_Helena
|
||||||
|
Link Europe/Brussels Europe/Amsterdam
|
||||||
|
Link Europe/Prague Europe/Bratislava
|
||||||
|
Link Europe/Zurich Europe/Busingen
|
||||||
|
Link Europe/Berlin Europe/Copenhagen
|
||||||
|
Link Europe/London Europe/Guernsey
|
||||||
|
Link Europe/London Europe/Isle_of_Man
|
||||||
|
Link Europe/London Europe/Jersey
|
||||||
|
Link Europe/Belgrade Europe/Ljubljana
|
||||||
|
Link Europe/Brussels Europe/Luxembourg
|
||||||
|
Link Europe/Helsinki Europe/Mariehamn
|
||||||
|
Link Europe/Paris Europe/Monaco
|
||||||
|
Link Europe/Berlin Europe/Oslo
|
||||||
|
Link Europe/Belgrade Europe/Podgorica
|
||||||
|
Link Europe/Rome Europe/San_Marino
|
||||||
|
Link Europe/Belgrade Europe/Sarajevo
|
||||||
|
Link Europe/Belgrade Europe/Skopje
|
||||||
|
Link Europe/Berlin Europe/Stockholm
|
||||||
|
Link Europe/Zurich Europe/Vaduz
|
||||||
|
Link Europe/Rome Europe/Vatican
|
||||||
|
Link Europe/Belgrade Europe/Zagreb
|
||||||
|
Link Africa/Nairobi Indian/Antananarivo
|
||||||
|
Link Asia/Bangkok Indian/Christmas
|
||||||
|
Link Asia/Yangon Indian/Cocos
|
||||||
|
Link Africa/Nairobi Indian/Comoro
|
||||||
|
Link Indian/Maldives Indian/Kerguelen
|
||||||
|
Link Asia/Dubai Indian/Mahe
|
||||||
|
Link Africa/Nairobi Indian/Mayotte
|
||||||
|
Link Asia/Dubai Indian/Reunion
|
||||||
|
Link Pacific/Port_Moresby Pacific/Chuuk
|
||||||
|
Link Pacific/Tarawa Pacific/Funafuti
|
||||||
|
Link Pacific/Tarawa Pacific/Majuro
|
||||||
|
Link Pacific/Pago_Pago Pacific/Midway
|
||||||
|
Link Pacific/Guadalcanal Pacific/Pohnpei
|
||||||
|
Link Pacific/Guam Pacific/Saipan
|
||||||
|
Link Pacific/Tarawa Pacific/Wake
|
||||||
|
Link Pacific/Tarawa Pacific/Wallis
|
||||||
|
|
||||||
|
|
||||||
|
# Non-zone.tab locations with timestamps since 1970 that duplicate
|
||||||
|
# those of an existing location
|
||||||
|
|
||||||
|
# Link TARGET LINK-NAME
|
||||||
|
Link Africa/Abidjan Africa/Timbuktu
|
||||||
|
Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
|
||||||
|
Link America/Adak America/Atka
|
||||||
|
Link America/Panama America/Coral_Harbour
|
||||||
|
Link America/Tijuana America/Ensenada
|
||||||
|
Link America/Indiana/Indianapolis America/Fort_Wayne
|
||||||
|
Link America/Toronto America/Montreal
|
||||||
|
Link America/Toronto America/Nipigon
|
||||||
|
Link America/Iqaluit America/Pangnirtung
|
||||||
|
Link America/Rio_Branco America/Porto_Acre
|
||||||
|
Link America/Winnipeg America/Rainy_River
|
||||||
|
Link America/Argentina/Cordoba America/Rosario
|
||||||
|
Link America/Tijuana America/Santa_Isabel
|
||||||
|
Link America/Denver America/Shiprock
|
||||||
|
Link America/Toronto America/Thunder_Bay
|
||||||
|
Link America/Edmonton America/Yellowknife
|
||||||
|
Link Pacific/Auckland Antarctica/South_Pole
|
||||||
|
Link Asia/Shanghai Asia/Chongqing
|
||||||
|
Link Asia/Shanghai Asia/Harbin
|
||||||
|
Link Asia/Urumqi Asia/Kashgar
|
||||||
|
Link Asia/Jerusalem Asia/Tel_Aviv
|
||||||
|
Link Europe/Berlin Atlantic/Jan_Mayen
|
||||||
|
Link Australia/Sydney Australia/Canberra
|
||||||
|
Link Australia/Hobart Australia/Currie
|
||||||
|
Link Europe/London Europe/Belfast
|
||||||
|
Link Europe/Chisinau Europe/Tiraspol
|
||||||
|
Link Europe/Kyiv Europe/Uzhgorod
|
||||||
|
Link Europe/Kyiv Europe/Zaporozhye
|
||||||
|
Link Pacific/Kanton Pacific/Enderbury
|
||||||
|
Link Pacific/Honolulu Pacific/Johnston
|
||||||
|
Link Pacific/Port_Moresby Pacific/Yap
|
||||||
|
|
||||||
|
|
||||||
|
# Alternate names for the same location
|
||||||
|
|
||||||
|
# Link TARGET LINK-NAME #= TARGET1
|
||||||
|
Link Africa/Nairobi Africa/Asmera #= Africa/Asmara
|
||||||
|
Link America/Nuuk America/Godthab
|
||||||
|
Link Asia/Ashgabat Asia/Ashkhabad
|
||||||
|
Link Asia/Kolkata Asia/Calcutta
|
||||||
|
Link Asia/Shanghai Asia/Chungking #= Asia/Chongqing
|
||||||
|
Link Asia/Dhaka Asia/Dacca
|
||||||
|
# Istanbul is in both continents.
|
||||||
|
Link Europe/Istanbul Asia/Istanbul
|
||||||
|
Link Asia/Kathmandu Asia/Katmandu
|
||||||
|
Link Asia/Macau Asia/Macao
|
||||||
|
Link Asia/Yangon Asia/Rangoon
|
||||||
|
Link Asia/Ho_Chi_Minh Asia/Saigon
|
||||||
|
Link Asia/Thimphu Asia/Thimbu
|
||||||
|
Link Asia/Makassar Asia/Ujung_Pandang
|
||||||
|
Link Asia/Ulaanbaatar Asia/Ulan_Bator
|
||||||
|
Link Atlantic/Faroe Atlantic/Faeroe
|
||||||
|
Link Europe/Kyiv Europe/Kiev
|
||||||
|
# Classically, Cyprus is in Asia; e.g. see Herodotus, Histories, I.72.
|
||||||
|
# However, for various reasons many users expect to find it under Europe.
|
||||||
|
Link Asia/Nicosia Europe/Nicosia
|
||||||
|
Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei
|
||||||
|
Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,173 @@
|
||||||
|
----- Calendrical issues -----
|
||||||
|
|
||||||
|
As mentioned in Theory.html, although calendrical issues are out of
|
||||||
|
scope for tzdb, they indicate the sort of problems that we would run
|
||||||
|
into if we extended tzdb further into the past. The following
|
||||||
|
information and sources go beyond Theory.html's brief discussion.
|
||||||
|
They sometimes disagree.
|
||||||
|
|
||||||
|
|
||||||
|
France
|
||||||
|
|
||||||
|
Gregorian calendar adopted 1582-12-20.
|
||||||
|
French Revolutionary calendar used 1793-11-24 through 1805-12-31,
|
||||||
|
and (in Paris only) 1871-05-06 through 1871-05-23.
|
||||||
|
|
||||||
|
|
||||||
|
Russia
|
||||||
|
|
||||||
|
From Chris Carrier (1996-12-02):
|
||||||
|
On 1929-10-01 the Soviet Union instituted an "Eternal Calendar"
|
||||||
|
with 30-day months plus 5 holidays, with a 5-day week.
|
||||||
|
On 1931-12-01 it changed to a 6-day week; in 1934 it reverted to the
|
||||||
|
Gregorian calendar while retaining the 6-day week; on 1940-06-27 it
|
||||||
|
reverted to the 7-day week. With the 6-day week the usual days
|
||||||
|
off were the 6th, 12th, 18th, 24th and 30th of the month.
|
||||||
|
(Source: Evitiar Zerubavel, _The Seven Day Circle_)
|
||||||
|
|
||||||
|
|
||||||
|
Mark Brader reported a similar story in "The Book of Calendars", edited
|
||||||
|
by Frank Parise (1982, Facts on File, ISBN 0-8719-6467-8), page 377. But:
|
||||||
|
|
||||||
|
From: Petteri Sulonen (via Usenet)
|
||||||
|
Date: 14 Jan 1999 00:00:00 GMT
|
||||||
|
...
|
||||||
|
|
||||||
|
If your source is correct, how come documents between 1929 and 1940 were
|
||||||
|
still dated using the conventional, Gregorian calendar?
|
||||||
|
|
||||||
|
I can post a scan of a document dated December 1, 1934, signed by
|
||||||
|
Yenukidze, the secretary, on behalf of Kalinin, the President of the
|
||||||
|
Executive Committee of the Supreme Soviet, if you like.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Sweden (and Finland)
|
||||||
|
|
||||||
|
From: Mark Brader
|
||||||
|
Subject: Re: Gregorian reform - a part of locale?
|
||||||
|
<news:1996Jul6.012937.29190@sq.com>
|
||||||
|
Date: 1996-07-06
|
||||||
|
|
||||||
|
In 1700, Denmark made the transition from Julian to Gregorian. Sweden
|
||||||
|
decided to *start* a transition in 1700 as well, but rather than have one of
|
||||||
|
those unsightly calendar gaps :-), they simply decreed that the next leap
|
||||||
|
year after 1696 would be in 1744 - putting the whole country on a calendar
|
||||||
|
different from both Julian and Gregorian for a period of 40 years.
|
||||||
|
|
||||||
|
However, in 1704 something went wrong and the plan was not carried through;
|
||||||
|
they did, after all, have a leap year that year. And one in 1708. In 1712
|
||||||
|
they gave it up and went back to Julian, putting 30 days in February that
|
||||||
|
year!...
|
||||||
|
|
||||||
|
Then in 1753, Sweden made the transition to Gregorian in the usual manner,
|
||||||
|
getting there only 13 years behind the original schedule.
|
||||||
|
|
||||||
|
(A previous posting of this story was challenged, and Swedish readers
|
||||||
|
produced the following references to support it: "Tideräkning och historia"
|
||||||
|
by Natanael Beckman (1924) and "Tid, en bok om tideräkning och
|
||||||
|
kalenderväsen" by Lars-Olof Lodén (1968).
|
||||||
|
|
||||||
|
|
||||||
|
Grotefend's data
|
||||||
|
|
||||||
|
From: "Michael Palmer" [with two obvious typos fixed]
|
||||||
|
Subject: Re: Gregorian Calendar (was Re: Another FHC related question
|
||||||
|
Newsgroups: soc.genealogy.german
|
||||||
|
Date: Tue, 9 Feb 1999 02:32:48 -800
|
||||||
|
...
|
||||||
|
|
||||||
|
The following is a(n incomplete) listing, arranged chronologically, of
|
||||||
|
European states, with the date they converted from the Julian to the
|
||||||
|
Gregorian calendar:
|
||||||
|
|
||||||
|
04/15 Oct 1582 - Italy (with exceptions), Spain, Portugal, Poland (Roman
|
||||||
|
Catholics and Danzig only)
|
||||||
|
09/20 Dec 1582 - France, Lorraine
|
||||||
|
|
||||||
|
21 Dec 1582/
|
||||||
|
01 Jan 1583 - Holland, Brabant, Flanders, Hennegau
|
||||||
|
10/21 Feb 1583 - bishopric of Liege (Lüttich)
|
||||||
|
13/24 Feb 1583 - bishopric of Augsburg
|
||||||
|
04/15 Oct 1583 - electorate of Trier
|
||||||
|
05/16 Oct 1583 - Bavaria, bishoprics of Freising, Eichstedt, Regensburg,
|
||||||
|
Salzburg, Brixen
|
||||||
|
13/24 Oct 1583 - Austrian Oberelsaß and Breisgau
|
||||||
|
20/31 Oct 1583 - bishopric of Basel
|
||||||
|
02/13 Nov 1583 - duchy of Jülich-Berg
|
||||||
|
02/13 Nov 1583 - electorate and city of Köln
|
||||||
|
04/15 Nov 1583 - bishopric of Würzburg
|
||||||
|
11/22 Nov 1583 - electorate of Mainz
|
||||||
|
16/27 Nov 1583 - bishopric of Strassburg and the margraviate of Baden
|
||||||
|
17/28 Nov 1583 - bishopric of Münster and duchy of Cleve
|
||||||
|
14/25 Dec 1583 - Steiermark
|
||||||
|
|
||||||
|
06/17 Jan 1584 - Austria and Bohemia
|
||||||
|
11/22 Jan 1584 - Lucerne, Uri, Schwyz, Zug, Freiburg, Solothurn
|
||||||
|
12/23 Jan 1584 - Silesia and the Lausitz
|
||||||
|
22 Jan/
|
||||||
|
02 Feb 1584 - Hungary (legally on 21 Oct 1587)
|
||||||
|
Jun 1584 - Unterwalden
|
||||||
|
01/12 Jul 1584 - duchy of Westfalen
|
||||||
|
|
||||||
|
16/27 Jun 1585 - bishopric of Paderborn
|
||||||
|
|
||||||
|
14/25 Dec 1590 - Transylvania
|
||||||
|
|
||||||
|
22 Aug/
|
||||||
|
02 Sep 1612 - duchy of Prussia
|
||||||
|
|
||||||
|
13/24 Dec 1614 - Pfalz-Neuburg
|
||||||
|
|
||||||
|
1617 - duchy of Kurland (reverted to the Julian calendar in
|
||||||
|
1796)
|
||||||
|
|
||||||
|
1624 - bishopric of Osnabrück
|
||||||
|
|
||||||
|
1630 - bishopric of Minden
|
||||||
|
|
||||||
|
15/26 Mar 1631 - bishopric of Hildesheim
|
||||||
|
|
||||||
|
1655 - Kanton Wallis
|
||||||
|
|
||||||
|
05/16 Feb 1682 - city of Strassburg
|
||||||
|
|
||||||
|
18 Feb/
|
||||||
|
01 Mar 1700 - Protestant Germany (including Swedish possessions in
|
||||||
|
Germany), Denmark, Norway
|
||||||
|
30 Jun/
|
||||||
|
12 Jul 1700 - Gelderland, Zutphen
|
||||||
|
10 Nov/
|
||||||
|
12 Dec 1700 - Utrecht, Overijssel
|
||||||
|
|
||||||
|
31 Dec 1700/
|
||||||
|
12 Jan 1701 - Friesland, Groningen, Zürich, Bern, Basel, Geneva,
|
||||||
|
Thurgau, and Schaffhausen
|
||||||
|
|
||||||
|
1724 - Glarus, Appenzell, and the city of St. Gallen
|
||||||
|
|
||||||
|
01 Jan 1750 - Pisa and Florence
|
||||||
|
|
||||||
|
02/14 Sep 1752 - Great Britain
|
||||||
|
|
||||||
|
17 Feb/
|
||||||
|
01 Mar 1753 - Sweden
|
||||||
|
|
||||||
|
1760-1812 - Graubünden
|
||||||
|
|
||||||
|
The Russian empire (including Finland and the Baltic states) did not
|
||||||
|
convert to the Gregorian calendar until the Soviet revolution of 1917.
|
||||||
|
|
||||||
|
Source: H. Grotefend, _Taschenbuch der Zeitrechnung des deutschen
|
||||||
|
Mittelalters und der Neuzeit_, herausgegeben von Dr. O. Grotefend
|
||||||
|
(Hannover: Hahnsche Buchhandlung, 1941), pp. 26-28.
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
This file is in the public domain, so clarified as of 2009-05-17 by
|
||||||
|
Arthur David Olson.
|
||||||
|
|
||||||
|
-----
|
||||||
|
Local Variables:
|
||||||
|
coding: utf-8
|
||||||
|
End:
|
|
@ -0,0 +1,70 @@
|
||||||
|
# Check links in tz tables.
|
||||||
|
|
||||||
|
# Contributed by Paul Eggert. This file is in the public domain.
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
# Special marker indicating that the name is defined as a Zone.
|
||||||
|
# It is a newline so that it cannot match a valid name.
|
||||||
|
# It is not null so that its slot does not appear unset.
|
||||||
|
Zone = "\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
/^Z/ {
|
||||||
|
if (defined[$2]) {
|
||||||
|
if (defined[$2] == Zone) {
|
||||||
|
printf "%s: Zone has duplicate definition\n", $2
|
||||||
|
} else {
|
||||||
|
printf "%s: Link with same name as Zone\n", $2
|
||||||
|
}
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
defined[$2] = Zone
|
||||||
|
}
|
||||||
|
|
||||||
|
/^L/ {
|
||||||
|
if (defined[$3]) {
|
||||||
|
if (defined[$3] == Zone) {
|
||||||
|
printf "%s: Link with same name as Zone\n", $3
|
||||||
|
} else if (defined[$3] == $2) {
|
||||||
|
printf "%s: Link has duplicate definition\n", $3
|
||||||
|
} else {
|
||||||
|
printf "%s: Link to both %s and %s\n", $3, defined[$3], $2
|
||||||
|
}
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
if (backcheck && FILENAME != backcheck && $3 != "GMT") {
|
||||||
|
printf "%s: Link should be in '%s'\n", $3, backcheck
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
if ($4 == "#=") {
|
||||||
|
shortcut[$5] = $3
|
||||||
|
}
|
||||||
|
used[$2] = 1
|
||||||
|
defined[$3] = $2
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
for (tz in used) {
|
||||||
|
if (defined[tz] != Zone) {
|
||||||
|
if (!defined[tz]) {
|
||||||
|
printf "%s: Link to nowhere\n", tz
|
||||||
|
status = 1
|
||||||
|
} else if (DATAFORM != "vanguard") {
|
||||||
|
printf "%s: Link to link\n", tz
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (tz in shortcut) {
|
||||||
|
if (defined[shortcut[tz]] != defined[tz]) {
|
||||||
|
target = (!defined[tz] ? "absence" \
|
||||||
|
: defined[tz] == "\n" ? "zone" \
|
||||||
|
: defined[tz])
|
||||||
|
printf "%s: target %s disagrees with %s's target %s\n", \
|
||||||
|
tz, target, shortcut[tz], defined[shortcut[tz]]
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exit status
|
||||||
|
}
|
|
@ -0,0 +1,192 @@
|
||||||
|
# Check tz tables for consistency.
|
||||||
|
|
||||||
|
# Contributed by Paul Eggert. This file is in the public domain.
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
FS = "\t"
|
||||||
|
|
||||||
|
if (!iso_table) iso_table = "iso3166.tab"
|
||||||
|
if (!zone_table) zone_table = "zone1970.tab"
|
||||||
|
if (!want_warnings) want_warnings = -1
|
||||||
|
|
||||||
|
while (getline <iso_table) {
|
||||||
|
iso_NR++
|
||||||
|
if ($0 ~ /^#/) continue
|
||||||
|
if (NF != 2) {
|
||||||
|
printf "%s:%d: wrong number of columns\n", \
|
||||||
|
iso_table, iso_NR >>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
cc = $1
|
||||||
|
name = $2
|
||||||
|
if (cc !~ /^[A-Z][A-Z]$/) {
|
||||||
|
printf "%s:%d: invalid country code '%s'\n", \
|
||||||
|
iso_table, iso_NR, cc >>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
if (cc <= cc0) {
|
||||||
|
if (cc == cc0) {
|
||||||
|
s = "duplicate";
|
||||||
|
} else {
|
||||||
|
s = "out of order";
|
||||||
|
}
|
||||||
|
|
||||||
|
printf "%s:%d: country code '%s' is %s\n", \
|
||||||
|
iso_table, iso_NR, cc, s \
|
||||||
|
>>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
cc0 = cc
|
||||||
|
if (name2cc[name]) {
|
||||||
|
printf "%s:%d: '%s' and '%s' have the same name\n", \
|
||||||
|
iso_table, iso_NR, name2cc[name], cc \
|
||||||
|
>>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
name2cc[name] = cc
|
||||||
|
cc2name[cc] = name
|
||||||
|
cc2NR[cc] = iso_NR
|
||||||
|
}
|
||||||
|
|
||||||
|
cc0 = ""
|
||||||
|
|
||||||
|
while (getline <zone_table) {
|
||||||
|
zone_NR++
|
||||||
|
if ($0 ~ /^#/) continue
|
||||||
|
if (NF != 3 && NF != 4) {
|
||||||
|
printf "%s:%d: wrong number of columns\n", \
|
||||||
|
zone_table, zone_NR >>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
ccs = input_ccs[zone_NR] = $1
|
||||||
|
coordinates = $2
|
||||||
|
tz = $3
|
||||||
|
comments = input_comments[zone_NR] = $4
|
||||||
|
split(ccs, cca, /,/)
|
||||||
|
cc = cca[1]
|
||||||
|
|
||||||
|
# Don't complain about a special case for Crimea in zone.tab.
|
||||||
|
# FIXME: zone.tab should be removed, since it is obsolete.
|
||||||
|
# Or at least put just "XX" in its country-code column.
|
||||||
|
if (cc < cc0 \
|
||||||
|
&& !(zone_table == "zone.tab" \
|
||||||
|
&& tz0 == "Europe/Simferopol")) {
|
||||||
|
printf "%s:%d: country code '%s' is out of order\n", \
|
||||||
|
zone_table, zone_NR, cc >>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
cc0 = cc
|
||||||
|
tz0 = tz
|
||||||
|
tztab[tz] = 1
|
||||||
|
tz2NR[tz] = zone_NR
|
||||||
|
for (i in cca) {
|
||||||
|
cc = cca[i]
|
||||||
|
if (cc2name[cc]) {
|
||||||
|
cc_used[cc]++
|
||||||
|
} else {
|
||||||
|
printf "%s:%d: %s: unknown country code\n", \
|
||||||
|
zone_table, zone_NR, cc >>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (coordinates !~ /^[-+][0-9][0-9][0-5][0-9][-+][01][0-9][0-9][0-5][0-9]$/ \
|
||||||
|
&& coordinates !~ /^[-+][0-9][0-9][0-5][0-9][0-5][0-9][-+][01][0-9][0-9][0-5][0-9][0-5][0-9]$/) {
|
||||||
|
printf "%s:%d: %s: invalid coordinates\n", \
|
||||||
|
zone_table, zone_NR, coordinates >>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 1; i <= zone_NR; i++) {
|
||||||
|
ccs = input_ccs[i]
|
||||||
|
if (!ccs) continue
|
||||||
|
comments = input_comments[i]
|
||||||
|
split(ccs, cca, /,/)
|
||||||
|
used_max = 0
|
||||||
|
for (j in cca) {
|
||||||
|
cc = cca[j]
|
||||||
|
if (used_max < cc_used[cc]) {
|
||||||
|
used_max = cc_used[cc]
|
||||||
|
used_max_cc = cc
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (used_max <= 1 && comments) {
|
||||||
|
printf "%s:%d: unnecessary comment '%s'\n", \
|
||||||
|
zone_table, i, comments \
|
||||||
|
>>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
} else if (1 < used_max && !comments) {
|
||||||
|
printf "%s:%d: missing comment for %s\n", \
|
||||||
|
zone_table, i, used_max_cc \
|
||||||
|
>>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FS = " "
|
||||||
|
}
|
||||||
|
|
||||||
|
$1 ~ /^#/ { next }
|
||||||
|
|
||||||
|
{
|
||||||
|
tz = rules = ""
|
||||||
|
if ($1 == "Zone") {
|
||||||
|
tz = $2
|
||||||
|
ruleUsed[$4] = 1
|
||||||
|
if ($5 ~ /%/) rulePercentUsed[$4] = 1
|
||||||
|
} else if ($1 == "Link" && zone_table == "zone.tab") {
|
||||||
|
# Ignore Link commands if source and destination basenames
|
||||||
|
# are identical, e.g. Europe/Istanbul versus Asia/Istanbul.
|
||||||
|
src = $2
|
||||||
|
dst = $3
|
||||||
|
while ((i = index(src, "/"))) src = substr(src, i+1)
|
||||||
|
while ((i = index(dst, "/"))) dst = substr(dst, i+1)
|
||||||
|
if (src != dst) tz = $3
|
||||||
|
} else if ($1 == "Rule") {
|
||||||
|
ruleDefined[$2] = 1
|
||||||
|
if ($10 != "-") ruleLetters[$2] = 1
|
||||||
|
} else {
|
||||||
|
ruleUsed[$2] = 1
|
||||||
|
if ($3 ~ /%/) rulePercentUsed[$2] = 1
|
||||||
|
}
|
||||||
|
if (tz && tz ~ /\// && tz !~ /^Etc\//) {
|
||||||
|
if (!tztab[tz] && FILENAME != "backward") {
|
||||||
|
printf "%s: no data for '%s'\n", zone_table, tz \
|
||||||
|
>>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
zoneSeen[tz] = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
for (tz in ruleDefined) {
|
||||||
|
if (!ruleUsed[tz]) {
|
||||||
|
printf "%s: Rule never used\n", tz
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (tz in ruleLetters) {
|
||||||
|
if (!rulePercentUsed[tz]) {
|
||||||
|
printf "%s: Rule contains letters never used\n", tz
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (tz in tztab) {
|
||||||
|
if (!zoneSeen[tz] && tz !~ /^Etc\//) {
|
||||||
|
printf "%s:%d: no Zone table for '%s'\n", \
|
||||||
|
zone_table, tz2NR[tz], tz >>"/dev/stderr"
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (0 < want_warnings) {
|
||||||
|
for (cc in cc2name) {
|
||||||
|
if (!cc_used[cc]) {
|
||||||
|
printf "%s:%d: warning: " \
|
||||||
|
"no Zone entries for %s (%s)\n", \
|
||||||
|
iso_table, cc2NR[cc], cc, cc2name[cc]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exit status
|
||||||
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
# tzdb data for ships at sea and other miscellany
|
||||||
|
|
||||||
|
# This file is in the public domain, so clarified as of
|
||||||
|
# 2009-05-17 by Arthur David Olson.
|
||||||
|
|
||||||
|
# These entries are for uses not otherwise covered by the tz database.
|
||||||
|
# Their main practical use is for platforms like Android that lack
|
||||||
|
# support for POSIX-style TZ strings. On such platforms these entries
|
||||||
|
# can be useful if the timezone database is wrong or if a ship or
|
||||||
|
# aircraft at sea is not in a timezone.
|
||||||
|
|
||||||
|
# Starting with POSIX 1003.1-2001, the entries below are all
|
||||||
|
# unnecessary as settings for the TZ environment variable. E.g.,
|
||||||
|
# instead of TZ='Etc/GMT+4' one can use the POSIX setting TZ='<-04>+4'.
|
||||||
|
#
|
||||||
|
# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours
|
||||||
|
# behind GMT but uses the completely misleading abbreviation "GMT".
|
||||||
|
|
||||||
|
# The following zone is used by tzcode functions like gmtime,
|
||||||
|
# which load the "UTC" file to handle seconds properly.
|
||||||
|
Zone Etc/UTC 0 - UTC
|
||||||
|
|
||||||
|
# Functions like gmtime load the "GMT" file to handle leap seconds properly.
|
||||||
|
# Vanguard section, which works with most .zi parsers.
|
||||||
|
#Zone GMT 0 - GMT
|
||||||
|
# Rearguard section, for TZUpdater 2.3.2 and earlier.
|
||||||
|
Zone Etc/GMT 0 - GMT
|
||||||
|
|
||||||
|
# The following link uses older naming conventions,
|
||||||
|
# but it belongs here, not in the file 'backward',
|
||||||
|
# as it is needed for tzcode releases through 2022a,
|
||||||
|
# where functions like gmtime load "GMT" instead of the "Etc/UTC".
|
||||||
|
# We want this to work even on installations that omit 'backward'.
|
||||||
|
Link Etc/GMT GMT
|
||||||
|
# End of rearguard section.
|
||||||
|
|
||||||
|
# Be consistent with POSIX TZ settings in the Zone names,
|
||||||
|
# even though this is the opposite of what many people expect.
|
||||||
|
# POSIX has positive signs west of Greenwich, but many people expect
|
||||||
|
# positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses
|
||||||
|
# the abbreviation "-04" and corresponds to 4 hours behind UT
|
||||||
|
# (i.e. west of Greenwich) even though many people would expect it to
|
||||||
|
# mean 4 hours ahead of UT (i.e. east of Greenwich).
|
||||||
|
|
||||||
|
# Earlier incarnations of this package were not POSIX-compliant,
|
||||||
|
# and had lines such as
|
||||||
|
# Zone GMT-12 -12 - GMT-1200
|
||||||
|
# We did not want things to change quietly if someone accustomed to the old
|
||||||
|
# way does a
|
||||||
|
# zic -l GMT-12
|
||||||
|
# so we moved the names into the Etc subdirectory.
|
||||||
|
# Also, the time zone abbreviations are now compatible with %z.
|
||||||
|
|
||||||
|
Zone Etc/GMT-14 14 - +14
|
||||||
|
Zone Etc/GMT-13 13 - +13
|
||||||
|
Zone Etc/GMT-12 12 - +12
|
||||||
|
Zone Etc/GMT-11 11 - +11
|
||||||
|
Zone Etc/GMT-10 10 - +10
|
||||||
|
Zone Etc/GMT-9 9 - +09
|
||||||
|
Zone Etc/GMT-8 8 - +08
|
||||||
|
Zone Etc/GMT-7 7 - +07
|
||||||
|
Zone Etc/GMT-6 6 - +06
|
||||||
|
Zone Etc/GMT-5 5 - +05
|
||||||
|
Zone Etc/GMT-4 4 - +04
|
||||||
|
Zone Etc/GMT-3 3 - +03
|
||||||
|
Zone Etc/GMT-2 2 - +02
|
||||||
|
Zone Etc/GMT-1 1 - +01
|
||||||
|
Zone Etc/GMT+1 -1 - -01
|
||||||
|
Zone Etc/GMT+2 -2 - -02
|
||||||
|
Zone Etc/GMT+3 -3 - -03
|
||||||
|
Zone Etc/GMT+4 -4 - -04
|
||||||
|
Zone Etc/GMT+5 -5 - -05
|
||||||
|
Zone Etc/GMT+6 -6 - -06
|
||||||
|
Zone Etc/GMT+7 -7 - -07
|
||||||
|
Zone Etc/GMT+8 -8 - -08
|
||||||
|
Zone Etc/GMT+9 -9 - -09
|
||||||
|
Zone Etc/GMT+10 -10 - -10
|
||||||
|
Zone Etc/GMT+11 -11 - -11
|
||||||
|
Zone Etc/GMT+12 -12 - -12
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,12 @@
|
||||||
|
# tzdb data for noncommittal factory settings
|
||||||
|
|
||||||
|
# This file is in the public domain, so clarified as of
|
||||||
|
# 2009-05-17 by Arthur David Olson.
|
||||||
|
|
||||||
|
# For distributors who don't want to specify a timezone in their
|
||||||
|
# installation procedures. Users who run 'date' will get the
|
||||||
|
# time zone abbreviation "-00", indicating that the actual time zone
|
||||||
|
# is unknown.
|
||||||
|
|
||||||
|
# Zone NAME STDOFF RULES FORMAT
|
||||||
|
Zone Factory 0 - -00
|
|
@ -0,0 +1,274 @@
|
||||||
|
# ISO 3166 alpha-2 country codes
|
||||||
|
#
|
||||||
|
# This file is in the public domain, so clarified as of
|
||||||
|
# 2009-05-17 by Arthur David Olson.
|
||||||
|
#
|
||||||
|
# From Paul Eggert (2022-11-18):
|
||||||
|
# This file contains a table of two-letter country codes. Columns are
|
||||||
|
# separated by a single tab. Lines beginning with '#' are comments.
|
||||||
|
# All text uses UTF-8 encoding. The columns of the table are as follows:
|
||||||
|
#
|
||||||
|
# 1. ISO 3166-1 alpha-2 country code, current as of
|
||||||
|
# ISO 3166-1 N1087 (2022-09-02). See: Updates on ISO 3166-1
|
||||||
|
# https://isotc.iso.org/livelink/livelink/Open/16944257
|
||||||
|
# 2. The usual English name for the coded region,
|
||||||
|
# chosen so that alphabetic sorting of subsets produces helpful lists.
|
||||||
|
# This is not the same as the English name in the ISO 3166 tables.
|
||||||
|
#
|
||||||
|
# The table is sorted by country code.
|
||||||
|
#
|
||||||
|
# This table is intended as an aid for users, to help them select time
|
||||||
|
# zone data appropriate for their practical needs. It is not intended
|
||||||
|
# to take or endorse any position on legal or territorial claims.
|
||||||
|
#
|
||||||
|
#country-
|
||||||
|
#code name of country, territory, area, or subdivision
|
||||||
|
AD Andorra
|
||||||
|
AE United Arab Emirates
|
||||||
|
AF Afghanistan
|
||||||
|
AG Antigua & Barbuda
|
||||||
|
AI Anguilla
|
||||||
|
AL Albania
|
||||||
|
AM Armenia
|
||||||
|
AO Angola
|
||||||
|
AQ Antarctica
|
||||||
|
AR Argentina
|
||||||
|
AS Samoa (American)
|
||||||
|
AT Austria
|
||||||
|
AU Australia
|
||||||
|
AW Aruba
|
||||||
|
AX Åland Islands
|
||||||
|
AZ Azerbaijan
|
||||||
|
BA Bosnia & Herzegovina
|
||||||
|
BB Barbados
|
||||||
|
BD Bangladesh
|
||||||
|
BE Belgium
|
||||||
|
BF Burkina Faso
|
||||||
|
BG Bulgaria
|
||||||
|
BH Bahrain
|
||||||
|
BI Burundi
|
||||||
|
BJ Benin
|
||||||
|
BL St Barthelemy
|
||||||
|
BM Bermuda
|
||||||
|
BN Brunei
|
||||||
|
BO Bolivia
|
||||||
|
BQ Caribbean NL
|
||||||
|
BR Brazil
|
||||||
|
BS Bahamas
|
||||||
|
BT Bhutan
|
||||||
|
BV Bouvet Island
|
||||||
|
BW Botswana
|
||||||
|
BY Belarus
|
||||||
|
BZ Belize
|
||||||
|
CA Canada
|
||||||
|
CC Cocos (Keeling) Islands
|
||||||
|
CD Congo (Dem. Rep.)
|
||||||
|
CF Central African Rep.
|
||||||
|
CG Congo (Rep.)
|
||||||
|
CH Switzerland
|
||||||
|
CI Côte d'Ivoire
|
||||||
|
CK Cook Islands
|
||||||
|
CL Chile
|
||||||
|
CM Cameroon
|
||||||
|
CN China
|
||||||
|
CO Colombia
|
||||||
|
CR Costa Rica
|
||||||
|
CU Cuba
|
||||||
|
CV Cape Verde
|
||||||
|
CW Curaçao
|
||||||
|
CX Christmas Island
|
||||||
|
CY Cyprus
|
||||||
|
CZ Czech Republic
|
||||||
|
DE Germany
|
||||||
|
DJ Djibouti
|
||||||
|
DK Denmark
|
||||||
|
DM Dominica
|
||||||
|
DO Dominican Republic
|
||||||
|
DZ Algeria
|
||||||
|
EC Ecuador
|
||||||
|
EE Estonia
|
||||||
|
EG Egypt
|
||||||
|
EH Western Sahara
|
||||||
|
ER Eritrea
|
||||||
|
ES Spain
|
||||||
|
ET Ethiopia
|
||||||
|
FI Finland
|
||||||
|
FJ Fiji
|
||||||
|
FK Falkland Islands
|
||||||
|
FM Micronesia
|
||||||
|
FO Faroe Islands
|
||||||
|
FR France
|
||||||
|
GA Gabon
|
||||||
|
GB Britain (UK)
|
||||||
|
GD Grenada
|
||||||
|
GE Georgia
|
||||||
|
GF French Guiana
|
||||||
|
GG Guernsey
|
||||||
|
GH Ghana
|
||||||
|
GI Gibraltar
|
||||||
|
GL Greenland
|
||||||
|
GM Gambia
|
||||||
|
GN Guinea
|
||||||
|
GP Guadeloupe
|
||||||
|
GQ Equatorial Guinea
|
||||||
|
GR Greece
|
||||||
|
GS South Georgia & the South Sandwich Islands
|
||||||
|
GT Guatemala
|
||||||
|
GU Guam
|
||||||
|
GW Guinea-Bissau
|
||||||
|
GY Guyana
|
||||||
|
HK Hong Kong
|
||||||
|
HM Heard Island & McDonald Islands
|
||||||
|
HN Honduras
|
||||||
|
HR Croatia
|
||||||
|
HT Haiti
|
||||||
|
HU Hungary
|
||||||
|
ID Indonesia
|
||||||
|
IE Ireland
|
||||||
|
IL Israel
|
||||||
|
IM Isle of Man
|
||||||
|
IN India
|
||||||
|
IO British Indian Ocean Territory
|
||||||
|
IQ Iraq
|
||||||
|
IR Iran
|
||||||
|
IS Iceland
|
||||||
|
IT Italy
|
||||||
|
JE Jersey
|
||||||
|
JM Jamaica
|
||||||
|
JO Jordan
|
||||||
|
JP Japan
|
||||||
|
KE Kenya
|
||||||
|
KG Kyrgyzstan
|
||||||
|
KH Cambodia
|
||||||
|
KI Kiribati
|
||||||
|
KM Comoros
|
||||||
|
KN St Kitts & Nevis
|
||||||
|
KP Korea (North)
|
||||||
|
KR Korea (South)
|
||||||
|
KW Kuwait
|
||||||
|
KY Cayman Islands
|
||||||
|
KZ Kazakhstan
|
||||||
|
LA Laos
|
||||||
|
LB Lebanon
|
||||||
|
LC St Lucia
|
||||||
|
LI Liechtenstein
|
||||||
|
LK Sri Lanka
|
||||||
|
LR Liberia
|
||||||
|
LS Lesotho
|
||||||
|
LT Lithuania
|
||||||
|
LU Luxembourg
|
||||||
|
LV Latvia
|
||||||
|
LY Libya
|
||||||
|
MA Morocco
|
||||||
|
MC Monaco
|
||||||
|
MD Moldova
|
||||||
|
ME Montenegro
|
||||||
|
MF St Martin (French)
|
||||||
|
MG Madagascar
|
||||||
|
MH Marshall Islands
|
||||||
|
MK North Macedonia
|
||||||
|
ML Mali
|
||||||
|
MM Myanmar (Burma)
|
||||||
|
MN Mongolia
|
||||||
|
MO Macau
|
||||||
|
MP Northern Mariana Islands
|
||||||
|
MQ Martinique
|
||||||
|
MR Mauritania
|
||||||
|
MS Montserrat
|
||||||
|
MT Malta
|
||||||
|
MU Mauritius
|
||||||
|
MV Maldives
|
||||||
|
MW Malawi
|
||||||
|
MX Mexico
|
||||||
|
MY Malaysia
|
||||||
|
MZ Mozambique
|
||||||
|
NA Namibia
|
||||||
|
NC New Caledonia
|
||||||
|
NE Niger
|
||||||
|
NF Norfolk Island
|
||||||
|
NG Nigeria
|
||||||
|
NI Nicaragua
|
||||||
|
NL Netherlands
|
||||||
|
NO Norway
|
||||||
|
NP Nepal
|
||||||
|
NR Nauru
|
||||||
|
NU Niue
|
||||||
|
NZ New Zealand
|
||||||
|
OM Oman
|
||||||
|
PA Panama
|
||||||
|
PE Peru
|
||||||
|
PF French Polynesia
|
||||||
|
PG Papua New Guinea
|
||||||
|
PH Philippines
|
||||||
|
PK Pakistan
|
||||||
|
PL Poland
|
||||||
|
PM St Pierre & Miquelon
|
||||||
|
PN Pitcairn
|
||||||
|
PR Puerto Rico
|
||||||
|
PS Palestine
|
||||||
|
PT Portugal
|
||||||
|
PW Palau
|
||||||
|
PY Paraguay
|
||||||
|
QA Qatar
|
||||||
|
RE Réunion
|
||||||
|
RO Romania
|
||||||
|
RS Serbia
|
||||||
|
RU Russia
|
||||||
|
RW Rwanda
|
||||||
|
SA Saudi Arabia
|
||||||
|
SB Solomon Islands
|
||||||
|
SC Seychelles
|
||||||
|
SD Sudan
|
||||||
|
SE Sweden
|
||||||
|
SG Singapore
|
||||||
|
SH St Helena
|
||||||
|
SI Slovenia
|
||||||
|
SJ Svalbard & Jan Mayen
|
||||||
|
SK Slovakia
|
||||||
|
SL Sierra Leone
|
||||||
|
SM San Marino
|
||||||
|
SN Senegal
|
||||||
|
SO Somalia
|
||||||
|
SR Suriname
|
||||||
|
SS South Sudan
|
||||||
|
ST Sao Tome & Principe
|
||||||
|
SV El Salvador
|
||||||
|
SX St Maarten (Dutch)
|
||||||
|
SY Syria
|
||||||
|
SZ Eswatini (Swaziland)
|
||||||
|
TC Turks & Caicos Is
|
||||||
|
TD Chad
|
||||||
|
TF French S. Terr.
|
||||||
|
TG Togo
|
||||||
|
TH Thailand
|
||||||
|
TJ Tajikistan
|
||||||
|
TK Tokelau
|
||||||
|
TL East Timor
|
||||||
|
TM Turkmenistan
|
||||||
|
TN Tunisia
|
||||||
|
TO Tonga
|
||||||
|
TR Turkey
|
||||||
|
TT Trinidad & Tobago
|
||||||
|
TV Tuvalu
|
||||||
|
TW Taiwan
|
||||||
|
TZ Tanzania
|
||||||
|
UA Ukraine
|
||||||
|
UG Uganda
|
||||||
|
UM US minor outlying islands
|
||||||
|
US United States
|
||||||
|
UY Uruguay
|
||||||
|
UZ Uzbekistan
|
||||||
|
VA Vatican City
|
||||||
|
VC St Vincent
|
||||||
|
VE Venezuela
|
||||||
|
VG Virgin Islands (UK)
|
||||||
|
VI Virgin Islands (US)
|
||||||
|
VN Vietnam
|
||||||
|
VU Vanuatu
|
||||||
|
WF Wallis & Futuna
|
||||||
|
WS Samoa (western)
|
||||||
|
YE Yemen
|
||||||
|
YT Mayotte
|
||||||
|
ZA South Africa
|
||||||
|
ZM Zambia
|
||||||
|
ZW Zimbabwe
|
|
@ -0,0 +1,255 @@
|
||||||
|
#
|
||||||
|
# In the following text, the symbol '#' introduces
|
||||||
|
# a comment, which continues from that symbol until
|
||||||
|
# the end of the line. A plain comment line has a
|
||||||
|
# whitespace character following the comment indicator.
|
||||||
|
# There are also special comment lines defined below.
|
||||||
|
# A special comment will always have a non-whitespace
|
||||||
|
# character in column 2.
|
||||||
|
#
|
||||||
|
# A blank line should be ignored.
|
||||||
|
#
|
||||||
|
# The following table shows the corrections that must
|
||||||
|
# be applied to compute International Atomic Time (TAI)
|
||||||
|
# from the Coordinated Universal Time (UTC) values that
|
||||||
|
# are transmitted by almost all time services.
|
||||||
|
#
|
||||||
|
# The first column shows an epoch as a number of seconds
|
||||||
|
# since 1 January 1900, 00:00:00 (1900.0 is also used to
|
||||||
|
# indicate the same epoch.) Both of these time stamp formats
|
||||||
|
# ignore the complexities of the time scales that were
|
||||||
|
# used before the current definition of UTC at the start
|
||||||
|
# of 1972. (See note 3 below.)
|
||||||
|
# The second column shows the number of seconds that
|
||||||
|
# must be added to UTC to compute TAI for any timestamp
|
||||||
|
# at or after that epoch. The value on each line is
|
||||||
|
# valid from the indicated initial instant until the
|
||||||
|
# epoch given on the next one or indefinitely into the
|
||||||
|
# future if there is no next line.
|
||||||
|
# (The comment on each line shows the representation of
|
||||||
|
# the corresponding initial epoch in the usual
|
||||||
|
# day-month-year format. The epoch always begins at
|
||||||
|
# 00:00:00 UTC on the indicated day. See Note 5 below.)
|
||||||
|
#
|
||||||
|
# Important notes:
|
||||||
|
#
|
||||||
|
# 1. Coordinated Universal Time (UTC) is often referred to
|
||||||
|
# as Greenwich Mean Time (GMT). The GMT time scale is no
|
||||||
|
# longer used, and the use of GMT to designate UTC is
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# 2. The UTC time scale is realized by many national
|
||||||
|
# laboratories and timing centers. Each laboratory
|
||||||
|
# identifies its realization with its name: Thus
|
||||||
|
# UTC(NIST), UTC(USNO), etc. The differences among
|
||||||
|
# these different realizations are typically on the
|
||||||
|
# order of a few nanoseconds (i.e., 0.000 000 00x s)
|
||||||
|
# and can be ignored for many purposes. These differences
|
||||||
|
# are tabulated in Circular T, which is published monthly
|
||||||
|
# by the International Bureau of Weights and Measures
|
||||||
|
# (BIPM). See www.bipm.org for more information.
|
||||||
|
#
|
||||||
|
# 3. The current definition of the relationship between UTC
|
||||||
|
# and TAI dates from 1 January 1972. A number of different
|
||||||
|
# time scales were in use before that epoch, and it can be
|
||||||
|
# quite difficult to compute precise timestamps and time
|
||||||
|
# intervals in those "prehistoric" days. For more information,
|
||||||
|
# consult:
|
||||||
|
#
|
||||||
|
# The Explanatory Supplement to the Astronomical
|
||||||
|
# Ephemeris.
|
||||||
|
# or
|
||||||
|
# Terry Quinn, "The BIPM and the Accurate Measurement
|
||||||
|
# of Time," Proc. of the IEEE, Vol. 79, pp. 894-905,
|
||||||
|
# July, 1991. <http://dx.doi.org/10.1109/5.84965>
|
||||||
|
# reprinted in:
|
||||||
|
# Christine Hackman and Donald B Sullivan (eds.)
|
||||||
|
# Time and Frequency Measurement
|
||||||
|
# American Association of Physics Teachers (1996)
|
||||||
|
# <http://tf.nist.gov/general/pdf/1168.pdf>, pp. 75-86
|
||||||
|
#
|
||||||
|
# 4. The decision to insert a leap second into UTC is currently
|
||||||
|
# the responsibility of the International Earth Rotation and
|
||||||
|
# Reference Systems Service. (The name was changed from the
|
||||||
|
# International Earth Rotation Service, but the acronym IERS
|
||||||
|
# is still used.)
|
||||||
|
#
|
||||||
|
# Leap seconds are announced by the IERS in its Bulletin C.
|
||||||
|
#
|
||||||
|
# See www.iers.org for more details.
|
||||||
|
#
|
||||||
|
# Every national laboratory and timing center uses the
|
||||||
|
# data from the BIPM and the IERS to construct UTC(lab),
|
||||||
|
# their local realization of UTC.
|
||||||
|
#
|
||||||
|
# Although the definition also includes the possibility
|
||||||
|
# of dropping seconds ("negative" leap seconds), this has
|
||||||
|
# never been done and is unlikely to be necessary in the
|
||||||
|
# foreseeable future.
|
||||||
|
#
|
||||||
|
# 5. If your system keeps time as the number of seconds since
|
||||||
|
# some epoch (e.g., NTP timestamps), then the algorithm for
|
||||||
|
# assigning a UTC time stamp to an event that happens during a positive
|
||||||
|
# leap second is not well defined. The official name of that leap
|
||||||
|
# second is 23:59:60, but there is no way of representing that time
|
||||||
|
# in these systems.
|
||||||
|
# Many systems of this type effectively stop the system clock for
|
||||||
|
# one second during the leap second and use a time that is equivalent
|
||||||
|
# to 23:59:59 UTC twice. For these systems, the corresponding TAI
|
||||||
|
# timestamp would be obtained by advancing to the next entry in the
|
||||||
|
# following table when the time equivalent to 23:59:59 UTC
|
||||||
|
# is used for the second time. Thus the leap second which
|
||||||
|
# occurred on 30 June 1972 at 23:59:59 UTC would have TAI
|
||||||
|
# timestamps computed as follows:
|
||||||
|
#
|
||||||
|
# ...
|
||||||
|
# 30 June 1972 23:59:59 (2287785599, first time): TAI= UTC + 10 seconds
|
||||||
|
# 30 June 1972 23:59:60 (2287785599,second time): TAI= UTC + 11 seconds
|
||||||
|
# 1 July 1972 00:00:00 (2287785600) TAI= UTC + 11 seconds
|
||||||
|
# ...
|
||||||
|
#
|
||||||
|
# If your system realizes the leap second by repeating 00:00:00 UTC twice
|
||||||
|
# (this is possible but not usual), then the advance to the next entry
|
||||||
|
# in the table must occur the second time that a time equivalent to
|
||||||
|
# 00:00:00 UTC is used. Thus, using the same example as above:
|
||||||
|
#
|
||||||
|
# ...
|
||||||
|
# 30 June 1972 23:59:59 (2287785599): TAI= UTC + 10 seconds
|
||||||
|
# 30 June 1972 23:59:60 (2287785600, first time): TAI= UTC + 10 seconds
|
||||||
|
# 1 July 1972 00:00:00 (2287785600,second time): TAI= UTC + 11 seconds
|
||||||
|
# ...
|
||||||
|
#
|
||||||
|
# in both cases the use of timestamps based on TAI produces a smooth
|
||||||
|
# time scale with no discontinuity in the time interval. However,
|
||||||
|
# although the long-term behavior of the time scale is correct in both
|
||||||
|
# methods, the second method is technically not correct because it adds
|
||||||
|
# the extra second to the wrong day.
|
||||||
|
#
|
||||||
|
# This complexity would not be needed for negative leap seconds (if they
|
||||||
|
# are ever used). The UTC time would skip 23:59:59 and advance from
|
||||||
|
# 23:59:58 to 00:00:00 in that case. The TAI offset would decrease by
|
||||||
|
# 1 second at the same instant. This is a much easier situation to deal
|
||||||
|
# with, since the difficulty of unambiguously representing the epoch
|
||||||
|
# during the leap second does not arise.
|
||||||
|
#
|
||||||
|
# Some systems implement leap seconds by amortizing the leap second
|
||||||
|
# over the last few minutes of the day. The frequency of the local
|
||||||
|
# clock is decreased (or increased) to realize the positive (or
|
||||||
|
# negative) leap second. This method removes the time step described
|
||||||
|
# above. Although the long-term behavior of the time scale is correct
|
||||||
|
# in this case, this method introduces an error during the adjustment
|
||||||
|
# period both in time and in frequency with respect to the official
|
||||||
|
# definition of UTC.
|
||||||
|
#
|
||||||
|
# Questions or comments to:
|
||||||
|
# Judah Levine
|
||||||
|
# Time and Frequency Division
|
||||||
|
# NIST
|
||||||
|
# Boulder, Colorado
|
||||||
|
# Judah.Levine@nist.gov
|
||||||
|
#
|
||||||
|
# Last Update of leap second values: 8 July 2016
|
||||||
|
#
|
||||||
|
# The following line shows this last update date in NTP timestamp
|
||||||
|
# format. This is the date on which the most recent change to
|
||||||
|
# the leap second data was added to the file. This line can
|
||||||
|
# be identified by the unique pair of characters in the first two
|
||||||
|
# columns as shown below.
|
||||||
|
#
|
||||||
|
#$ 3676924800
|
||||||
|
#
|
||||||
|
# The NTP timestamps are in units of seconds since the NTP epoch,
|
||||||
|
# which is 1 January 1900, 00:00:00. The Modified Julian Day number
|
||||||
|
# corresponding to the NTP time stamp, X, can be computed as
|
||||||
|
#
|
||||||
|
# X/86400 + 15020
|
||||||
|
#
|
||||||
|
# where the first term converts seconds to days and the second
|
||||||
|
# term adds the MJD corresponding to the time origin defined above.
|
||||||
|
# The integer portion of the result is the integer MJD for that
|
||||||
|
# day, and any remainder is the time of day, expressed as the
|
||||||
|
# fraction of the day since 0 hours UTC. The conversion from day
|
||||||
|
# fraction to seconds or to hours, minutes, and seconds may involve
|
||||||
|
# rounding or truncation, depending on the method used in the
|
||||||
|
# computation.
|
||||||
|
#
|
||||||
|
# The data in this file will be updated periodically as new leap
|
||||||
|
# seconds are announced. In addition to being entered on the line
|
||||||
|
# above, the update time (in NTP format) will be added to the basic
|
||||||
|
# file name leap-seconds to form the name leap-seconds.<NTP TIME>.
|
||||||
|
# In addition, the generic name leap-seconds.list will always point to
|
||||||
|
# the most recent version of the file.
|
||||||
|
#
|
||||||
|
# This update procedure will be performed only when a new leap second
|
||||||
|
# is announced.
|
||||||
|
#
|
||||||
|
# The following entry specifies the expiration date of the data
|
||||||
|
# in this file in units of seconds since the origin at the instant
|
||||||
|
# 1 January 1900, 00:00:00. This expiration date will be changed
|
||||||
|
# at least twice per year whether or not a new leap second is
|
||||||
|
# announced. These semi-annual changes will be made no later
|
||||||
|
# than 1 June and 1 December of each year to indicate what
|
||||||
|
# action (if any) is to be taken on 30 June and 31 December,
|
||||||
|
# respectively. (These are the customary effective dates for new
|
||||||
|
# leap seconds.) This expiration date will be identified by a
|
||||||
|
# unique pair of characters in columns 1 and 2 as shown below.
|
||||||
|
# In the unlikely event that a leap second is announced with an
|
||||||
|
# effective date other than 30 June or 31 December, then this
|
||||||
|
# file will be edited to include that leap second as soon as it is
|
||||||
|
# announced or at least one month before the effective date
|
||||||
|
# (whichever is later).
|
||||||
|
# If an announcement by the IERS specifies that no leap second is
|
||||||
|
# scheduled, then only the expiration date of the file will
|
||||||
|
# be advanced to show that the information in the file is still
|
||||||
|
# current -- the update time stamp, the data and the name of the file
|
||||||
|
# will not change.
|
||||||
|
#
|
||||||
|
# Updated through IERS Bulletin C65
|
||||||
|
# File expires on: 28 December 2023
|
||||||
|
#
|
||||||
|
#@ 3912710400
|
||||||
|
#
|
||||||
|
2272060800 10 # 1 Jan 1972
|
||||||
|
2287785600 11 # 1 Jul 1972
|
||||||
|
2303683200 12 # 1 Jan 1973
|
||||||
|
2335219200 13 # 1 Jan 1974
|
||||||
|
2366755200 14 # 1 Jan 1975
|
||||||
|
2398291200 15 # 1 Jan 1976
|
||||||
|
2429913600 16 # 1 Jan 1977
|
||||||
|
2461449600 17 # 1 Jan 1978
|
||||||
|
2492985600 18 # 1 Jan 1979
|
||||||
|
2524521600 19 # 1 Jan 1980
|
||||||
|
2571782400 20 # 1 Jul 1981
|
||||||
|
2603318400 21 # 1 Jul 1982
|
||||||
|
2634854400 22 # 1 Jul 1983
|
||||||
|
2698012800 23 # 1 Jul 1985
|
||||||
|
2776982400 24 # 1 Jan 1988
|
||||||
|
2840140800 25 # 1 Jan 1990
|
||||||
|
2871676800 26 # 1 Jan 1991
|
||||||
|
2918937600 27 # 1 Jul 1992
|
||||||
|
2950473600 28 # 1 Jul 1993
|
||||||
|
2982009600 29 # 1 Jul 1994
|
||||||
|
3029443200 30 # 1 Jan 1996
|
||||||
|
3076704000 31 # 1 Jul 1997
|
||||||
|
3124137600 32 # 1 Jan 1999
|
||||||
|
3345062400 33 # 1 Jan 2006
|
||||||
|
3439756800 34 # 1 Jan 2009
|
||||||
|
3550089600 35 # 1 Jul 2012
|
||||||
|
3644697600 36 # 1 Jul 2015
|
||||||
|
3692217600 37 # 1 Jan 2017
|
||||||
|
#
|
||||||
|
# the following special comment contains the
|
||||||
|
# hash value of the data in this file computed
|
||||||
|
# use the secure hash algorithm as specified
|
||||||
|
# by FIPS 180-1. See the files in ~/pub/sha for
|
||||||
|
# the details of how this hash value is
|
||||||
|
# computed. Note that the hash computation
|
||||||
|
# ignores comments and whitespace characters
|
||||||
|
# in data lines. It includes the NTP values
|
||||||
|
# of both the last modification time and the
|
||||||
|
# expiration time of the file, but not the
|
||||||
|
# white space on those lines.
|
||||||
|
# the hash line is also ignored in the
|
||||||
|
# computation.
|
||||||
|
#
|
||||||
|
#h e76a99dc 65f15cc7 e613e040 f5078b5e b23834fe
|
|
@ -0,0 +1,82 @@
|
||||||
|
# Allowance for leap seconds added to each time zone file.
|
||||||
|
|
||||||
|
# This file is in the public domain.
|
||||||
|
|
||||||
|
# This file is generated automatically from the data in the public-domain
|
||||||
|
# NIST format leap-seconds.list file, which can be copied from
|
||||||
|
# <ftp://ftp.nist.gov/pub/time/leap-seconds.list>
|
||||||
|
# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>.
|
||||||
|
# The NIST file is used instead of its IERS upstream counterpart
|
||||||
|
# <https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list>
|
||||||
|
# because under US law the NIST file is public domain
|
||||||
|
# whereas the IERS file's copyright and license status is unclear.
|
||||||
|
# For more about leap-seconds.list, please see
|
||||||
|
# The NTP Timescale and Leap Seconds
|
||||||
|
# <https://www.eecis.udel.edu/~mills/leap.html>.
|
||||||
|
|
||||||
|
# The rules for leap seconds are specified in Annex 1 (Time scales) of:
|
||||||
|
# Standard-frequency and time-signal emissions.
|
||||||
|
# International Telecommunication Union - Radiocommunication Sector
|
||||||
|
# (ITU-R) Recommendation TF.460-6 (02/2002)
|
||||||
|
# <https://www.itu.int/rec/R-REC-TF.460-6-200202-I/>.
|
||||||
|
# The International Earth Rotation and Reference Systems Service (IERS)
|
||||||
|
# periodically uses leap seconds to keep UTC to within 0.9 s of UT1
|
||||||
|
# (a proxy for Earth's angle in space as measured by astronomers)
|
||||||
|
# and publishes leap second data in a copyrighted file
|
||||||
|
# <https://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat>.
|
||||||
|
# See: Levine J. Coordinated Universal Time and the leap second.
|
||||||
|
# URSI Radio Sci Bull. 2016;89(4):30-6. doi:10.23919/URSIRSB.2016.7909995
|
||||||
|
# <https://ieeexplore.ieee.org/document/7909995>.
|
||||||
|
|
||||||
|
# There were no leap seconds before 1972, as no official mechanism
|
||||||
|
# accounted for the discrepancy between atomic time (TAI) and the earth's
|
||||||
|
# rotation. The first ("1 Jan 1972") data line in leap-seconds.list
|
||||||
|
# does not denote a leap second; it denotes the start of the current definition
|
||||||
|
# of UTC.
|
||||||
|
|
||||||
|
# All leap-seconds are Stationary (S) at the given UTC time.
|
||||||
|
# The correction (+ or -) is made at the given time, so in the unlikely
|
||||||
|
# event of a negative leap second, a line would look like this:
|
||||||
|
# Leap YEAR MON DAY 23:59:59 - S
|
||||||
|
# Typical lines look like this:
|
||||||
|
# Leap YEAR MON DAY 23:59:60 + S
|
||||||
|
Leap 1972 Jun 30 23:59:60 + S
|
||||||
|
Leap 1972 Dec 31 23:59:60 + S
|
||||||
|
Leap 1973 Dec 31 23:59:60 + S
|
||||||
|
Leap 1974 Dec 31 23:59:60 + S
|
||||||
|
Leap 1975 Dec 31 23:59:60 + S
|
||||||
|
Leap 1976 Dec 31 23:59:60 + S
|
||||||
|
Leap 1977 Dec 31 23:59:60 + S
|
||||||
|
Leap 1978 Dec 31 23:59:60 + S
|
||||||
|
Leap 1979 Dec 31 23:59:60 + S
|
||||||
|
Leap 1981 Jun 30 23:59:60 + S
|
||||||
|
Leap 1982 Jun 30 23:59:60 + S
|
||||||
|
Leap 1983 Jun 30 23:59:60 + S
|
||||||
|
Leap 1985 Jun 30 23:59:60 + S
|
||||||
|
Leap 1987 Dec 31 23:59:60 + S
|
||||||
|
Leap 1989 Dec 31 23:59:60 + S
|
||||||
|
Leap 1990 Dec 31 23:59:60 + S
|
||||||
|
Leap 1992 Jun 30 23:59:60 + S
|
||||||
|
Leap 1993 Jun 30 23:59:60 + S
|
||||||
|
Leap 1994 Jun 30 23:59:60 + S
|
||||||
|
Leap 1995 Dec 31 23:59:60 + S
|
||||||
|
Leap 1997 Jun 30 23:59:60 + S
|
||||||
|
Leap 1998 Dec 31 23:59:60 + S
|
||||||
|
Leap 2005 Dec 31 23:59:60 + S
|
||||||
|
Leap 2008 Dec 31 23:59:60 + S
|
||||||
|
Leap 2012 Jun 30 23:59:60 + S
|
||||||
|
Leap 2015 Jun 30 23:59:60 + S
|
||||||
|
Leap 2016 Dec 31 23:59:60 + S
|
||||||
|
|
||||||
|
# UTC timestamp when this leap second list expires.
|
||||||
|
# Any additional leap seconds will come after this.
|
||||||
|
# This Expires line is commented out for now,
|
||||||
|
# so that pre-2020a zic implementations do not reject this file.
|
||||||
|
#Expires 2023 Dec 28 00:00:00
|
||||||
|
|
||||||
|
# POSIX timestamps for the data in this file:
|
||||||
|
#updated 1467936000 (2016-07-08 00:00:00 UTC)
|
||||||
|
#expires 1703721600 (2023-12-28 00:00:00 UTC)
|
||||||
|
|
||||||
|
# Updated through IERS Bulletin C65
|
||||||
|
# File expires on: 28 December 2023
|
|
@ -0,0 +1,252 @@
|
||||||
|
# Generate zic format 'leapseconds' from NIST format 'leap-seconds.list'.
|
||||||
|
|
||||||
|
# This file is in the public domain.
|
||||||
|
|
||||||
|
# This program uses awk arithmetic. POSIX requires awk to support
|
||||||
|
# exact integer arithmetic only through 10**10, which means for NTP
|
||||||
|
# timestamps this program works only to the year 2216, which is the
|
||||||
|
# year 1900 plus 10**10 seconds. However, in practice
|
||||||
|
# POSIX-conforming awk implementations invariably use IEEE-754 double
|
||||||
|
# and so support exact integers through 2**53. By the year 2216,
|
||||||
|
# POSIX will almost surely require at least 2**53 for awk, so for NTP
|
||||||
|
# timestamps this program should be good until the year 285,428,681
|
||||||
|
# (the year 1900 plus 2**53 seconds). By then leap seconds will be
|
||||||
|
# long obsolete, as the Earth will likely slow down so much that
|
||||||
|
# there will be more than 25 hours per day and so some other scheme
|
||||||
|
# will be needed.
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
print "# Allowance for leap seconds added to each time zone file."
|
||||||
|
print ""
|
||||||
|
print "# This file is in the public domain."
|
||||||
|
print ""
|
||||||
|
print "# This file is generated automatically from the data in the public-domain"
|
||||||
|
print "# NIST format leap-seconds.list file, which can be copied from"
|
||||||
|
print "# <ftp://ftp.nist.gov/pub/time/leap-seconds.list>"
|
||||||
|
print "# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>."
|
||||||
|
print "# The NIST file is used instead of its IERS upstream counterpart"
|
||||||
|
print "# <https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list>"
|
||||||
|
print "# because under US law the NIST file is public domain"
|
||||||
|
print "# whereas the IERS file's copyright and license status is unclear."
|
||||||
|
print "# For more about leap-seconds.list, please see"
|
||||||
|
print "# The NTP Timescale and Leap Seconds"
|
||||||
|
print "# <https://www.eecis.udel.edu/~mills/leap.html>."
|
||||||
|
print ""
|
||||||
|
print "# The rules for leap seconds are specified in Annex 1 (Time scales) of:"
|
||||||
|
print "# Standard-frequency and time-signal emissions."
|
||||||
|
print "# International Telecommunication Union - Radiocommunication Sector"
|
||||||
|
print "# (ITU-R) Recommendation TF.460-6 (02/2002)"
|
||||||
|
print "# <https://www.itu.int/rec/R-REC-TF.460-6-200202-I/>."
|
||||||
|
print "# The International Earth Rotation and Reference Systems Service (IERS)"
|
||||||
|
print "# periodically uses leap seconds to keep UTC to within 0.9 s of UT1"
|
||||||
|
print "# (a proxy for Earth's angle in space as measured by astronomers)"
|
||||||
|
print "# and publishes leap second data in a copyrighted file"
|
||||||
|
print "# <https://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat>."
|
||||||
|
print "# See: Levine J. Coordinated Universal Time and the leap second."
|
||||||
|
print "# URSI Radio Sci Bull. 2016;89(4):30-6. doi:10.23919/URSIRSB.2016.7909995"
|
||||||
|
print "# <https://ieeexplore.ieee.org/document/7909995>."
|
||||||
|
print ""
|
||||||
|
print "# There were no leap seconds before 1972, as no official mechanism"
|
||||||
|
print "# accounted for the discrepancy between atomic time (TAI) and the earth's"
|
||||||
|
print "# rotation. The first (\"1 Jan 1972\") data line in leap-seconds.list"
|
||||||
|
print "# does not denote a leap second; it denotes the start of the current definition"
|
||||||
|
print "# of UTC."
|
||||||
|
print ""
|
||||||
|
print "# All leap-seconds are Stationary (S) at the given UTC time."
|
||||||
|
print "# The correction (+ or -) is made at the given time, so in the unlikely"
|
||||||
|
print "# event of a negative leap second, a line would look like this:"
|
||||||
|
print "# Leap YEAR MON DAY 23:59:59 - S"
|
||||||
|
print "# Typical lines look like this:"
|
||||||
|
print "# Leap YEAR MON DAY 23:59:60 + S"
|
||||||
|
|
||||||
|
monthabbr[ 1] = "Jan"
|
||||||
|
monthabbr[ 2] = "Feb"
|
||||||
|
monthabbr[ 3] = "Mar"
|
||||||
|
monthabbr[ 4] = "Apr"
|
||||||
|
monthabbr[ 5] = "May"
|
||||||
|
monthabbr[ 6] = "Jun"
|
||||||
|
monthabbr[ 7] = "Jul"
|
||||||
|
monthabbr[ 8] = "Aug"
|
||||||
|
monthabbr[ 9] = "Sep"
|
||||||
|
monthabbr[10] = "Oct"
|
||||||
|
monthabbr[11] = "Nov"
|
||||||
|
monthabbr[12] = "Dec"
|
||||||
|
|
||||||
|
sstamp_init()
|
||||||
|
}
|
||||||
|
|
||||||
|
# In case the input has CRLF form a la NIST.
|
||||||
|
{ sub(/\r$/, "") }
|
||||||
|
|
||||||
|
/^#[ \t]*[Uu]pdated through/ || /^#[ \t]*[Ff]ile expires on/ {
|
||||||
|
last_lines = last_lines $0 "\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
/^#[$][ \t]/ { updated = $2 }
|
||||||
|
/^#[@][ \t]/ { expires = $2 }
|
||||||
|
|
||||||
|
/^[ \t]*#/ { next }
|
||||||
|
|
||||||
|
{
|
||||||
|
NTP_timestamp = $1
|
||||||
|
TAI_minus_UTC = $2
|
||||||
|
if (old_TAI_minus_UTC) {
|
||||||
|
if (old_TAI_minus_UTC < TAI_minus_UTC) {
|
||||||
|
sign = "23:59:60\t+"
|
||||||
|
} else {
|
||||||
|
sign = "23:59:59\t-"
|
||||||
|
}
|
||||||
|
sstamp_to_ymdhMs(NTP_timestamp - 1, ss_NTP)
|
||||||
|
printf "Leap\t%d\t%s\t%d\t%s\tS\n", \
|
||||||
|
ss_year, monthabbr[ss_month], ss_mday, sign
|
||||||
|
}
|
||||||
|
old_TAI_minus_UTC = TAI_minus_UTC
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
print ""
|
||||||
|
|
||||||
|
if (expires) {
|
||||||
|
sstamp_to_ymdhMs(expires, ss_NTP)
|
||||||
|
|
||||||
|
print "# UTC timestamp when this leap second list expires."
|
||||||
|
print "# Any additional leap seconds will come after this."
|
||||||
|
if (! EXPIRES_LINE) {
|
||||||
|
print "# This Expires line is commented out for now,"
|
||||||
|
print "# so that pre-2020a zic implementations do not reject this file."
|
||||||
|
}
|
||||||
|
printf "%sExpires %.4d\t%s\t%.2d\t%.2d:%.2d:%.2d\n", \
|
||||||
|
EXPIRES_LINE ? "" : "#", \
|
||||||
|
ss_year, monthabbr[ss_month], ss_mday, ss_hour, ss_min, ss_sec
|
||||||
|
} else {
|
||||||
|
print "# (No Expires line, since the expires time is unknown.)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# The difference between the NTP and POSIX epochs is 70 years
|
||||||
|
# (including 17 leap days), each 24 hours of 60 minutes of 60
|
||||||
|
# seconds each.
|
||||||
|
epoch_minus_NTP = ((1970 - 1900) * 365 + 17) * 24 * 60 * 60
|
||||||
|
|
||||||
|
print ""
|
||||||
|
print "# POSIX timestamps for the data in this file:"
|
||||||
|
if (updated) {
|
||||||
|
sstamp_to_ymdhMs(updated, ss_NTP)
|
||||||
|
printf "#updated %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \
|
||||||
|
updated - epoch_minus_NTP, \
|
||||||
|
ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec
|
||||||
|
} else {
|
||||||
|
print "#(updated time unknown)"
|
||||||
|
}
|
||||||
|
if (expires) {
|
||||||
|
sstamp_to_ymdhMs(expires, ss_NTP)
|
||||||
|
printf "#expires %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \
|
||||||
|
expires - epoch_minus_NTP, \
|
||||||
|
ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec
|
||||||
|
} else {
|
||||||
|
print "#(expires time unknown)"
|
||||||
|
}
|
||||||
|
printf "\n%s", last_lines
|
||||||
|
}
|
||||||
|
|
||||||
|
# sstamp_to_ymdhMs - convert seconds timestamp to date and time
|
||||||
|
#
|
||||||
|
# Call as:
|
||||||
|
#
|
||||||
|
# sstamp_to_ymdhMs(sstamp, epoch_days)
|
||||||
|
#
|
||||||
|
# where:
|
||||||
|
#
|
||||||
|
# sstamp - is the seconds timestamp.
|
||||||
|
# epoch_days - is the timestamp epoch in Gregorian days since 1600-03-01.
|
||||||
|
# ss_NTP is appropriate for an NTP sstamp.
|
||||||
|
#
|
||||||
|
# Both arguments should be nonnegative integers.
|
||||||
|
# On return, the following variables are set based on sstamp:
|
||||||
|
#
|
||||||
|
# ss_year - Gregorian calendar year
|
||||||
|
# ss_month - month of the year (1-January to 12-December)
|
||||||
|
# ss_mday - day of the month (1-31)
|
||||||
|
# ss_hour - hour (0-23)
|
||||||
|
# ss_min - minute (0-59)
|
||||||
|
# ss_sec - second (0-59)
|
||||||
|
# ss_wday - day of week (0-Sunday to 6-Saturday)
|
||||||
|
#
|
||||||
|
# The function sstamp_init should be called prior to using sstamp_to_ymdhMs.
|
||||||
|
|
||||||
|
function sstamp_init()
|
||||||
|
{
|
||||||
|
# Days in month N, where March is month 0 and January month 10.
|
||||||
|
ss_mon_days[ 0] = 31
|
||||||
|
ss_mon_days[ 1] = 30
|
||||||
|
ss_mon_days[ 2] = 31
|
||||||
|
ss_mon_days[ 3] = 30
|
||||||
|
ss_mon_days[ 4] = 31
|
||||||
|
ss_mon_days[ 5] = 31
|
||||||
|
ss_mon_days[ 6] = 30
|
||||||
|
ss_mon_days[ 7] = 31
|
||||||
|
ss_mon_days[ 8] = 30
|
||||||
|
ss_mon_days[ 9] = 31
|
||||||
|
ss_mon_days[10] = 31
|
||||||
|
|
||||||
|
# Counts of days in a Gregorian year, quad-year, century, and quad-century.
|
||||||
|
ss_year_days = 365
|
||||||
|
ss_quadyear_days = ss_year_days * 4 + 1
|
||||||
|
ss_century_days = ss_quadyear_days * 25 - 1
|
||||||
|
ss_quadcentury_days = ss_century_days * 4 + 1
|
||||||
|
|
||||||
|
# Standard day epochs, suitable for epoch_days.
|
||||||
|
# ss_MJD = 94493
|
||||||
|
# ss_POSIX = 135080
|
||||||
|
ss_NTP = 109513
|
||||||
|
}
|
||||||
|
|
||||||
|
function sstamp_to_ymdhMs(sstamp, epoch_days, \
|
||||||
|
quadcentury, century, quadyear, year, month, day)
|
||||||
|
{
|
||||||
|
ss_hour = int(sstamp / 3600) % 24
|
||||||
|
ss_min = int(sstamp / 60) % 60
|
||||||
|
ss_sec = sstamp % 60
|
||||||
|
|
||||||
|
# Start with a count of days since 1600-03-01 Gregorian.
|
||||||
|
day = epoch_days + int(sstamp / (24 * 60 * 60))
|
||||||
|
|
||||||
|
# Compute a year-month-day date with days of the month numbered
|
||||||
|
# 0-30, months (March-February) numbered 0-11, and years that start
|
||||||
|
# start March 1 and end after the last day of February. A quad-year
|
||||||
|
# starts on March 1 of a year evenly divisible by 4 and ends after
|
||||||
|
# the last day of February 4 years later. A century starts on and
|
||||||
|
# ends before March 1 in years evenly divisible by 100.
|
||||||
|
# A quad-century starts on and ends before March 1 in years divisible
|
||||||
|
# by 400. While the number of days in a quad-century is a constant,
|
||||||
|
# the number of days in each other time period can vary by 1.
|
||||||
|
# Any variation is in the last day of the time period (there might
|
||||||
|
# or might not be a February 29) where it is easy to deal with.
|
||||||
|
|
||||||
|
quadcentury = int(day / ss_quadcentury_days)
|
||||||
|
day -= quadcentury * ss_quadcentury_days
|
||||||
|
ss_wday = (day + 3) % 7
|
||||||
|
century = int(day / ss_century_days)
|
||||||
|
century -= century == 4
|
||||||
|
day -= century * ss_century_days
|
||||||
|
quadyear = int(day / ss_quadyear_days)
|
||||||
|
day -= quadyear * ss_quadyear_days
|
||||||
|
year = int(day / ss_year_days)
|
||||||
|
year -= year == 4
|
||||||
|
day -= year * ss_year_days
|
||||||
|
for (month = 0; month < 11; month++) {
|
||||||
|
if (day < ss_mon_days[month])
|
||||||
|
break
|
||||||
|
day -= ss_mon_days[month]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Convert the date to a conventional day of month (1-31),
|
||||||
|
# month (1-12, January-December) and Gregorian year.
|
||||||
|
ss_mday = day + 1
|
||||||
|
if (month <= 9) {
|
||||||
|
ss_month = month + 3
|
||||||
|
} else {
|
||||||
|
ss_month = month - 9
|
||||||
|
year++
|
||||||
|
}
|
||||||
|
ss_year = 1600 + quadcentury * 400 + century * 100 + quadyear * 4 + year
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
||||||
|
2023c
|
|
@ -0,0 +1,386 @@
|
||||||
|
# Convert tzdata source into vanguard or rearguard form.
|
||||||
|
|
||||||
|
# Contributed by Paul Eggert. This file is in the public domain.
|
||||||
|
|
||||||
|
# This is not a general-purpose converter; it is designed for current tzdata.
|
||||||
|
# It just converts from current source to main, vanguard, and rearguard forms.
|
||||||
|
# Although it might be nice for it to be idempotent, or to be useful
|
||||||
|
# for converting back and forth between vanguard and rearguard formats,
|
||||||
|
# it does not do these nonessential tasks now.
|
||||||
|
#
|
||||||
|
# Although main and vanguard forms are currently equivalent,
|
||||||
|
# this need not always be the case. When the two forms differ,
|
||||||
|
# this script can convert either from main to vanguard form (needed then),
|
||||||
|
# or from vanguard to main form (this conversion would be needed later,
|
||||||
|
# after main became rearguard and vanguard became main).
|
||||||
|
# There is no need to convert rearguard to other forms.
|
||||||
|
#
|
||||||
|
# When converting to vanguard form, the output can use the line
|
||||||
|
# "Zone GMT 0 - GMT" which TZUpdater 2.3.2 mistakenly rejects.
|
||||||
|
#
|
||||||
|
# When converting to vanguard form, the output can use negative SAVE
|
||||||
|
# values.
|
||||||
|
#
|
||||||
|
# When converting to rearguard form, the output uses only nonnegative
|
||||||
|
# SAVE values. The idea is for the output data to simulate the behavior
|
||||||
|
# of the input data as best it can within the constraints of the
|
||||||
|
# rearguard format.
|
||||||
|
|
||||||
|
# Given a FIELD like "-0:30", return a minute count like -30.
|
||||||
|
function get_minutes(field, \
|
||||||
|
sign, hours, minutes)
|
||||||
|
{
|
||||||
|
sign = field ~ /^-/ ? -1 : 1
|
||||||
|
hours = +field
|
||||||
|
if (field ~ /:/) {
|
||||||
|
minutes = field
|
||||||
|
sub(/[^:]*:/, "", minutes)
|
||||||
|
}
|
||||||
|
return 60 * hours + sign * minutes
|
||||||
|
}
|
||||||
|
|
||||||
|
# Given an OFFSET, which is a minute count like 300 or 330,
|
||||||
|
# return a %z-style abbreviation like "+05" or "+0530".
|
||||||
|
function offset_abbr(offset, \
|
||||||
|
hours, minutes, sign)
|
||||||
|
{
|
||||||
|
hours = int(offset / 60)
|
||||||
|
minutes = offset % 60
|
||||||
|
if (minutes) {
|
||||||
|
return sprintf("%+.4d", hours * 100 + minutes);
|
||||||
|
} else {
|
||||||
|
return sprintf("%+.2d", hours)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Round TIMESTAMP (a +-hh:mm:ss.dddd string) to the nearest second.
|
||||||
|
function round_to_second(timestamp, \
|
||||||
|
hh, mm, ss, seconds, dot_dddd, subseconds)
|
||||||
|
{
|
||||||
|
dot_dddd = timestamp
|
||||||
|
if (!sub(/^[+-]?[0-9]+:[0-9]+:[0-9]+\./, ".", dot_dddd))
|
||||||
|
return timestamp
|
||||||
|
hh = mm = ss = timestamp
|
||||||
|
sub(/^[-+]?[0-9]+:[0-9]+:/, "", ss)
|
||||||
|
sub(/^[-+]?[0-9]+:/, "", mm)
|
||||||
|
sub(/^[-+]?/, "", hh)
|
||||||
|
seconds = 3600 * hh + 60 * mm + ss
|
||||||
|
subseconds = +dot_dddd
|
||||||
|
seconds += 0.5 < subseconds || ((subseconds == 0.5) && (seconds % 2));
|
||||||
|
return sprintf("%s%d:%.2d:%.2d", timestamp ~ /^-/ ? "-" : "", \
|
||||||
|
seconds / 3600, seconds / 60 % 60, seconds % 60)
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
dataform_type["vanguard"] = 1
|
||||||
|
dataform_type["main"] = 1
|
||||||
|
dataform_type["rearguard"] = 1
|
||||||
|
|
||||||
|
if (PACKRATLIST) {
|
||||||
|
while (getline <PACKRATLIST) {
|
||||||
|
if ($0 ~ /^#/) continue
|
||||||
|
packratlist[$3] = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# The command line should set DATAFORM.
|
||||||
|
if (!dataform_type[DATAFORM]) exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
$1 == "#PACKRATLIST" && $2 == PACKRATLIST {
|
||||||
|
sub(/^#PACKRATLIST[\t ]+[^\t ]+[\t ]+/, "")
|
||||||
|
}
|
||||||
|
|
||||||
|
/^Zone/ { zone = $2 }
|
||||||
|
|
||||||
|
DATAFORM != "main" {
|
||||||
|
in_comment = $0 ~ /^#/
|
||||||
|
uncomment = comment_out = 0
|
||||||
|
|
||||||
|
# If this line should differ due to Czechoslovakia using negative SAVE values,
|
||||||
|
# uncomment the desired version and comment out the undesired one.
|
||||||
|
if (zone == "Europe/Prague" && $0 ~ /^#?[\t ]+[01]:00[\t ]/ \
|
||||||
|
&& $0 ~ /1947 Feb 23/) {
|
||||||
|
if (($(in_comment + 2) != "-") == (DATAFORM != "rearguard")) {
|
||||||
|
uncomment = in_comment
|
||||||
|
} else {
|
||||||
|
comment_out = !in_comment
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# If this line should differ due to Ireland using negative SAVE values,
|
||||||
|
# uncomment the desired version and comment out the undesired one.
|
||||||
|
Rule_Eire = $0 ~ /^#?Rule[\t ]+Eire[\t ]/
|
||||||
|
Zone_Dublin_post_1968 \
|
||||||
|
= (zone == "Europe/Dublin" && $0 ~ /^#?[\t ]+[01]:00[\t ]/ \
|
||||||
|
&& (!$(in_comment + 4) || 1968 < $(in_comment + 4)))
|
||||||
|
if (Rule_Eire || Zone_Dublin_post_1968) {
|
||||||
|
if ((Rule_Eire \
|
||||||
|
|| (Zone_Dublin_post_1968 && $(in_comment + 3) == "IST/GMT")) \
|
||||||
|
== (DATAFORM != "rearguard")) {
|
||||||
|
uncomment = in_comment
|
||||||
|
} else {
|
||||||
|
comment_out = !in_comment
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# If this line should differ due to Namibia using negative SAVE values,
|
||||||
|
# uncomment the desired version and comment out the undesired one.
|
||||||
|
Rule_Namibia = $0 ~ /^#?Rule[\t ]+Namibia[\t ]/
|
||||||
|
Zone_using_Namibia_rule \
|
||||||
|
= (zone == "Africa/Windhoek" && $0 ~ /^#?[\t ]+[12]:00[\t ]/ \
|
||||||
|
&& ($(in_comment + 2) == "Namibia" \
|
||||||
|
|| ($(in_comment + 2) == "-" && $(in_comment + 3) == "CAT" \
|
||||||
|
&& ((1994 <= $(in_comment + 4) && $(in_comment + 4) <= 2017) \
|
||||||
|
|| in_comment + 3 == NF))))
|
||||||
|
if (Rule_Namibia || Zone_using_Namibia_rule) {
|
||||||
|
if ((Rule_Namibia \
|
||||||
|
? ($9 ~ /^-/ || ($9 == 0 && $10 == "CAT")) \
|
||||||
|
: $(in_comment + 1) == "2:00" && $(in_comment + 2) == "Namibia") \
|
||||||
|
== (DATAFORM != "rearguard")) {
|
||||||
|
uncomment = in_comment
|
||||||
|
} else {
|
||||||
|
comment_out = !in_comment
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# If this line should differ due to Portugal benefiting from %z if supported,
|
||||||
|
# uncomment the desired version and comment out the undesired one.
|
||||||
|
if ($0 ~ /^#?[\t ]+-[12]:00[\t ]+Port[\t ]+[%+-]/) {
|
||||||
|
if (($0 ~ /%z/) == (DATAFORM == "vanguard")) {
|
||||||
|
uncomment = in_comment
|
||||||
|
} else {
|
||||||
|
comment_out = !in_comment
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# In vanguard form, use the line "Zone GMT 0 - GMT" instead of
|
||||||
|
# "Zone Etc/GMT 0 - GMT" and adjust Link lines accordingly.
|
||||||
|
# This works around a bug in TZUpdater 2.3.2.
|
||||||
|
if (/^#?(Zone|Link)[\t ]+(Etc\/)?GMT[\t ]/) {
|
||||||
|
if (($2 == "GMT") == (DATAFORM == "vanguard")) {
|
||||||
|
uncomment = in_comment
|
||||||
|
} else {
|
||||||
|
comment_out = !in_comment
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (uncomment) {
|
||||||
|
sub(/^#/, "")
|
||||||
|
}
|
||||||
|
if (comment_out) {
|
||||||
|
sub(/^/, "#")
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prefer %z in vanguard form, explicit abbreviations otherwise.
|
||||||
|
if (DATAFORM == "vanguard") {
|
||||||
|
sub(/^(Zone[\t ]+[^\t ]+)?[\t ]+[^\t ]+[\t ]+[^\t ]+[\t ]+[-+][^\t ]+/, \
|
||||||
|
"&CHANGE-TO-%z")
|
||||||
|
sub(/-00CHANGE-TO-%z/, "-00")
|
||||||
|
sub(/[-+][^\t ]+CHANGE-TO-/, "")
|
||||||
|
} else {
|
||||||
|
if ($0 ~ /^[^#]*%z/) {
|
||||||
|
stdoff_column = 2 * ($0 ~ /^Zone/) + 1
|
||||||
|
rules_column = stdoff_column + 1
|
||||||
|
stdoff = get_minutes($stdoff_column)
|
||||||
|
rules = $rules_column
|
||||||
|
stdabbr = offset_abbr(stdoff)
|
||||||
|
if (rules == "-") {
|
||||||
|
abbr = stdabbr
|
||||||
|
} else {
|
||||||
|
dstabbr_only = rules ~ /^[+0-9-]/
|
||||||
|
if (dstabbr_only) {
|
||||||
|
dstoff = get_minutes(rules)
|
||||||
|
} else {
|
||||||
|
# The DST offset is normally an hour, but there are special cases.
|
||||||
|
if (rules == "Morocco" && NF == 3) {
|
||||||
|
dstoff = -60
|
||||||
|
} else if (rules == "NBorneo") {
|
||||||
|
dstoff = 20
|
||||||
|
} else if (((rules == "Cook" || rules == "LH") && NF == 3) \
|
||||||
|
|| (rules == "Uruguay" \
|
||||||
|
&& $0 ~ /[\t ](1942 Dec 14|1960|1970|1974 Dec 22)$/)) {
|
||||||
|
dstoff = 30
|
||||||
|
} else if (rules == "Uruguay" && $0 ~ /[\t ]1974 Mar 10$/) {
|
||||||
|
dstoff = 90
|
||||||
|
} else {
|
||||||
|
dstoff = 60
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dstabbr = offset_abbr(stdoff + dstoff)
|
||||||
|
if (dstabbr_only) {
|
||||||
|
abbr = dstabbr
|
||||||
|
} else {
|
||||||
|
abbr = stdabbr "/" dstabbr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sub(/%z/, abbr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Normally, prefer whole seconds. However, prefer subseconds
|
||||||
|
# if generating vanguard form and the otherwise-undocumented
|
||||||
|
# VANGUARD_SUBSECONDS environment variable is set.
|
||||||
|
# This relies on #STDOFF comment lines in the data.
|
||||||
|
# It is for hypothetical clients that support UT offsets that are
|
||||||
|
# not integer multiples of one second (e.g., Europe/Lisbon, 1884 to 1912).
|
||||||
|
# No known clients need this currently, and this experimental
|
||||||
|
# feature may be changed or withdrawn in future releases.
|
||||||
|
if ($1 == "#STDOFF") {
|
||||||
|
stdoff = $2
|
||||||
|
rounded_stdoff = round_to_second(stdoff)
|
||||||
|
if (DATAFORM == "vanguard" && ENVIRON["VANGUARD_SUBSECONDS"]) {
|
||||||
|
stdoff_subst[0] = rounded_stdoff
|
||||||
|
stdoff_subst[1] = stdoff
|
||||||
|
} else {
|
||||||
|
stdoff_subst[0] = stdoff
|
||||||
|
stdoff_subst[1] = rounded_stdoff
|
||||||
|
}
|
||||||
|
} else if (stdoff_subst[0]) {
|
||||||
|
stdoff_column = 2 * ($0 ~ /^Zone/) + 1
|
||||||
|
stdoff_column_val = $stdoff_column
|
||||||
|
if (stdoff_column_val == stdoff_subst[0]) {
|
||||||
|
sub(stdoff_subst[0], stdoff_subst[1])
|
||||||
|
} else if (stdoff_column_val != stdoff_subst[1]) {
|
||||||
|
stdoff_subst[0] = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# In rearguard form, change the Japan rule line with "Sat>=8 25:00"
|
||||||
|
# to "Sun>=9 1:00", to cater to zic before 2007 and to older Java.
|
||||||
|
if ($0 ~ /^Rule/ && $2 == "Japan") {
|
||||||
|
if (DATAFORM == "rearguard") {
|
||||||
|
if ($7 == "Sat>=8" && $8 == "25:00") {
|
||||||
|
sub(/Sat>=8/, "Sun>=9")
|
||||||
|
sub(/25:00/, " 1:00")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($7 == "Sun>=9" && $8 == "1:00") {
|
||||||
|
sub(/Sun>=9/, "Sat>=8")
|
||||||
|
sub(/ 1:00/, "25:00")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# In rearguard form, change the Morocco lines with negative SAVE values
|
||||||
|
# to use positive SAVE values.
|
||||||
|
if ($2 == "Morocco") {
|
||||||
|
if ($0 ~ /^Rule/) {
|
||||||
|
if ($4 ~ /^201[78]$/ && $6 == "Oct") {
|
||||||
|
if (DATAFORM == "rearguard") {
|
||||||
|
sub(/\t2018\t/, "\t2017\t")
|
||||||
|
} else {
|
||||||
|
sub(/\t2017\t/, "\t2018\t")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (2019 <= $3) {
|
||||||
|
if ($8 == "2:00") {
|
||||||
|
if (DATAFORM == "rearguard") {
|
||||||
|
sub(/\t0\t/, "\t1:00\t")
|
||||||
|
} else {
|
||||||
|
sub(/\t1:00\t/, "\t0\t")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (DATAFORM == "rearguard") {
|
||||||
|
sub(/\t-1:00\t/, "\t0\t")
|
||||||
|
} else {
|
||||||
|
sub(/\t0\t/, "\t-1:00\t")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($1 ~ /^[+0-9-]/ && NF == 3) {
|
||||||
|
if (DATAFORM == "rearguard") {
|
||||||
|
sub(/1:00\tMorocco/, "0:00\tMorocco")
|
||||||
|
sub(/\t\+01\/\+00$/, "\t+00/+01")
|
||||||
|
} else {
|
||||||
|
sub(/0:00\tMorocco/, "1:00\tMorocco")
|
||||||
|
sub(/\t\+00\/+01$/, "\t+01/+00")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/^Zone/ {
|
||||||
|
packrat_ignored = FILENAME == PACKRATDATA && PACKRATLIST && !packratlist[$2];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
if (packrat_ignored && $0 !~ /^Rule/) {
|
||||||
|
sub(/^/, "#")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Return a link line resulting by changing OLDLINE to link to TARGET
|
||||||
|
# from LINKNAME, instead of linking to OLDTARGET from LINKNAME.
|
||||||
|
# Align data columns the same as they were in OLDLINE.
|
||||||
|
# Also, replace any existing white space followed by comment with COMMENT.
|
||||||
|
function make_linkline(oldline, target, linkname, oldtarget, comment, \
|
||||||
|
oldprefix, oldprefixlen, oldtargettabs, \
|
||||||
|
replsuffix, targettabs)
|
||||||
|
{
|
||||||
|
oldprefix = "Link\t" oldtarget "\t"
|
||||||
|
oldprefixlen = length(oldprefix)
|
||||||
|
if (substr(oldline, 1, oldprefixlen) == oldprefix) {
|
||||||
|
# Use tab stops to preserve LINKNAME's column.
|
||||||
|
replsuffix = substr(oldline, oldprefixlen + 1)
|
||||||
|
sub(/[\t ]*#.*/, "", replsuffix)
|
||||||
|
oldtargettabs = int(length(oldtarget) / 8) + 1
|
||||||
|
targettabs = int(length(target) / 8) + 1
|
||||||
|
for (; targettabs < oldtargettabs; targettabs++) {
|
||||||
|
replsuffix = "\t" replsuffix
|
||||||
|
}
|
||||||
|
for (; oldtargettabs < targettabs && replsuffix ~ /^\t/; targettabs--) {
|
||||||
|
replsuffix = substr(replsuffix, 2)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
# Odd format line; don't bother lining up its replacement nicely.
|
||||||
|
replsuffix = linkname
|
||||||
|
}
|
||||||
|
return "Link\t" target "\t" replsuffix comment
|
||||||
|
}
|
||||||
|
|
||||||
|
/^Link/ && $4 == "#=" && DATAFORM == "vanguard" {
|
||||||
|
$0 = make_linkline($0, $5, $3, $2)
|
||||||
|
}
|
||||||
|
|
||||||
|
# If a Link line is followed by a Link or Zone line for the same data, comment
|
||||||
|
# out the Link line. This can happen if backzone overrides a Link
|
||||||
|
# with a Zone or a different Link.
|
||||||
|
/^Zone/ {
|
||||||
|
sub(/^Link/, "#Link", line[linkline[$2]])
|
||||||
|
}
|
||||||
|
/^Link/ {
|
||||||
|
sub(/^Link/, "#Link", line[linkline[$3]])
|
||||||
|
linkline[$3] = NR
|
||||||
|
linktarget[$3] = $2
|
||||||
|
}
|
||||||
|
|
||||||
|
{ line[NR] = $0 }
|
||||||
|
|
||||||
|
function cut_link_chains_short( \
|
||||||
|
l, linkname, t, target)
|
||||||
|
{
|
||||||
|
for (linkname in linktarget) {
|
||||||
|
target = linktarget[linkname]
|
||||||
|
t = linktarget[target]
|
||||||
|
if (t) {
|
||||||
|
# TARGET is itself a link name. Replace the line "Link TARGET LINKNAME"
|
||||||
|
# with "Link T LINKNAME #= TARGET", where T is at the end of the chain
|
||||||
|
# of links that LINKNAME points to.
|
||||||
|
while ((u = linktarget[t])) {
|
||||||
|
t = u
|
||||||
|
}
|
||||||
|
l = linkline[linkname]
|
||||||
|
line[l] = make_linkline(line[l], t, linkname, target, "\t#= " target)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
if (DATAFORM != "vanguard") {
|
||||||
|
cut_link_chains_short()
|
||||||
|
}
|
||||||
|
for (i = 1; i <= NR; i++)
|
||||||
|
print line[i]
|
||||||
|
}
|
|
@ -0,0 +1,356 @@
|
||||||
|
# Convert tzdata source into a smaller version of itself.
|
||||||
|
|
||||||
|
# Contributed by Paul Eggert. This file is in the public domain.
|
||||||
|
|
||||||
|
# This is not a general-purpose converter; it is designed for current tzdata.
|
||||||
|
# 'zic' should treat this script's output as if it were identical to
|
||||||
|
# this script's input.
|
||||||
|
|
||||||
|
# Record a hash N for the new name NAME, checking for collisions.
|
||||||
|
|
||||||
|
function record_hash(n, name)
|
||||||
|
{
|
||||||
|
if (used_hashes[n]) {
|
||||||
|
printf "# ! collision: %s %s\n", used_hashes[n], name
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
used_hashes[n] = name
|
||||||
|
}
|
||||||
|
|
||||||
|
# Return a shortened rule name representing NAME,
|
||||||
|
# and record this relationship to the hash table.
|
||||||
|
|
||||||
|
function gen_rule_name(name, \
|
||||||
|
n)
|
||||||
|
{
|
||||||
|
# Use a simple mnemonic: the first two letters.
|
||||||
|
n = substr(name, 1, 2)
|
||||||
|
record_hash(n, name)
|
||||||
|
# printf "# %s = %s\n", n, name
|
||||||
|
return n
|
||||||
|
}
|
||||||
|
|
||||||
|
function prehash_rule_names( \
|
||||||
|
name)
|
||||||
|
{
|
||||||
|
# Rule names are not part of the tzdb API, so substitute shorter
|
||||||
|
# ones. Shortening them consistently from one release to the next
|
||||||
|
# simplifies comparison of the output. That being said, the
|
||||||
|
# 1-letter names below are not standardized in any way, and can
|
||||||
|
# change arbitrarily from one release to the next, as the main goal
|
||||||
|
# here is compression not comparison.
|
||||||
|
|
||||||
|
# Abbreviating these rules names to one letter saved the most space
|
||||||
|
# circa 2018e.
|
||||||
|
rule["Arg"] = "A"
|
||||||
|
rule["Brazil"] = "B"
|
||||||
|
rule["Canada"] = "C"
|
||||||
|
rule["Denmark"] = "D"
|
||||||
|
rule["EU"] = "E"
|
||||||
|
rule["France"] = "F"
|
||||||
|
rule["GB-Eire"] = "G"
|
||||||
|
rule["Halifax"] = "H"
|
||||||
|
rule["Italy"] = "I"
|
||||||
|
rule["Jordan"] = "J"
|
||||||
|
rule["Egypt"] = "K" # "Kemet" in ancient Egyptian
|
||||||
|
rule["Libya"] = "L"
|
||||||
|
rule["Morocco"] = "M"
|
||||||
|
rule["Neth"] = "N"
|
||||||
|
rule["Poland"] = "O" # arbitrary
|
||||||
|
rule["Palestine"] = "P"
|
||||||
|
rule["Cuba"] = "Q" # Its start sounds like "Q".
|
||||||
|
rule["Russia"] = "R"
|
||||||
|
rule["Syria"] = "S"
|
||||||
|
rule["Turkey"] = "T"
|
||||||
|
rule["Uruguay"] = "U"
|
||||||
|
rule["Vincennes"] = "V"
|
||||||
|
rule["Winn"] = "W"
|
||||||
|
rule["Mongol"] = "X" # arbitrary
|
||||||
|
rule["NT_YK"] = "Y"
|
||||||
|
rule["Zion"] = "Z"
|
||||||
|
rule["Austria"] = "a"
|
||||||
|
rule["Belgium"] = "b"
|
||||||
|
rule["C-Eur"] = "c"
|
||||||
|
rule["Algeria"] = "d" # country code DZ
|
||||||
|
rule["E-Eur"] = "e"
|
||||||
|
rule["Taiwan"] = "f" # Formosa
|
||||||
|
rule["Greece"] = "g"
|
||||||
|
rule["Hungary"] = "h"
|
||||||
|
rule["Iran"] = "i"
|
||||||
|
rule["StJohns"] = "j"
|
||||||
|
rule["Chatham"] = "k" # arbitrary
|
||||||
|
rule["Lebanon"] = "l"
|
||||||
|
rule["Mexico"] = "m"
|
||||||
|
rule["Tunisia"] = "n" # country code TN
|
||||||
|
rule["Moncton"] = "o" # arbitrary
|
||||||
|
rule["Port"] = "p"
|
||||||
|
rule["Albania"] = "q" # arbitrary
|
||||||
|
rule["Regina"] = "r"
|
||||||
|
rule["Spain"] = "s"
|
||||||
|
rule["Toronto"] = "t"
|
||||||
|
rule["US"] = "u"
|
||||||
|
rule["Louisville"] = "v" # ville
|
||||||
|
rule["Iceland"] = "w" # arbitrary
|
||||||
|
rule["Chile"] = "x" # arbitrary
|
||||||
|
rule["Para"] = "y" # country code PY
|
||||||
|
rule["Romania"] = "z" # arbitrary
|
||||||
|
rule["Macau"] = "_" # arbitrary
|
||||||
|
|
||||||
|
# Use ISO 3166 alpha-2 country codes for remaining names that are countries.
|
||||||
|
# This is more systematic, and avoids collisions (e.g., Malta and Moldova).
|
||||||
|
rule["Armenia"] = "AM"
|
||||||
|
rule["Aus"] = "AU"
|
||||||
|
rule["Azer"] = "AZ"
|
||||||
|
rule["Barb"] = "BB"
|
||||||
|
rule["Dhaka"] = "BD"
|
||||||
|
rule["Bulg"] = "BG"
|
||||||
|
rule["Bahamas"] = "BS"
|
||||||
|
rule["Belize"] = "BZ"
|
||||||
|
rule["Swiss"] = "CH"
|
||||||
|
rule["Cook"] = "CK"
|
||||||
|
rule["PRC"] = "CN"
|
||||||
|
rule["Cyprus"] = "CY"
|
||||||
|
rule["Czech"] = "CZ"
|
||||||
|
rule["Germany"] = "DE"
|
||||||
|
rule["DR"] = "DO"
|
||||||
|
rule["Ecuador"] = "EC"
|
||||||
|
rule["Finland"] = "FI"
|
||||||
|
rule["Fiji"] = "FJ"
|
||||||
|
rule["Falk"] = "FK"
|
||||||
|
rule["Ghana"] = "GH"
|
||||||
|
rule["Guat"] = "GT"
|
||||||
|
rule["Hond"] = "HN"
|
||||||
|
rule["Haiti"] = "HT"
|
||||||
|
rule["Eire"] = "IE"
|
||||||
|
rule["Iraq"] = "IQ"
|
||||||
|
rule["Japan"] = "JP"
|
||||||
|
rule["Kyrgyz"] = "KG"
|
||||||
|
rule["ROK"] = "KR"
|
||||||
|
rule["Latvia"] = "LV"
|
||||||
|
rule["Lux"] = "LX"
|
||||||
|
rule["Moldova"] = "MD"
|
||||||
|
rule["Malta"] = "MT"
|
||||||
|
rule["Mauritius"] = "MU"
|
||||||
|
rule["Namibia"] = "NA"
|
||||||
|
rule["Nic"] = "NI"
|
||||||
|
rule["Norway"] = "NO"
|
||||||
|
rule["Peru"] = "PE"
|
||||||
|
rule["Phil"] = "PH"
|
||||||
|
rule["Pakistan"] = "PK"
|
||||||
|
rule["Sudan"] = "SD"
|
||||||
|
rule["Salv"] = "SV"
|
||||||
|
rule["Tonga"] = "TO"
|
||||||
|
rule["Vanuatu"] = "VU"
|
||||||
|
|
||||||
|
# Avoid collisions.
|
||||||
|
rule["Detroit"] = "Dt" # De = Denver
|
||||||
|
|
||||||
|
for (name in rule) {
|
||||||
|
record_hash(rule[name], name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function make_line(n, field, \
|
||||||
|
f, r)
|
||||||
|
{
|
||||||
|
r = field[1]
|
||||||
|
for (f = 2; f <= n; f++)
|
||||||
|
r = r " " field[f]
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
# Process the input line LINE and save it for later output.
|
||||||
|
|
||||||
|
function process_input_line(line, \
|
||||||
|
f, field, end, i, n, r, startdef, \
|
||||||
|
linkline, ruleline, zoneline)
|
||||||
|
{
|
||||||
|
# Remove comments, normalize spaces, and append a space to each line.
|
||||||
|
sub(/#.*/, "", line)
|
||||||
|
line = line " "
|
||||||
|
gsub(/[\t ]+/, " ", line)
|
||||||
|
|
||||||
|
# Abbreviate keywords and determine line type.
|
||||||
|
linkline = sub(/^Link /, "L ", line)
|
||||||
|
ruleline = sub(/^Rule /, "R ", line)
|
||||||
|
zoneline = sub(/^Zone /, "Z ", line)
|
||||||
|
|
||||||
|
# Replace FooAsia rules with the same rules without "Asia", as they
|
||||||
|
# are duplicates.
|
||||||
|
if (match(line, /[^ ]Asia /)) {
|
||||||
|
if (ruleline) return
|
||||||
|
line = substr(line, 1, RSTART) substr(line, RSTART + 5)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Abbreviate times.
|
||||||
|
while (match(line, /[: ]0+[0-9]/))
|
||||||
|
line = substr(line, 1, RSTART) substr(line, RSTART + RLENGTH - 1)
|
||||||
|
while (match(line, /:0[^:]/))
|
||||||
|
line = substr(line, 1, RSTART - 1) substr(line, RSTART + 2)
|
||||||
|
|
||||||
|
# Abbreviate weekday names.
|
||||||
|
while (match(line, / (last)?(Mon|Wed|Fri)[ <>]/)) {
|
||||||
|
end = RSTART + RLENGTH
|
||||||
|
line = substr(line, 1, end - 4) substr(line, end - 1)
|
||||||
|
}
|
||||||
|
while (match(line, / (last)?(Sun|Tue|Thu|Sat)[ <>]/)) {
|
||||||
|
end = RSTART + RLENGTH
|
||||||
|
line = substr(line, 1, end - 3) substr(line, end - 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Abbreviate "max", "min", "only" and month names.
|
||||||
|
gsub(/ max /, " ma ", line)
|
||||||
|
gsub(/ min /, " mi ", line)
|
||||||
|
gsub(/ only /, " o ", line)
|
||||||
|
gsub(/ Jan /, " Ja ", line)
|
||||||
|
gsub(/ Feb /, " F ", line)
|
||||||
|
gsub(/ Apr /, " Ap ", line)
|
||||||
|
gsub(/ Aug /, " Au ", line)
|
||||||
|
gsub(/ Sep /, " S ", line)
|
||||||
|
gsub(/ Oct /, " O ", line)
|
||||||
|
gsub(/ Nov /, " N ", line)
|
||||||
|
gsub(/ Dec /, " D ", line)
|
||||||
|
|
||||||
|
# Strip leading and trailing space.
|
||||||
|
sub(/^ /, "", line)
|
||||||
|
sub(/ $/, "", line)
|
||||||
|
|
||||||
|
# Remove unnecessary trailing zero fields.
|
||||||
|
sub(/ 0+$/, "", line)
|
||||||
|
|
||||||
|
# Remove unnecessary trailing days-of-month "1".
|
||||||
|
if (match(line, /[A-Za-z] 1$/))
|
||||||
|
line = substr(line, 1, RSTART)
|
||||||
|
|
||||||
|
# Remove unnecessary trailing " Ja" (for January).
|
||||||
|
sub(/ Ja$/, "", line)
|
||||||
|
|
||||||
|
n = split(line, field)
|
||||||
|
|
||||||
|
# Record which rule names are used, and generate their abbreviations.
|
||||||
|
f = zoneline ? 4 : linkline || ruleline ? 0 : 2
|
||||||
|
r = field[f]
|
||||||
|
if (r ~ /^[^-+0-9]/) {
|
||||||
|
rule_used[r] = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# If this zone supersedes an earlier one, delete the earlier one
|
||||||
|
# from the saved output lines.
|
||||||
|
startdef = ""
|
||||||
|
if (zoneline)
|
||||||
|
zonename = startdef = field[2]
|
||||||
|
else if (linkline)
|
||||||
|
zonename = startdef = field[3]
|
||||||
|
else if (ruleline)
|
||||||
|
zonename = ""
|
||||||
|
if (startdef) {
|
||||||
|
i = zonedef[startdef]
|
||||||
|
if (i) {
|
||||||
|
do
|
||||||
|
output_line[i - 1] = ""
|
||||||
|
while (output_line[i++] ~ /^[-+0-9]/);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
zonedef[zonename] = nout + 1
|
||||||
|
|
||||||
|
# Save the line for later output.
|
||||||
|
output_line[nout++] = make_line(n, field)
|
||||||
|
}
|
||||||
|
|
||||||
|
function omit_unused_rules( \
|
||||||
|
i, field)
|
||||||
|
{
|
||||||
|
for (i = 0; i < nout; i++) {
|
||||||
|
split(output_line[i], field)
|
||||||
|
if (field[1] == "R" && !rule_used[field[2]]) {
|
||||||
|
output_line[i] = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function abbreviate_rule_names( \
|
||||||
|
abbr, f, field, i, n, r)
|
||||||
|
{
|
||||||
|
for (i = 0; i < nout; i++) {
|
||||||
|
n = split(output_line[i], field)
|
||||||
|
if (n) {
|
||||||
|
f = field[1] == "Z" ? 4 : field[1] == "L" ? 0 : 2
|
||||||
|
r = field[f]
|
||||||
|
if (r ~ /^[^-+0-9]/) {
|
||||||
|
abbr = rule[r]
|
||||||
|
if (!abbr) {
|
||||||
|
rule[r] = abbr = gen_rule_name(r)
|
||||||
|
}
|
||||||
|
field[f] = abbr
|
||||||
|
output_line[i] = make_line(n, field)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function output_saved_lines( \
|
||||||
|
i)
|
||||||
|
{
|
||||||
|
for (i = 0; i < nout; i++)
|
||||||
|
if (output_line[i])
|
||||||
|
print output_line[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
# Files that the output normally depends on.
|
||||||
|
default_dep["africa"] = 1
|
||||||
|
default_dep["antarctica"] = 1
|
||||||
|
default_dep["asia"] = 1
|
||||||
|
default_dep["australasia"] = 1
|
||||||
|
default_dep["backward"] = 1
|
||||||
|
default_dep["etcetera"] = 1
|
||||||
|
default_dep["europe"] = 1
|
||||||
|
default_dep["factory"] = 1
|
||||||
|
default_dep["northamerica"] = 1
|
||||||
|
default_dep["southamerica"] = 1
|
||||||
|
default_dep["ziguard.awk"] = 1
|
||||||
|
default_dep["zishrink.awk"] = 1
|
||||||
|
|
||||||
|
# Output a version string from 'version' and related configuration variables
|
||||||
|
# supported by tzdb's Makefile. If you change the makefile or any other files
|
||||||
|
# that affect the output of this script, you should append '-SOMETHING'
|
||||||
|
# to the contents of 'version', where SOMETHING identifies what was changed.
|
||||||
|
|
||||||
|
ndeps = split(deps, dep)
|
||||||
|
ddeps = ""
|
||||||
|
for (i = 1; i <= ndeps; i++) {
|
||||||
|
if (default_dep[dep[i]]) {
|
||||||
|
default_dep[dep[i]]++
|
||||||
|
} else {
|
||||||
|
ddeps = ddeps " " dep[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (d in default_dep) {
|
||||||
|
if (default_dep[d] == 1) {
|
||||||
|
ddeps = ddeps " !" d
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print "# version", version
|
||||||
|
if (dataform != "main") {
|
||||||
|
print "# dataform", dataform
|
||||||
|
}
|
||||||
|
if (redo != "posix_right") {
|
||||||
|
print "# redo " redo
|
||||||
|
}
|
||||||
|
if (ddeps) {
|
||||||
|
print "# ddeps" ddeps
|
||||||
|
}
|
||||||
|
print "# This zic input file is in the public domain."
|
||||||
|
|
||||||
|
prehash_rule_names()
|
||||||
|
}
|
||||||
|
|
||||||
|
/^[\t ]*[^#\t ]/ {
|
||||||
|
process_input_line($0)
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
omit_unused_rules()
|
||||||
|
abbreviate_rule_names()
|
||||||
|
output_saved_lines()
|
||||||
|
}
|
|
@ -0,0 +1,448 @@
|
||||||
|
# tzdb timezone descriptions (deprecated version)
|
||||||
|
#
|
||||||
|
# This file is in the public domain, so clarified as of
|
||||||
|
# 2009-05-17 by Arthur David Olson.
|
||||||
|
#
|
||||||
|
# From Paul Eggert (2021-09-20):
|
||||||
|
# This file is intended as a backward-compatibility aid for older programs.
|
||||||
|
# New programs should use zone1970.tab. This file is like zone1970.tab (see
|
||||||
|
# zone1970.tab's comments), but with the following additional restrictions:
|
||||||
|
#
|
||||||
|
# 1. This file contains only ASCII characters.
|
||||||
|
# 2. The first data column contains exactly one country code.
|
||||||
|
#
|
||||||
|
# Because of (2), each row stands for an area that is the intersection
|
||||||
|
# of a region identified by a country code and of a timezone where civil
|
||||||
|
# clocks have agreed since 1970; this is a narrower definition than
|
||||||
|
# that of zone1970.tab.
|
||||||
|
#
|
||||||
|
# Unlike zone1970.tab, a row's third column can be a Link from
|
||||||
|
# 'backward' instead of a Zone.
|
||||||
|
#
|
||||||
|
# This table is intended as an aid for users, to help them select timezones
|
||||||
|
# appropriate for their practical needs. It is not intended to take or
|
||||||
|
# endorse any position on legal or territorial claims.
|
||||||
|
#
|
||||||
|
#country-
|
||||||
|
#code coordinates TZ comments
|
||||||
|
AD +4230+00131 Europe/Andorra
|
||||||
|
AE +2518+05518 Asia/Dubai
|
||||||
|
AF +3431+06912 Asia/Kabul
|
||||||
|
AG +1703-06148 America/Antigua
|
||||||
|
AI +1812-06304 America/Anguilla
|
||||||
|
AL +4120+01950 Europe/Tirane
|
||||||
|
AM +4011+04430 Asia/Yerevan
|
||||||
|
AO -0848+01314 Africa/Luanda
|
||||||
|
AQ -7750+16636 Antarctica/McMurdo New Zealand time - McMurdo, South Pole
|
||||||
|
AQ -6617+11031 Antarctica/Casey Casey
|
||||||
|
AQ -6835+07758 Antarctica/Davis Davis
|
||||||
|
AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville
|
||||||
|
AQ -6736+06253 Antarctica/Mawson Mawson
|
||||||
|
AQ -6448-06406 Antarctica/Palmer Palmer
|
||||||
|
AQ -6734-06808 Antarctica/Rothera Rothera
|
||||||
|
AQ -690022+0393524 Antarctica/Syowa Syowa
|
||||||
|
AQ -720041+0023206 Antarctica/Troll Troll
|
||||||
|
AQ -7824+10654 Antarctica/Vostok Vostok
|
||||||
|
AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF)
|
||||||
|
AR -3124-06411 America/Argentina/Cordoba Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF)
|
||||||
|
AR -2447-06525 America/Argentina/Salta Salta (SA, LP, NQ, RN)
|
||||||
|
AR -2411-06518 America/Argentina/Jujuy Jujuy (JY)
|
||||||
|
AR -2649-06513 America/Argentina/Tucuman Tucuman (TM)
|
||||||
|
AR -2828-06547 America/Argentina/Catamarca Catamarca (CT); Chubut (CH)
|
||||||
|
AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR)
|
||||||
|
AR -3132-06831 America/Argentina/San_Juan San Juan (SJ)
|
||||||
|
AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ)
|
||||||
|
AR -3319-06621 America/Argentina/San_Luis San Luis (SL)
|
||||||
|
AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC)
|
||||||
|
AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF)
|
||||||
|
AS -1416-17042 Pacific/Pago_Pago
|
||||||
|
AT +4813+01620 Europe/Vienna
|
||||||
|
AU -3133+15905 Australia/Lord_Howe Lord Howe Island
|
||||||
|
AU -5430+15857 Antarctica/Macquarie Macquarie Island
|
||||||
|
AU -4253+14719 Australia/Hobart Tasmania
|
||||||
|
AU -3749+14458 Australia/Melbourne Victoria
|
||||||
|
AU -3352+15113 Australia/Sydney New South Wales (most areas)
|
||||||
|
AU -3157+14127 Australia/Broken_Hill New South Wales (Yancowinna)
|
||||||
|
AU -2728+15302 Australia/Brisbane Queensland (most areas)
|
||||||
|
AU -2016+14900 Australia/Lindeman Queensland (Whitsunday Islands)
|
||||||
|
AU -3455+13835 Australia/Adelaide South Australia
|
||||||
|
AU -1228+13050 Australia/Darwin Northern Territory
|
||||||
|
AU -3157+11551 Australia/Perth Western Australia (most areas)
|
||||||
|
AU -3143+12852 Australia/Eucla Western Australia (Eucla)
|
||||||
|
AW +1230-06958 America/Aruba
|
||||||
|
AX +6006+01957 Europe/Mariehamn
|
||||||
|
AZ +4023+04951 Asia/Baku
|
||||||
|
BA +4352+01825 Europe/Sarajevo
|
||||||
|
BB +1306-05937 America/Barbados
|
||||||
|
BD +2343+09025 Asia/Dhaka
|
||||||
|
BE +5050+00420 Europe/Brussels
|
||||||
|
BF +1222-00131 Africa/Ouagadougou
|
||||||
|
BG +4241+02319 Europe/Sofia
|
||||||
|
BH +2623+05035 Asia/Bahrain
|
||||||
|
BI -0323+02922 Africa/Bujumbura
|
||||||
|
BJ +0629+00237 Africa/Porto-Novo
|
||||||
|
BL +1753-06251 America/St_Barthelemy
|
||||||
|
BM +3217-06446 Atlantic/Bermuda
|
||||||
|
BN +0456+11455 Asia/Brunei
|
||||||
|
BO -1630-06809 America/La_Paz
|
||||||
|
BQ +120903-0681636 America/Kralendijk
|
||||||
|
BR -0351-03225 America/Noronha Atlantic islands
|
||||||
|
BR -0127-04829 America/Belem Para (east); Amapa
|
||||||
|
BR -0343-03830 America/Fortaleza Brazil (northeast: MA, PI, CE, RN, PB)
|
||||||
|
BR -0803-03454 America/Recife Pernambuco
|
||||||
|
BR -0712-04812 America/Araguaina Tocantins
|
||||||
|
BR -0940-03543 America/Maceio Alagoas, Sergipe
|
||||||
|
BR -1259-03831 America/Bahia Bahia
|
||||||
|
BR -2332-04637 America/Sao_Paulo Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS)
|
||||||
|
BR -2027-05437 America/Campo_Grande Mato Grosso do Sul
|
||||||
|
BR -1535-05605 America/Cuiaba Mato Grosso
|
||||||
|
BR -0226-05452 America/Santarem Para (west)
|
||||||
|
BR -0846-06354 America/Porto_Velho Rondonia
|
||||||
|
BR +0249-06040 America/Boa_Vista Roraima
|
||||||
|
BR -0308-06001 America/Manaus Amazonas (east)
|
||||||
|
BR -0640-06952 America/Eirunepe Amazonas (west)
|
||||||
|
BR -0958-06748 America/Rio_Branco Acre
|
||||||
|
BS +2505-07721 America/Nassau
|
||||||
|
BT +2728+08939 Asia/Thimphu
|
||||||
|
BW -2439+02555 Africa/Gaborone
|
||||||
|
BY +5354+02734 Europe/Minsk
|
||||||
|
BZ +1730-08812 America/Belize
|
||||||
|
CA +4734-05243 America/St_Johns Newfoundland; Labrador (southeast)
|
||||||
|
CA +4439-06336 America/Halifax Atlantic - NS (most areas); PE
|
||||||
|
CA +4612-05957 America/Glace_Bay Atlantic - NS (Cape Breton)
|
||||||
|
CA +4606-06447 America/Moncton Atlantic - New Brunswick
|
||||||
|
CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas)
|
||||||
|
CA +5125-05707 America/Blanc-Sablon AST - QC (Lower North Shore)
|
||||||
|
CA +4339-07923 America/Toronto Eastern - ON, QC (most areas)
|
||||||
|
CA +6344-06828 America/Iqaluit Eastern - NU (most areas)
|
||||||
|
CA +484531-0913718 America/Atikokan EST - ON (Atikokan); NU (Coral H)
|
||||||
|
CA +4953-09709 America/Winnipeg Central - ON (west); Manitoba
|
||||||
|
CA +744144-0944945 America/Resolute Central - NU (Resolute)
|
||||||
|
CA +624900-0920459 America/Rankin_Inlet Central - NU (central)
|
||||||
|
CA +5024-10439 America/Regina CST - SK (most areas)
|
||||||
|
CA +5017-10750 America/Swift_Current CST - SK (midwest)
|
||||||
|
CA +5333-11328 America/Edmonton Mountain - AB; BC (E); NT (E); SK (W)
|
||||||
|
CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west)
|
||||||
|
CA +682059-1334300 America/Inuvik Mountain - NT (west)
|
||||||
|
CA +4906-11631 America/Creston MST - BC (Creston)
|
||||||
|
CA +5546-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John)
|
||||||
|
CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson)
|
||||||
|
CA +6043-13503 America/Whitehorse MST - Yukon (east)
|
||||||
|
CA +6404-13925 America/Dawson MST - Yukon (west)
|
||||||
|
CA +4916-12307 America/Vancouver Pacific - BC (most areas)
|
||||||
|
CC -1210+09655 Indian/Cocos
|
||||||
|
CD -0418+01518 Africa/Kinshasa Dem. Rep. of Congo (west)
|
||||||
|
CD -1140+02728 Africa/Lubumbashi Dem. Rep. of Congo (east)
|
||||||
|
CF +0422+01835 Africa/Bangui
|
||||||
|
CG -0416+01517 Africa/Brazzaville
|
||||||
|
CH +4723+00832 Europe/Zurich
|
||||||
|
CI +0519-00402 Africa/Abidjan
|
||||||
|
CK -2114-15946 Pacific/Rarotonga
|
||||||
|
CL -3327-07040 America/Santiago most of Chile
|
||||||
|
CL -5309-07055 America/Punta_Arenas Region of Magallanes
|
||||||
|
CL -2709-10926 Pacific/Easter Easter Island
|
||||||
|
CM +0403+00942 Africa/Douala
|
||||||
|
CN +3114+12128 Asia/Shanghai Beijing Time
|
||||||
|
CN +4348+08735 Asia/Urumqi Xinjiang Time
|
||||||
|
CO +0436-07405 America/Bogota
|
||||||
|
CR +0956-08405 America/Costa_Rica
|
||||||
|
CU +2308-08222 America/Havana
|
||||||
|
CV +1455-02331 Atlantic/Cape_Verde
|
||||||
|
CW +1211-06900 America/Curacao
|
||||||
|
CX -1025+10543 Indian/Christmas
|
||||||
|
CY +3510+03322 Asia/Nicosia most of Cyprus
|
||||||
|
CY +3507+03357 Asia/Famagusta Northern Cyprus
|
||||||
|
CZ +5005+01426 Europe/Prague
|
||||||
|
DE +5230+01322 Europe/Berlin most of Germany
|
||||||
|
DE +4742+00841 Europe/Busingen Busingen
|
||||||
|
DJ +1136+04309 Africa/Djibouti
|
||||||
|
DK +5540+01235 Europe/Copenhagen
|
||||||
|
DM +1518-06124 America/Dominica
|
||||||
|
DO +1828-06954 America/Santo_Domingo
|
||||||
|
DZ +3647+00303 Africa/Algiers
|
||||||
|
EC -0210-07950 America/Guayaquil Ecuador (mainland)
|
||||||
|
EC -0054-08936 Pacific/Galapagos Galapagos Islands
|
||||||
|
EE +5925+02445 Europe/Tallinn
|
||||||
|
EG +3003+03115 Africa/Cairo
|
||||||
|
EH +2709-01312 Africa/El_Aaiun
|
||||||
|
ER +1520+03853 Africa/Asmara
|
||||||
|
ES +4024-00341 Europe/Madrid Spain (mainland)
|
||||||
|
ES +3553-00519 Africa/Ceuta Ceuta, Melilla
|
||||||
|
ES +2806-01524 Atlantic/Canary Canary Islands
|
||||||
|
ET +0902+03842 Africa/Addis_Ababa
|
||||||
|
FI +6010+02458 Europe/Helsinki
|
||||||
|
FJ -1808+17825 Pacific/Fiji
|
||||||
|
FK -5142-05751 Atlantic/Stanley
|
||||||
|
FM +0725+15147 Pacific/Chuuk Chuuk/Truk, Yap
|
||||||
|
FM +0658+15813 Pacific/Pohnpei Pohnpei/Ponape
|
||||||
|
FM +0519+16259 Pacific/Kosrae Kosrae
|
||||||
|
FO +6201-00646 Atlantic/Faroe
|
||||||
|
FR +4852+00220 Europe/Paris
|
||||||
|
GA +0023+00927 Africa/Libreville
|
||||||
|
GB +513030-0000731 Europe/London
|
||||||
|
GD +1203-06145 America/Grenada
|
||||||
|
GE +4143+04449 Asia/Tbilisi
|
||||||
|
GF +0456-05220 America/Cayenne
|
||||||
|
GG +492717-0023210 Europe/Guernsey
|
||||||
|
GH +0533-00013 Africa/Accra
|
||||||
|
GI +3608-00521 Europe/Gibraltar
|
||||||
|
GL +6411-05144 America/Nuuk most of Greenland
|
||||||
|
GL +7646-01840 America/Danmarkshavn National Park (east coast)
|
||||||
|
GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit
|
||||||
|
GL +7634-06847 America/Thule Thule/Pituffik
|
||||||
|
GM +1328-01639 Africa/Banjul
|
||||||
|
GN +0931-01343 Africa/Conakry
|
||||||
|
GP +1614-06132 America/Guadeloupe
|
||||||
|
GQ +0345+00847 Africa/Malabo
|
||||||
|
GR +3758+02343 Europe/Athens
|
||||||
|
GS -5416-03632 Atlantic/South_Georgia
|
||||||
|
GT +1438-09031 America/Guatemala
|
||||||
|
GU +1328+14445 Pacific/Guam
|
||||||
|
GW +1151-01535 Africa/Bissau
|
||||||
|
GY +0648-05810 America/Guyana
|
||||||
|
HK +2217+11409 Asia/Hong_Kong
|
||||||
|
HN +1406-08713 America/Tegucigalpa
|
||||||
|
HR +4548+01558 Europe/Zagreb
|
||||||
|
HT +1832-07220 America/Port-au-Prince
|
||||||
|
HU +4730+01905 Europe/Budapest
|
||||||
|
ID -0610+10648 Asia/Jakarta Java, Sumatra
|
||||||
|
ID -0002+10920 Asia/Pontianak Borneo (west, central)
|
||||||
|
ID -0507+11924 Asia/Makassar Borneo (east, south); Sulawesi/Celebes, Bali, Nusa Tengarra; Timor (west)
|
||||||
|
ID -0232+14042 Asia/Jayapura New Guinea (West Papua / Irian Jaya); Malukus/Moluccas
|
||||||
|
IE +5320-00615 Europe/Dublin
|
||||||
|
IL +314650+0351326 Asia/Jerusalem
|
||||||
|
IM +5409-00428 Europe/Isle_of_Man
|
||||||
|
IN +2232+08822 Asia/Kolkata
|
||||||
|
IO -0720+07225 Indian/Chagos
|
||||||
|
IQ +3321+04425 Asia/Baghdad
|
||||||
|
IR +3540+05126 Asia/Tehran
|
||||||
|
IS +6409-02151 Atlantic/Reykjavik
|
||||||
|
IT +4154+01229 Europe/Rome
|
||||||
|
JE +491101-0020624 Europe/Jersey
|
||||||
|
JM +175805-0764736 America/Jamaica
|
||||||
|
JO +3157+03556 Asia/Amman
|
||||||
|
JP +353916+1394441 Asia/Tokyo
|
||||||
|
KE -0117+03649 Africa/Nairobi
|
||||||
|
KG +4254+07436 Asia/Bishkek
|
||||||
|
KH +1133+10455 Asia/Phnom_Penh
|
||||||
|
KI +0125+17300 Pacific/Tarawa Gilbert Islands
|
||||||
|
KI -0247-17143 Pacific/Kanton Phoenix Islands
|
||||||
|
KI +0152-15720 Pacific/Kiritimati Line Islands
|
||||||
|
KM -1141+04316 Indian/Comoro
|
||||||
|
KN +1718-06243 America/St_Kitts
|
||||||
|
KP +3901+12545 Asia/Pyongyang
|
||||||
|
KR +3733+12658 Asia/Seoul
|
||||||
|
KW +2920+04759 Asia/Kuwait
|
||||||
|
KY +1918-08123 America/Cayman
|
||||||
|
KZ +4315+07657 Asia/Almaty most of Kazakhstan
|
||||||
|
KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda
|
||||||
|
KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay
|
||||||
|
KZ +5017+05710 Asia/Aqtobe Aqtobe/Aktobe
|
||||||
|
KZ +4431+05016 Asia/Aqtau Mangghystau/Mankistau
|
||||||
|
KZ +4707+05156 Asia/Atyrau Atyrau/Atirau/Gur'yev
|
||||||
|
KZ +5113+05121 Asia/Oral West Kazakhstan
|
||||||
|
LA +1758+10236 Asia/Vientiane
|
||||||
|
LB +3353+03530 Asia/Beirut
|
||||||
|
LC +1401-06100 America/St_Lucia
|
||||||
|
LI +4709+00931 Europe/Vaduz
|
||||||
|
LK +0656+07951 Asia/Colombo
|
||||||
|
LR +0618-01047 Africa/Monrovia
|
||||||
|
LS -2928+02730 Africa/Maseru
|
||||||
|
LT +5441+02519 Europe/Vilnius
|
||||||
|
LU +4936+00609 Europe/Luxembourg
|
||||||
|
LV +5657+02406 Europe/Riga
|
||||||
|
LY +3254+01311 Africa/Tripoli
|
||||||
|
MA +3339-00735 Africa/Casablanca
|
||||||
|
MC +4342+00723 Europe/Monaco
|
||||||
|
MD +4700+02850 Europe/Chisinau
|
||||||
|
ME +4226+01916 Europe/Podgorica
|
||||||
|
MF +1804-06305 America/Marigot
|
||||||
|
MG -1855+04731 Indian/Antananarivo
|
||||||
|
MH +0709+17112 Pacific/Majuro most of Marshall Islands
|
||||||
|
MH +0905+16720 Pacific/Kwajalein Kwajalein
|
||||||
|
MK +4159+02126 Europe/Skopje
|
||||||
|
ML +1239-00800 Africa/Bamako
|
||||||
|
MM +1647+09610 Asia/Yangon
|
||||||
|
MN +4755+10653 Asia/Ulaanbaatar most of Mongolia
|
||||||
|
MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
|
||||||
|
MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar
|
||||||
|
MO +221150+1133230 Asia/Macau
|
||||||
|
MP +1512+14545 Pacific/Saipan
|
||||||
|
MQ +1436-06105 America/Martinique
|
||||||
|
MR +1806-01557 Africa/Nouakchott
|
||||||
|
MS +1643-06213 America/Montserrat
|
||||||
|
MT +3554+01431 Europe/Malta
|
||||||
|
MU -2010+05730 Indian/Mauritius
|
||||||
|
MV +0410+07330 Indian/Maldives
|
||||||
|
MW -1547+03500 Africa/Blantyre
|
||||||
|
MX +1924-09909 America/Mexico_City Central Mexico
|
||||||
|
MX +2105-08646 America/Cancun Quintana Roo
|
||||||
|
MX +2058-08937 America/Merida Campeche, Yucatan
|
||||||
|
MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas)
|
||||||
|
MX +2550-09730 America/Matamoros Coahuila, Nuevo Leon, Tamaulipas (US border)
|
||||||
|
MX +2838-10605 America/Chihuahua Chihuahua (most areas)
|
||||||
|
MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west)
|
||||||
|
MX +2934-10425 America/Ojinaga Chihuahua (US border - east)
|
||||||
|
MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa
|
||||||
|
MX +2048-10515 America/Bahia_Banderas Bahia de Banderas
|
||||||
|
MX +2904-11058 America/Hermosillo Sonora
|
||||||
|
MX +3232-11701 America/Tijuana Baja California
|
||||||
|
MY +0310+10142 Asia/Kuala_Lumpur Malaysia (peninsula)
|
||||||
|
MY +0133+11020 Asia/Kuching Sabah, Sarawak
|
||||||
|
MZ -2558+03235 Africa/Maputo
|
||||||
|
NA -2234+01706 Africa/Windhoek
|
||||||
|
NC -2216+16627 Pacific/Noumea
|
||||||
|
NE +1331+00207 Africa/Niamey
|
||||||
|
NF -2903+16758 Pacific/Norfolk
|
||||||
|
NG +0627+00324 Africa/Lagos
|
||||||
|
NI +1209-08617 America/Managua
|
||||||
|
NL +5222+00454 Europe/Amsterdam
|
||||||
|
NO +5955+01045 Europe/Oslo
|
||||||
|
NP +2743+08519 Asia/Kathmandu
|
||||||
|
NR -0031+16655 Pacific/Nauru
|
||||||
|
NU -1901-16955 Pacific/Niue
|
||||||
|
NZ -3652+17446 Pacific/Auckland most of New Zealand
|
||||||
|
NZ -4357-17633 Pacific/Chatham Chatham Islands
|
||||||
|
OM +2336+05835 Asia/Muscat
|
||||||
|
PA +0858-07932 America/Panama
|
||||||
|
PE -1203-07703 America/Lima
|
||||||
|
PF -1732-14934 Pacific/Tahiti Society Islands
|
||||||
|
PF -0900-13930 Pacific/Marquesas Marquesas Islands
|
||||||
|
PF -2308-13457 Pacific/Gambier Gambier Islands
|
||||||
|
PG -0930+14710 Pacific/Port_Moresby most of Papua New Guinea
|
||||||
|
PG -0613+15534 Pacific/Bougainville Bougainville
|
||||||
|
PH +1435+12100 Asia/Manila
|
||||||
|
PK +2452+06703 Asia/Karachi
|
||||||
|
PL +5215+02100 Europe/Warsaw
|
||||||
|
PM +4703-05620 America/Miquelon
|
||||||
|
PN -2504-13005 Pacific/Pitcairn
|
||||||
|
PR +182806-0660622 America/Puerto_Rico
|
||||||
|
PS +3130+03428 Asia/Gaza Gaza Strip
|
||||||
|
PS +313200+0350542 Asia/Hebron West Bank
|
||||||
|
PT +3843-00908 Europe/Lisbon Portugal (mainland)
|
||||||
|
PT +3238-01654 Atlantic/Madeira Madeira Islands
|
||||||
|
PT +3744-02540 Atlantic/Azores Azores
|
||||||
|
PW +0720+13429 Pacific/Palau
|
||||||
|
PY -2516-05740 America/Asuncion
|
||||||
|
QA +2517+05132 Asia/Qatar
|
||||||
|
RE -2052+05528 Indian/Reunion
|
||||||
|
RO +4426+02606 Europe/Bucharest
|
||||||
|
RS +4450+02030 Europe/Belgrade
|
||||||
|
RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad
|
||||||
|
RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area
|
||||||
|
# The obsolescent zone.tab format cannot represent Europe/Simferopol well.
|
||||||
|
# Put it in RU section and list as UA. See "territorial claims" above.
|
||||||
|
# Programs should use zone1970.tab instead; see above.
|
||||||
|
UA +4457+03406 Europe/Simferopol Crimea
|
||||||
|
RU +5836+04939 Europe/Kirov MSK+00 - Kirov
|
||||||
|
RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd
|
||||||
|
RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan
|
||||||
|
RU +5134+04602 Europe/Saratov MSK+01 - Saratov
|
||||||
|
RU +5420+04824 Europe/Ulyanovsk MSK+01 - Ulyanovsk
|
||||||
|
RU +5312+05009 Europe/Samara MSK+01 - Samara, Udmurtia
|
||||||
|
RU +5651+06036 Asia/Yekaterinburg MSK+02 - Urals
|
||||||
|
RU +5500+07324 Asia/Omsk MSK+03 - Omsk
|
||||||
|
RU +5502+08255 Asia/Novosibirsk MSK+04 - Novosibirsk
|
||||||
|
RU +5322+08345 Asia/Barnaul MSK+04 - Altai
|
||||||
|
RU +5630+08458 Asia/Tomsk MSK+04 - Tomsk
|
||||||
|
RU +5345+08707 Asia/Novokuznetsk MSK+04 - Kemerovo
|
||||||
|
RU +5601+09250 Asia/Krasnoyarsk MSK+04 - Krasnoyarsk area
|
||||||
|
RU +5216+10420 Asia/Irkutsk MSK+05 - Irkutsk, Buryatia
|
||||||
|
RU +5203+11328 Asia/Chita MSK+06 - Zabaykalsky
|
||||||
|
RU +6200+12940 Asia/Yakutsk MSK+06 - Lena River
|
||||||
|
RU +623923+1353314 Asia/Khandyga MSK+06 - Tomponsky, Ust-Maysky
|
||||||
|
RU +4310+13156 Asia/Vladivostok MSK+07 - Amur River
|
||||||
|
RU +643337+1431336 Asia/Ust-Nera MSK+07 - Oymyakonsky
|
||||||
|
RU +5934+15048 Asia/Magadan MSK+08 - Magadan
|
||||||
|
RU +4658+14242 Asia/Sakhalin MSK+08 - Sakhalin Island
|
||||||
|
RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E); N Kuril Is
|
||||||
|
RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka
|
||||||
|
RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea
|
||||||
|
RW -0157+03004 Africa/Kigali
|
||||||
|
SA +2438+04643 Asia/Riyadh
|
||||||
|
SB -0932+16012 Pacific/Guadalcanal
|
||||||
|
SC -0440+05528 Indian/Mahe
|
||||||
|
SD +1536+03232 Africa/Khartoum
|
||||||
|
SE +5920+01803 Europe/Stockholm
|
||||||
|
SG +0117+10351 Asia/Singapore
|
||||||
|
SH -1555-00542 Atlantic/St_Helena
|
||||||
|
SI +4603+01431 Europe/Ljubljana
|
||||||
|
SJ +7800+01600 Arctic/Longyearbyen
|
||||||
|
SK +4809+01707 Europe/Bratislava
|
||||||
|
SL +0830-01315 Africa/Freetown
|
||||||
|
SM +4355+01228 Europe/San_Marino
|
||||||
|
SN +1440-01726 Africa/Dakar
|
||||||
|
SO +0204+04522 Africa/Mogadishu
|
||||||
|
SR +0550-05510 America/Paramaribo
|
||||||
|
SS +0451+03137 Africa/Juba
|
||||||
|
ST +0020+00644 Africa/Sao_Tome
|
||||||
|
SV +1342-08912 America/El_Salvador
|
||||||
|
SX +180305-0630250 America/Lower_Princes
|
||||||
|
SY +3330+03618 Asia/Damascus
|
||||||
|
SZ -2618+03106 Africa/Mbabane
|
||||||
|
TC +2128-07108 America/Grand_Turk
|
||||||
|
TD +1207+01503 Africa/Ndjamena
|
||||||
|
TF -492110+0701303 Indian/Kerguelen
|
||||||
|
TG +0608+00113 Africa/Lome
|
||||||
|
TH +1345+10031 Asia/Bangkok
|
||||||
|
TJ +3835+06848 Asia/Dushanbe
|
||||||
|
TK -0922-17114 Pacific/Fakaofo
|
||||||
|
TL -0833+12535 Asia/Dili
|
||||||
|
TM +3757+05823 Asia/Ashgabat
|
||||||
|
TN +3648+01011 Africa/Tunis
|
||||||
|
TO -210800-1751200 Pacific/Tongatapu
|
||||||
|
TR +4101+02858 Europe/Istanbul
|
||||||
|
TT +1039-06131 America/Port_of_Spain
|
||||||
|
TV -0831+17913 Pacific/Funafuti
|
||||||
|
TW +2503+12130 Asia/Taipei
|
||||||
|
TZ -0648+03917 Africa/Dar_es_Salaam
|
||||||
|
UA +5026+03031 Europe/Kyiv most of Ukraine
|
||||||
|
UG +0019+03225 Africa/Kampala
|
||||||
|
UM +2813-17722 Pacific/Midway Midway Islands
|
||||||
|
UM +1917+16637 Pacific/Wake Wake Island
|
||||||
|
US +404251-0740023 America/New_York Eastern (most areas)
|
||||||
|
US +421953-0830245 America/Detroit Eastern - MI (most areas)
|
||||||
|
US +381515-0854534 America/Kentucky/Louisville Eastern - KY (Louisville area)
|
||||||
|
US +364947-0845057 America/Kentucky/Monticello Eastern - KY (Wayne)
|
||||||
|
US +394606-0860929 America/Indiana/Indianapolis Eastern - IN (most areas)
|
||||||
|
US +384038-0873143 America/Indiana/Vincennes Eastern - IN (Da, Du, K, Mn)
|
||||||
|
US +410305-0863611 America/Indiana/Winamac Eastern - IN (Pulaski)
|
||||||
|
US +382232-0862041 America/Indiana/Marengo Eastern - IN (Crawford)
|
||||||
|
US +382931-0871643 America/Indiana/Petersburg Eastern - IN (Pike)
|
||||||
|
US +384452-0850402 America/Indiana/Vevay Eastern - IN (Switzerland)
|
||||||
|
US +415100-0873900 America/Chicago Central (most areas)
|
||||||
|
US +375711-0864541 America/Indiana/Tell_City Central - IN (Perry)
|
||||||
|
US +411745-0863730 America/Indiana/Knox Central - IN (Starke)
|
||||||
|
US +450628-0873651 America/Menominee Central - MI (Wisconsin border)
|
||||||
|
US +470659-1011757 America/North_Dakota/Center Central - ND (Oliver)
|
||||||
|
US +465042-1012439 America/North_Dakota/New_Salem Central - ND (Morton rural)
|
||||||
|
US +471551-1014640 America/North_Dakota/Beulah Central - ND (Mercer)
|
||||||
|
US +394421-1045903 America/Denver Mountain (most areas)
|
||||||
|
US +433649-1161209 America/Boise Mountain - ID (south); OR (east)
|
||||||
|
US +332654-1120424 America/Phoenix MST - AZ (except Navajo)
|
||||||
|
US +340308-1181434 America/Los_Angeles Pacific
|
||||||
|
US +611305-1495401 America/Anchorage Alaska (most areas)
|
||||||
|
US +581807-1342511 America/Juneau Alaska - Juneau area
|
||||||
|
US +571035-1351807 America/Sitka Alaska - Sitka area
|
||||||
|
US +550737-1313435 America/Metlakatla Alaska - Annette Island
|
||||||
|
US +593249-1394338 America/Yakutat Alaska - Yakutat
|
||||||
|
US +643004-1652423 America/Nome Alaska (west)
|
||||||
|
US +515248-1763929 America/Adak Alaska - western Aleutians
|
||||||
|
US +211825-1575130 Pacific/Honolulu Hawaii
|
||||||
|
UY -345433-0561245 America/Montevideo
|
||||||
|
UZ +3940+06648 Asia/Samarkand Uzbekistan (west)
|
||||||
|
UZ +4120+06918 Asia/Tashkent Uzbekistan (east)
|
||||||
|
VA +415408+0122711 Europe/Vatican
|
||||||
|
VC +1309-06114 America/St_Vincent
|
||||||
|
VE +1030-06656 America/Caracas
|
||||||
|
VG +1827-06437 America/Tortola
|
||||||
|
VI +1821-06456 America/St_Thomas
|
||||||
|
VN +1045+10640 Asia/Ho_Chi_Minh
|
||||||
|
VU -1740+16825 Pacific/Efate
|
||||||
|
WF -1318-17610 Pacific/Wallis
|
||||||
|
WS -1350-17144 Pacific/Apia
|
||||||
|
YE +1245+04512 Asia/Aden
|
||||||
|
YT -1247+04514 Indian/Mayotte
|
||||||
|
ZA -2615+02800 Africa/Johannesburg
|
||||||
|
ZM -1525+02817 Africa/Lusaka
|
||||||
|
ZW -1750+03103 Africa/Harare
|
|
@ -0,0 +1,374 @@
|
||||||
|
# tzdb timezone descriptions
|
||||||
|
#
|
||||||
|
# This file is in the public domain.
|
||||||
|
#
|
||||||
|
# From Paul Eggert (2018-06-27):
|
||||||
|
# This file contains a table where each row stands for a timezone where
|
||||||
|
# civil timestamps have agreed since 1970. Columns are separated by
|
||||||
|
# a single tab. Lines beginning with '#' are comments. All text uses
|
||||||
|
# UTF-8 encoding. The columns of the table are as follows:
|
||||||
|
#
|
||||||
|
# 1. The countries that overlap the timezone, as a comma-separated list
|
||||||
|
# of ISO 3166 2-character country codes. See the file 'iso3166.tab'.
|
||||||
|
# 2. Latitude and longitude of the timezone's principal location
|
||||||
|
# in ISO 6709 sign-degrees-minutes-seconds format,
|
||||||
|
# either ±DDMM±DDDMM or ±DDMMSS±DDDMMSS,
|
||||||
|
# first latitude (+ is north), then longitude (+ is east).
|
||||||
|
# 3. Timezone name used in value of TZ environment variable.
|
||||||
|
# Please see the theory.html file for how these names are chosen.
|
||||||
|
# If multiple timezones overlap a country, each has a row in the
|
||||||
|
# table, with each column 1 containing the country code.
|
||||||
|
# 4. Comments; present if and only if countries have multiple timezones,
|
||||||
|
# and useful only for those countries. For example, the comments
|
||||||
|
# for the row with countries CH,DE,LI and name Europe/Zurich
|
||||||
|
# are useful only for DE, since CH and LI have no other timezones.
|
||||||
|
#
|
||||||
|
# If a timezone covers multiple countries, the most-populous city is used,
|
||||||
|
# and that country is listed first in column 1; any other countries
|
||||||
|
# are listed alphabetically by country code. The table is sorted
|
||||||
|
# first by country code, then (if possible) by an order within the
|
||||||
|
# country that (1) makes some geographical sense, and (2) puts the
|
||||||
|
# most populous timezones first, where that does not contradict (1).
|
||||||
|
#
|
||||||
|
# This table is intended as an aid for users, to help them select timezones
|
||||||
|
# appropriate for their practical needs. It is not intended to take or
|
||||||
|
# endorse any position on legal or territorial claims.
|
||||||
|
#
|
||||||
|
#country-
|
||||||
|
#codes coordinates TZ comments
|
||||||
|
AD +4230+00131 Europe/Andorra
|
||||||
|
AE,OM,RE,SC,TF +2518+05518 Asia/Dubai Crozet, Scattered Is
|
||||||
|
AF +3431+06912 Asia/Kabul
|
||||||
|
AL +4120+01950 Europe/Tirane
|
||||||
|
AM +4011+04430 Asia/Yerevan
|
||||||
|
AQ -6617+11031 Antarctica/Casey Casey
|
||||||
|
AQ -6835+07758 Antarctica/Davis Davis
|
||||||
|
AQ -6736+06253 Antarctica/Mawson Mawson
|
||||||
|
AQ -6448-06406 Antarctica/Palmer Palmer
|
||||||
|
AQ -6734-06808 Antarctica/Rothera Rothera
|
||||||
|
AQ -720041+0023206 Antarctica/Troll Troll
|
||||||
|
AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF)
|
||||||
|
AR -3124-06411 America/Argentina/Cordoba most areas: CB, CC, CN, ER, FM, MN, SE, SF
|
||||||
|
AR -2447-06525 America/Argentina/Salta Salta (SA, LP, NQ, RN)
|
||||||
|
AR -2411-06518 America/Argentina/Jujuy Jujuy (JY)
|
||||||
|
AR -2649-06513 America/Argentina/Tucuman Tucumán (TM)
|
||||||
|
AR -2828-06547 America/Argentina/Catamarca Catamarca (CT); Chubut (CH)
|
||||||
|
AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR)
|
||||||
|
AR -3132-06831 America/Argentina/San_Juan San Juan (SJ)
|
||||||
|
AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ)
|
||||||
|
AR -3319-06621 America/Argentina/San_Luis San Luis (SL)
|
||||||
|
AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC)
|
||||||
|
AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF)
|
||||||
|
AS,UM -1416-17042 Pacific/Pago_Pago Midway
|
||||||
|
AT +4813+01620 Europe/Vienna
|
||||||
|
AU -3133+15905 Australia/Lord_Howe Lord Howe Island
|
||||||
|
AU -5430+15857 Antarctica/Macquarie Macquarie Island
|
||||||
|
AU -4253+14719 Australia/Hobart Tasmania
|
||||||
|
AU -3749+14458 Australia/Melbourne Victoria
|
||||||
|
AU -3352+15113 Australia/Sydney New South Wales (most areas)
|
||||||
|
AU -3157+14127 Australia/Broken_Hill New South Wales (Yancowinna)
|
||||||
|
AU -2728+15302 Australia/Brisbane Queensland (most areas)
|
||||||
|
AU -2016+14900 Australia/Lindeman Queensland (Whitsunday Islands)
|
||||||
|
AU -3455+13835 Australia/Adelaide South Australia
|
||||||
|
AU -1228+13050 Australia/Darwin Northern Territory
|
||||||
|
AU -3157+11551 Australia/Perth Western Australia (most areas)
|
||||||
|
AU -3143+12852 Australia/Eucla Western Australia (Eucla)
|
||||||
|
AZ +4023+04951 Asia/Baku
|
||||||
|
BB +1306-05937 America/Barbados
|
||||||
|
BD +2343+09025 Asia/Dhaka
|
||||||
|
BE,LU,NL +5050+00420 Europe/Brussels
|
||||||
|
BG +4241+02319 Europe/Sofia
|
||||||
|
BM +3217-06446 Atlantic/Bermuda
|
||||||
|
BO -1630-06809 America/La_Paz
|
||||||
|
BR -0351-03225 America/Noronha Atlantic islands
|
||||||
|
BR -0127-04829 America/Belem Pará (east); Amapá
|
||||||
|
BR -0343-03830 America/Fortaleza Brazil (northeast: MA, PI, CE, RN, PB)
|
||||||
|
BR -0803-03454 America/Recife Pernambuco
|
||||||
|
BR -0712-04812 America/Araguaina Tocantins
|
||||||
|
BR -0940-03543 America/Maceio Alagoas, Sergipe
|
||||||
|
BR -1259-03831 America/Bahia Bahia
|
||||||
|
BR -2332-04637 America/Sao_Paulo Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS)
|
||||||
|
BR -2027-05437 America/Campo_Grande Mato Grosso do Sul
|
||||||
|
BR -1535-05605 America/Cuiaba Mato Grosso
|
||||||
|
BR -0226-05452 America/Santarem Pará (west)
|
||||||
|
BR -0846-06354 America/Porto_Velho Rondônia
|
||||||
|
BR +0249-06040 America/Boa_Vista Roraima
|
||||||
|
BR -0308-06001 America/Manaus Amazonas (east)
|
||||||
|
BR -0640-06952 America/Eirunepe Amazonas (west)
|
||||||
|
BR -0958-06748 America/Rio_Branco Acre
|
||||||
|
BT +2728+08939 Asia/Thimphu
|
||||||
|
BY +5354+02734 Europe/Minsk
|
||||||
|
BZ +1730-08812 America/Belize
|
||||||
|
CA +4734-05243 America/St_Johns Newfoundland; Labrador (southeast)
|
||||||
|
CA +4439-06336 America/Halifax Atlantic - NS (most areas); PE
|
||||||
|
CA +4612-05957 America/Glace_Bay Atlantic - NS (Cape Breton)
|
||||||
|
CA +4606-06447 America/Moncton Atlantic - New Brunswick
|
||||||
|
CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas)
|
||||||
|
CA,BS +4339-07923 America/Toronto Eastern - ON, QC (most areas)
|
||||||
|
CA +6344-06828 America/Iqaluit Eastern - NU (most areas)
|
||||||
|
CA +4953-09709 America/Winnipeg Central - ON (west); Manitoba
|
||||||
|
CA +744144-0944945 America/Resolute Central - NU (Resolute)
|
||||||
|
CA +624900-0920459 America/Rankin_Inlet Central - NU (central)
|
||||||
|
CA +5024-10439 America/Regina CST - SK (most areas)
|
||||||
|
CA +5017-10750 America/Swift_Current CST - SK (midwest)
|
||||||
|
CA +5333-11328 America/Edmonton Mountain - AB; BC (E); NT (E); SK (W)
|
||||||
|
CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west)
|
||||||
|
CA +682059-1334300 America/Inuvik Mountain - NT (west)
|
||||||
|
CA +5546-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John)
|
||||||
|
CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson)
|
||||||
|
CA +6043-13503 America/Whitehorse MST - Yukon (east)
|
||||||
|
CA +6404-13925 America/Dawson MST - Yukon (west)
|
||||||
|
CA +4916-12307 America/Vancouver Pacific - BC (most areas)
|
||||||
|
CH,DE,LI +4723+00832 Europe/Zurich Büsingen
|
||||||
|
CI,BF,GH,GM,GN,IS,ML,MR,SH,SL,SN,TG +0519-00402 Africa/Abidjan
|
||||||
|
CK -2114-15946 Pacific/Rarotonga
|
||||||
|
CL -3327-07040 America/Santiago most of Chile
|
||||||
|
CL -5309-07055 America/Punta_Arenas Region of Magallanes
|
||||||
|
CL -2709-10926 Pacific/Easter Easter Island
|
||||||
|
CN +3114+12128 Asia/Shanghai Beijing Time
|
||||||
|
CN,AQ +4348+08735 Asia/Urumqi Xinjiang Time, Vostok
|
||||||
|
CO +0436-07405 America/Bogota
|
||||||
|
CR +0956-08405 America/Costa_Rica
|
||||||
|
CU +2308-08222 America/Havana
|
||||||
|
CV +1455-02331 Atlantic/Cape_Verde
|
||||||
|
CY +3510+03322 Asia/Nicosia most of Cyprus
|
||||||
|
CY +3507+03357 Asia/Famagusta Northern Cyprus
|
||||||
|
CZ,SK +5005+01426 Europe/Prague
|
||||||
|
DE,DK,NO,SE,SJ +5230+01322 Europe/Berlin most of Germany
|
||||||
|
DO +1828-06954 America/Santo_Domingo
|
||||||
|
DZ +3647+00303 Africa/Algiers
|
||||||
|
EC -0210-07950 America/Guayaquil Ecuador (mainland)
|
||||||
|
EC -0054-08936 Pacific/Galapagos Galápagos Islands
|
||||||
|
EE +5925+02445 Europe/Tallinn
|
||||||
|
EG +3003+03115 Africa/Cairo
|
||||||
|
EH +2709-01312 Africa/El_Aaiun
|
||||||
|
ES +4024-00341 Europe/Madrid Spain (mainland)
|
||||||
|
ES +3553-00519 Africa/Ceuta Ceuta, Melilla
|
||||||
|
ES +2806-01524 Atlantic/Canary Canary Islands
|
||||||
|
FI,AX +6010+02458 Europe/Helsinki
|
||||||
|
FJ -1808+17825 Pacific/Fiji
|
||||||
|
FK -5142-05751 Atlantic/Stanley
|
||||||
|
FM +0519+16259 Pacific/Kosrae Kosrae
|
||||||
|
FO +6201-00646 Atlantic/Faroe
|
||||||
|
FR,MC +4852+00220 Europe/Paris
|
||||||
|
GB,GG,IM,JE +513030-0000731 Europe/London
|
||||||
|
GE +4143+04449 Asia/Tbilisi
|
||||||
|
GF +0456-05220 America/Cayenne
|
||||||
|
GI +3608-00521 Europe/Gibraltar
|
||||||
|
GL +6411-05144 America/Nuuk most of Greenland
|
||||||
|
GL +7646-01840 America/Danmarkshavn National Park (east coast)
|
||||||
|
GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit
|
||||||
|
GL +7634-06847 America/Thule Thule/Pituffik
|
||||||
|
GR +3758+02343 Europe/Athens
|
||||||
|
GS -5416-03632 Atlantic/South_Georgia
|
||||||
|
GT +1438-09031 America/Guatemala
|
||||||
|
GU,MP +1328+14445 Pacific/Guam
|
||||||
|
GW +1151-01535 Africa/Bissau
|
||||||
|
GY +0648-05810 America/Guyana
|
||||||
|
HK +2217+11409 Asia/Hong_Kong
|
||||||
|
HN +1406-08713 America/Tegucigalpa
|
||||||
|
HT +1832-07220 America/Port-au-Prince
|
||||||
|
HU +4730+01905 Europe/Budapest
|
||||||
|
ID -0610+10648 Asia/Jakarta Java, Sumatra
|
||||||
|
ID -0002+10920 Asia/Pontianak Borneo (west, central)
|
||||||
|
ID -0507+11924 Asia/Makassar Borneo (east, south); Sulawesi/Celebes, Bali, Nusa Tengarra; Timor (west)
|
||||||
|
ID -0232+14042 Asia/Jayapura New Guinea (West Papua / Irian Jaya); Malukus/Moluccas
|
||||||
|
IE +5320-00615 Europe/Dublin
|
||||||
|
IL +314650+0351326 Asia/Jerusalem
|
||||||
|
IN +2232+08822 Asia/Kolkata
|
||||||
|
IO -0720+07225 Indian/Chagos
|
||||||
|
IQ +3321+04425 Asia/Baghdad
|
||||||
|
IR +3540+05126 Asia/Tehran
|
||||||
|
IT,SM,VA +4154+01229 Europe/Rome
|
||||||
|
JM +175805-0764736 America/Jamaica
|
||||||
|
JO +3157+03556 Asia/Amman
|
||||||
|
JP +353916+1394441 Asia/Tokyo
|
||||||
|
KE,DJ,ER,ET,KM,MG,SO,TZ,UG,YT -0117+03649 Africa/Nairobi
|
||||||
|
KG +4254+07436 Asia/Bishkek
|
||||||
|
KI,MH,TV,UM,WF +0125+17300 Pacific/Tarawa Gilberts, Marshalls, Wake
|
||||||
|
KI -0247-17143 Pacific/Kanton Phoenix Islands
|
||||||
|
KI +0152-15720 Pacific/Kiritimati Line Islands
|
||||||
|
KP +3901+12545 Asia/Pyongyang
|
||||||
|
KR +3733+12658 Asia/Seoul
|
||||||
|
KZ +4315+07657 Asia/Almaty most of Kazakhstan
|
||||||
|
KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda
|
||||||
|
KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay
|
||||||
|
KZ +5017+05710 Asia/Aqtobe Aqtöbe/Aktobe
|
||||||
|
KZ +4431+05016 Asia/Aqtau Mangghystaū/Mankistau
|
||||||
|
KZ +4707+05156 Asia/Atyrau Atyraū/Atirau/Gur'yev
|
||||||
|
KZ +5113+05121 Asia/Oral West Kazakhstan
|
||||||
|
LB +3353+03530 Asia/Beirut
|
||||||
|
LK +0656+07951 Asia/Colombo
|
||||||
|
LR +0618-01047 Africa/Monrovia
|
||||||
|
LT +5441+02519 Europe/Vilnius
|
||||||
|
LV +5657+02406 Europe/Riga
|
||||||
|
LY +3254+01311 Africa/Tripoli
|
||||||
|
MA +3339-00735 Africa/Casablanca
|
||||||
|
MD +4700+02850 Europe/Chisinau
|
||||||
|
MH +0905+16720 Pacific/Kwajalein Kwajalein
|
||||||
|
MM,CC +1647+09610 Asia/Yangon
|
||||||
|
MN +4755+10653 Asia/Ulaanbaatar most of Mongolia
|
||||||
|
MN +4801+09139 Asia/Hovd Bayan-Ölgii, Govi-Altai, Hovd, Uvs, Zavkhan
|
||||||
|
MN +4804+11430 Asia/Choibalsan Dornod, Sükhbaatar
|
||||||
|
MO +221150+1133230 Asia/Macau
|
||||||
|
MQ +1436-06105 America/Martinique
|
||||||
|
MT +3554+01431 Europe/Malta
|
||||||
|
MU -2010+05730 Indian/Mauritius
|
||||||
|
MV,TF +0410+07330 Indian/Maldives Kerguelen, St Paul I, Amsterdam I
|
||||||
|
MX +1924-09909 America/Mexico_City Central Mexico
|
||||||
|
MX +2105-08646 America/Cancun Quintana Roo
|
||||||
|
MX +2058-08937 America/Merida Campeche, Yucatán
|
||||||
|
MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo León, Tamaulipas (most areas)
|
||||||
|
MX +2550-09730 America/Matamoros Coahuila, Nuevo León, Tamaulipas (US border)
|
||||||
|
MX +2838-10605 America/Chihuahua Chihuahua (most areas)
|
||||||
|
MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west)
|
||||||
|
MX +2934-10425 America/Ojinaga Chihuahua (US border - east)
|
||||||
|
MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa
|
||||||
|
MX +2048-10515 America/Bahia_Banderas Bahía de Banderas
|
||||||
|
MX +2904-11058 America/Hermosillo Sonora
|
||||||
|
MX +3232-11701 America/Tijuana Baja California
|
||||||
|
MY,BN +0133+11020 Asia/Kuching Sabah, Sarawak
|
||||||
|
MZ,BI,BW,CD,MW,RW,ZM,ZW -2558+03235 Africa/Maputo Central Africa Time
|
||||||
|
NA -2234+01706 Africa/Windhoek
|
||||||
|
NC -2216+16627 Pacific/Noumea
|
||||||
|
NF -2903+16758 Pacific/Norfolk
|
||||||
|
NG,AO,BJ,CD,CF,CG,CM,GA,GQ,NE +0627+00324 Africa/Lagos West Africa Time
|
||||||
|
NI +1209-08617 America/Managua
|
||||||
|
NP +2743+08519 Asia/Kathmandu
|
||||||
|
NR -0031+16655 Pacific/Nauru
|
||||||
|
NU -1901-16955 Pacific/Niue
|
||||||
|
NZ,AQ -3652+17446 Pacific/Auckland New Zealand time
|
||||||
|
NZ -4357-17633 Pacific/Chatham Chatham Islands
|
||||||
|
PA,CA,KY +0858-07932 America/Panama EST - ON (Atikokan), NU (Coral H)
|
||||||
|
PE -1203-07703 America/Lima
|
||||||
|
PF -1732-14934 Pacific/Tahiti Society Islands
|
||||||
|
PF -0900-13930 Pacific/Marquesas Marquesas Islands
|
||||||
|
PF -2308-13457 Pacific/Gambier Gambier Islands
|
||||||
|
PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d'Urville
|
||||||
|
PG -0613+15534 Pacific/Bougainville Bougainville
|
||||||
|
PH +1435+12100 Asia/Manila
|
||||||
|
PK +2452+06703 Asia/Karachi
|
||||||
|
PL +5215+02100 Europe/Warsaw
|
||||||
|
PM +4703-05620 America/Miquelon
|
||||||
|
PN -2504-13005 Pacific/Pitcairn
|
||||||
|
PR,AG,CA,AI,AW,BL,BQ,CW,DM,GD,GP,KN,LC,MF,MS,SX,TT,VC,VG,VI +182806-0660622 America/Puerto_Rico AST
|
||||||
|
PS +3130+03428 Asia/Gaza Gaza Strip
|
||||||
|
PS +313200+0350542 Asia/Hebron West Bank
|
||||||
|
PT +3843-00908 Europe/Lisbon Portugal (mainland)
|
||||||
|
PT +3238-01654 Atlantic/Madeira Madeira Islands
|
||||||
|
PT +3744-02540 Atlantic/Azores Azores
|
||||||
|
PW +0720+13429 Pacific/Palau
|
||||||
|
PY -2516-05740 America/Asuncion
|
||||||
|
QA,BH +2517+05132 Asia/Qatar
|
||||||
|
RO +4426+02606 Europe/Bucharest
|
||||||
|
RS,BA,HR,ME,MK,SI +4450+02030 Europe/Belgrade
|
||||||
|
RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad
|
||||||
|
RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area
|
||||||
|
# Mention RU and UA alphabetically. See "territorial claims" above.
|
||||||
|
RU,UA +4457+03406 Europe/Simferopol Crimea
|
||||||
|
RU +5836+04939 Europe/Kirov MSK+00 - Kirov
|
||||||
|
RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd
|
||||||
|
RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan
|
||||||
|
RU +5134+04602 Europe/Saratov MSK+01 - Saratov
|
||||||
|
RU +5420+04824 Europe/Ulyanovsk MSK+01 - Ulyanovsk
|
||||||
|
RU +5312+05009 Europe/Samara MSK+01 - Samara, Udmurtia
|
||||||
|
RU +5651+06036 Asia/Yekaterinburg MSK+02 - Urals
|
||||||
|
RU +5500+07324 Asia/Omsk MSK+03 - Omsk
|
||||||
|
RU +5502+08255 Asia/Novosibirsk MSK+04 - Novosibirsk
|
||||||
|
RU +5322+08345 Asia/Barnaul MSK+04 - Altai
|
||||||
|
RU +5630+08458 Asia/Tomsk MSK+04 - Tomsk
|
||||||
|
RU +5345+08707 Asia/Novokuznetsk MSK+04 - Kemerovo
|
||||||
|
RU +5601+09250 Asia/Krasnoyarsk MSK+04 - Krasnoyarsk area
|
||||||
|
RU +5216+10420 Asia/Irkutsk MSK+05 - Irkutsk, Buryatia
|
||||||
|
RU +5203+11328 Asia/Chita MSK+06 - Zabaykalsky
|
||||||
|
RU +6200+12940 Asia/Yakutsk MSK+06 - Lena River
|
||||||
|
RU +623923+1353314 Asia/Khandyga MSK+06 - Tomponsky, Ust-Maysky
|
||||||
|
RU +4310+13156 Asia/Vladivostok MSK+07 - Amur River
|
||||||
|
RU +643337+1431336 Asia/Ust-Nera MSK+07 - Oymyakonsky
|
||||||
|
RU +5934+15048 Asia/Magadan MSK+08 - Magadan
|
||||||
|
RU +4658+14242 Asia/Sakhalin MSK+08 - Sakhalin Island
|
||||||
|
RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E); N Kuril Is
|
||||||
|
RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka
|
||||||
|
RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea
|
||||||
|
SA,AQ,KW,YE +2438+04643 Asia/Riyadh Syowa
|
||||||
|
SB,FM -0932+16012 Pacific/Guadalcanal Pohnpei
|
||||||
|
SD +1536+03232 Africa/Khartoum
|
||||||
|
SG,MY +0117+10351 Asia/Singapore peninsular Malaysia
|
||||||
|
SR +0550-05510 America/Paramaribo
|
||||||
|
SS +0451+03137 Africa/Juba
|
||||||
|
ST +0020+00644 Africa/Sao_Tome
|
||||||
|
SV +1342-08912 America/El_Salvador
|
||||||
|
SY +3330+03618 Asia/Damascus
|
||||||
|
TC +2128-07108 America/Grand_Turk
|
||||||
|
TD +1207+01503 Africa/Ndjamena
|
||||||
|
TH,CX,KH,LA,VN +1345+10031 Asia/Bangkok north Vietnam
|
||||||
|
TJ +3835+06848 Asia/Dushanbe
|
||||||
|
TK -0922-17114 Pacific/Fakaofo
|
||||||
|
TL -0833+12535 Asia/Dili
|
||||||
|
TM +3757+05823 Asia/Ashgabat
|
||||||
|
TN +3648+01011 Africa/Tunis
|
||||||
|
TO -210800-1751200 Pacific/Tongatapu
|
||||||
|
TR +4101+02858 Europe/Istanbul
|
||||||
|
TW +2503+12130 Asia/Taipei
|
||||||
|
UA +5026+03031 Europe/Kyiv most of Ukraine
|
||||||
|
US +404251-0740023 America/New_York Eastern (most areas)
|
||||||
|
US +421953-0830245 America/Detroit Eastern - MI (most areas)
|
||||||
|
US +381515-0854534 America/Kentucky/Louisville Eastern - KY (Louisville area)
|
||||||
|
US +364947-0845057 America/Kentucky/Monticello Eastern - KY (Wayne)
|
||||||
|
US +394606-0860929 America/Indiana/Indianapolis Eastern - IN (most areas)
|
||||||
|
US +384038-0873143 America/Indiana/Vincennes Eastern - IN (Da, Du, K, Mn)
|
||||||
|
US +410305-0863611 America/Indiana/Winamac Eastern - IN (Pulaski)
|
||||||
|
US +382232-0862041 America/Indiana/Marengo Eastern - IN (Crawford)
|
||||||
|
US +382931-0871643 America/Indiana/Petersburg Eastern - IN (Pike)
|
||||||
|
US +384452-0850402 America/Indiana/Vevay Eastern - IN (Switzerland)
|
||||||
|
US +415100-0873900 America/Chicago Central (most areas)
|
||||||
|
US +375711-0864541 America/Indiana/Tell_City Central - IN (Perry)
|
||||||
|
US +411745-0863730 America/Indiana/Knox Central - IN (Starke)
|
||||||
|
US +450628-0873651 America/Menominee Central - MI (Wisconsin border)
|
||||||
|
US +470659-1011757 America/North_Dakota/Center Central - ND (Oliver)
|
||||||
|
US +465042-1012439 America/North_Dakota/New_Salem Central - ND (Morton rural)
|
||||||
|
US +471551-1014640 America/North_Dakota/Beulah Central - ND (Mercer)
|
||||||
|
US +394421-1045903 America/Denver Mountain (most areas)
|
||||||
|
US +433649-1161209 America/Boise Mountain - ID (south); OR (east)
|
||||||
|
US,CA +332654-1120424 America/Phoenix MST - AZ (most areas), Creston BC
|
||||||
|
US +340308-1181434 America/Los_Angeles Pacific
|
||||||
|
US +611305-1495401 America/Anchorage Alaska (most areas)
|
||||||
|
US +581807-1342511 America/Juneau Alaska - Juneau area
|
||||||
|
US +571035-1351807 America/Sitka Alaska - Sitka area
|
||||||
|
US +550737-1313435 America/Metlakatla Alaska - Annette Island
|
||||||
|
US +593249-1394338 America/Yakutat Alaska - Yakutat
|
||||||
|
US +643004-1652423 America/Nome Alaska (west)
|
||||||
|
US +515248-1763929 America/Adak Alaska - western Aleutians
|
||||||
|
US +211825-1575130 Pacific/Honolulu Hawaii
|
||||||
|
UY -345433-0561245 America/Montevideo
|
||||||
|
UZ +3940+06648 Asia/Samarkand Uzbekistan (west)
|
||||||
|
UZ +4120+06918 Asia/Tashkent Uzbekistan (east)
|
||||||
|
VE +1030-06656 America/Caracas
|
||||||
|
VN +1045+10640 Asia/Ho_Chi_Minh south Vietnam
|
||||||
|
VU -1740+16825 Pacific/Efate
|
||||||
|
WS -1350-17144 Pacific/Apia
|
||||||
|
ZA,LS,SZ -2615+02800 Africa/Johannesburg
|
||||||
|
#
|
||||||
|
# The next section contains experimental tab-separated comments for
|
||||||
|
# use by user agents like tzselect that identify continents and oceans.
|
||||||
|
#
|
||||||
|
# For example, the comment "#@AQ<tab>Antarctica/" means the country code
|
||||||
|
# AQ is in the continent Antarctica regardless of the Zone name,
|
||||||
|
# so Pacific/Auckland should be listed under Antarctica as well as
|
||||||
|
# under the Pacific because its line's country codes include AQ.
|
||||||
|
#
|
||||||
|
# If more than one country code is affected each is listed separated
|
||||||
|
# by commas, e.g., #@IS,SH<tab>Atlantic/". If a country code is in
|
||||||
|
# more than one continent or ocean, each is listed separated by
|
||||||
|
# commas, e.g., the second column of "#@CY,TR<tab>Asia/,Europe/".
|
||||||
|
#
|
||||||
|
# These experimental comments are present only for country codes where
|
||||||
|
# the continent or ocean is not already obvious from the Zone name.
|
||||||
|
# For example, there is no such comment for RU since it already
|
||||||
|
# corresponds to Zone names starting with both "Europe/" and "Asia/".
|
||||||
|
#
|
||||||
|
#@AQ Antarctica/
|
||||||
|
#@IS,SH Atlantic/
|
||||||
|
#@CY,TR Asia/,Europe/
|
||||||
|
#@SJ Arctic/
|
||||||
|
#@CC,CX,KM,MG,YT Indian/
|
Loading…
Reference in New Issue