diff --git a/.gitignore b/.gitignore index 4ecb117..7d5920f 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ build *.o example +.mypy_cache/ +a.out diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d18d3a5 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "python.pythonPath": "/usr/local/bin/python3", + "python.autoComplete.extraPaths": [ + "./utils" + ], +} diff --git a/Makefile b/Makefile index 0ebc0da..2bdea0b 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ DEPS = zones.h UTZ_DATA_DIR = vendor/tzdata UTZ_REGIONS = africa,asia,australasia,backward,europe,northamerica,pacificnew,southamerica UTZ_WHITELIST = whitelist.txt -UTZ_INCLUDES = majormetros +UTZ_INCLUDES = majorcities export UTZ_DATA_DIR:=$(UTZ_DATA_DIR) export UTZ_REGIONS:=$(UTZ_REGIONS) export UTZ_INCLUDES:=$(UTZ_INCLUDES) @@ -18,11 +18,11 @@ zones.h: $(UTZ_DATA_DIR) $(UTZ_INCLUDES) $(UTZ_WHITELIST) utils/generate_zones.p ./utils/generate_zones.py zones.c: zones.h -whitelist.txt: vendor/android/timezones.xml majormetros utils/compile_whitelist.py +whitelist.txt: vendor/android/timezones.xml majorcities utils/compile_whitelist.py ./utils/compile_whitelist.py # The IANA timezone database is missing zone links for many of the worlds largest metropolitan areas -majormetros: +majorcities: ./utils/compile_tzlinks.py %.o: %.c $(DEPS) diff --git a/README.md b/README.md index d20c22e..7a10109 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # μ time zone (library) -An embedded timezone library and ~3kB tzinfo database featuring nearly -all current timezones present in the IANA timezone database. +An embedded timezone library and ~3kB tzinfo database featuring nearly +all current timezones present in the IANA timezone database. Designed for use on budget embedded systems with low program space. The C header containing packed timezone information is generated from @@ -23,7 +23,7 @@ formatting, etc to make efficient use of bit packs. ## Limitations The current utility library does not support parsing / -packing all possible syntax of the source IANA tz database. +packing all possible syntax of the source IANA tz database. Instead a subset corresponding to the what is needed to correctly parse most zones is implemented. @@ -32,3 +32,16 @@ most zones is implemented. [zic man page and IANA tz database format documentation](https://linux.die.net/man/8/zic) [vendored files](./vendor) + +## Instructions to generate files (without Make) + +1. Setup dev environment: + `python3 -m pip install -r requirements.txt` +2. Generate links based on major cities: + `python3 utils/compile_tzlinks.py` +3. Generate a list of timezones to include, based on major cities and timezones included in Android: + `python3 utils/compile_whitelist.py` +5. Generate `zones.h` and `zones.c`: + `python3 utils/generate_zones.py -d vendor/tzdata -r africa -r asia -r australasia -r backward -r europe -r northamerica -r pacificnew -r southamerica -w whitelist.txt -i majorcities` + +Include different regions in step 5 based on your preferences diff --git a/examples/example.c b/examples/example.c index 455250b..fa89595 100644 --- a/examples/example.c +++ b/examples/example.c @@ -4,16 +4,17 @@ * @author eV Quirk */ -#include "utz.h" -#include "zones.h" +#include "../utz.h" +#include "../zones.h" #include -void main() { +void main() +{ printf("Total library db size: %d B\n", sizeof(zone_rules) + sizeof(zone_abrevs) + sizeof(zone_defns) + sizeof(zone_names)); udatetime_t dt = {0}; dt.date.year = 17; - dt.date.month = 9; + dt.date.month = 1; dt.date.dayofmonth = 26; dt.time.hour = 1; dt.time.minute = 0; diff --git a/examples/example2.c b/examples/example2.c new file mode 100644 index 0000000..f11373e --- /dev/null +++ b/examples/example2.c @@ -0,0 +1,64 @@ +/** @file example2.c + * @brief Example of how to get local time from utc time and set TZ env + * + * @author Joshua Smith + */ + +#include +#include +#include +#include +#include + +#include "../utz.h" +#include "../zones.h" + +static void copy_tm_to_udt(const struct tm *tm, udatetime_t *dt) +{ + dt->date.year = tm->tm_year - 100; + dt->date.month = tm->tm_mon; + dt->date.dayofmonth = tm->tm_mday; + dt->date.dayofweek = tm->tm_wday; + dt->time.hour = tm->tm_hour; + dt->time.minute = tm->tm_min; + dt->time.second = tm->tm_sec; +} + +static time_t uoffset_to_seconds(const uoffset_t *offset) +{ + time_t seconds = offset->hours * 3600; + seconds += (offset->hours >= 0 ? offset->minutes : -offset->minutes) * 60; + return seconds; +} + +int main() +{ + // 1. Get seconds after epoch + time_t now = time(NULL); + printf("UTC TIME:\t\t%s", asctime(gmtime(&now))); + + // 2. Get user selected zone + uzone_t active_zone; + get_zone_by_name("Halifax", &active_zone); + + // 3. Calculate standard time, pretending it's the new UTC + time_t std_now = now + uoffset_to_seconds(&active_zone.offset); + + // 4. Get tm struct and convert it to the proper udatetime_t type; + struct tm tm_std = *gmtime(&std_now); + udatetime_t dt; + copy_tm_to_udt(&tm_std, &dt); + + // 5. Get offset based on standard time + uoffset_t offset; + char c = get_current_offset(&active_zone, &dt, &offset); + + // Do what you want with the offset... + + time_t true_now = now + uoffset_to_seconds(&offset); + printf("%s time:\t\t%s", active_zone.name, asctime(gmtime(&true_now))); + printf(active_zone.abrev_formatter, c); + printf("\n"); + + return 0; +} diff --git a/majorcities b/majorcities new file mode 100644 index 0000000..91bedd1 --- /dev/null +++ b/majorcities @@ -0,0 +1,33 @@ +Link Asia/Kolkata Asia/Delhi +Link Asia/Kolkata Asia/Mumbai +Link Asia/Shanghai Asia/Guangzhou +Link Asia/Shanghai Asia/Beijing +Link Asia/Tokyo Asia/Osaka +Link Asia/Shanghai Asia/Shenzhen +Link Asia/Shanghai Asia/Tianjin +Link Asia/Chongqing Asia/Chengdu +Link America/Sao_Paulo America/Rio_de_Janeiro +Link Asia/Karachi Asia/Lahore +Link Asia/Kolkata Asia/Bangalore +Link Asia/Kolkata Asia/Chennai +Link Asia/Tokyo Asia/Nagoya +Link Asia/Kolkata Asia/Hyderabad +Link Asia/Shanghai Asia/Wuhan +Link Asia/Shanghai Asia/Dongguan +Link Asia/Ho_Chi_Minh Asia/Hanoi +Link Africa/Lagos Africa/Onitsha +Link Asia/Kolkata Asia/Ahmedabad +Link America/New_York America/Washington,_D.C. +Link Asia/Chongqing Asia/Xi'an +Link America/New_York America/Boston +Link Asia/Shanghai Asia/Zhengzhou +Link Asia/Shanghai Asia/Shenyang +Link Asia/Shanghai Asia/Hangzhou +Link Europe/Berlin Europe/Dusseldorf +Link America/Chicago America/Dallas +Link Asia/Shanghai Asia/Quanzhou +Link Asia/Kolkata Asia/Surat +Link America/Chicago America/Houston +Link Asia/Kolkata Asia/Pune +Link Asia/Shanghai Asia/Nanjing +Link America/Los_Angeles America/San_Francisco \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 0419167..aa142ec 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -BeautifulSoup +beautifulsoup4 click geopy tzwhere diff --git a/utils/compile_tzlinks.py b/utils/compile_tzlinks.py index 7bc3869..4c1507e 100755 --- a/utils/compile_tzlinks.py +++ b/utils/compile_tzlinks.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ Create tz database links for major metropolian areas that don't exist in the IANA db eV Quirk @@ -6,44 +6,46 @@ import unicodedata -from BeautifulSoup import BeautifulSoup +from bs4 import BeautifulSoup from geopy.geocoders import Nominatim from tzwhere import tzwhere def main(): - geocoder = Nominatim() + geocoder = Nominatim(user_agent="utz", timeout=30) tz = tzwhere.tzwhere() links = [] - with open('vendor/wikipedia/majormetros.html') as f: - soup = BeautifulSoup(f) - table = soup.find('table', {'class': "sortable wikitable"}) + with open('vendor/wikipedia/majorcities.html') as f: + soup = BeautifulSoup(f, features="html.parser") + table = soup.find( + 'table', {'class': "sortable wikitable mw-datatable"}) for row in table.findAll('tr'): columns = row.findAll('td') if columns: - metro = columns[1].find('a').text - country = columns[2].find('a').text - location = geocoder.geocode('%s, %s' % (metro, country)) - if not location: # try just searching for just the metro - location = geocoder.geocode('%s' % metro) + city = columns[0].find('a').text + country = columns[1].findAll('a')[1].text + location = geocoder.geocode(f"{city}, {country}") + if not location: # try just searching for just the city + location = geocoder.geocode(city) if location: zone = tz.tzNameAt(location.latitude, location.longitude) if zone: - metro = unicodedata.normalize('NFD', metro).encode('ascii', 'ignore') - metro = metro.replace(' ', '_') - if zone.split('/')[-1] not in metro: + city = unicodedata.normalize('NFD', city).encode( + 'ascii', 'ignore').decode('ascii') + city = city.replace(' ', '_') + if zone.split('/')[-1] not in city: alias = zone.split('/')[:-1] - alias.append(metro) + alias.append(city) links.append(('Link', zone, '/'.join(alias))) else: - print "%s, %s already present as %s" % (metro, country, zone) + print(f"{city}, {country} already present as {zone}") else: - print "couldn't find zone for: %s, %s" % (metro, country) + print(f"couldn't find zone for: {city}, {country}") else: - print "couldn't find location for: %s, %s" % (metro, country) + print(f"couldn't find location for: {city}, {country}") - with open('majormetros', 'w') as f: + with open('majorcities', 'w') as f: f.write('\n'.join(['\t'.join(entry) for entry in links])) diff --git a/utils/compile_whitelist.py b/utils/compile_whitelist.py index d3d68da..945efc8 100755 --- a/utils/compile_whitelist.py +++ b/utils/compile_whitelist.py @@ -13,7 +13,7 @@ def main(): tree = ElementTree.parse('vendor/android/timezones.xml') zones.update([child.attrib['id'] for child in tree.getroot()]) - with open('majormetros') as f: + with open('majorcities') as f: for line in f: zones.add(line.split('\t')[1].strip()) zones.add(line.split('\t')[2].strip()) diff --git a/utils/example_strip_historical.py b/utils/example_strip_historical.py index b002c56..689771b 100755 --- a/utils/example_strip_historical.py +++ b/utils/example_strip_historical.py @@ -16,7 +16,7 @@ @click.command(context_settings=CONTEXT_SETTINGS) -@click.option('--dir', '-d', default=os.environ.get('TZ_DATA', 'tzdata'), help='Path to tzdata directory.') +@click.option('--dir', '-d', default=os.environ.get('TZ_DATA', 'vendor/tzdata'), help='Path to tzdata directory.') @click.option('--build', '-b', default=os.environ.get('TZ_BUILD', 'build'), help='Path to build directory.') def process(dir, build): """Sample script to strip historical timezones and rules""" diff --git a/utils/generate_zones.py b/utils/generate_zones.py index 430d5c1..ff625f0 100755 --- a/utils/generate_zones.py +++ b/utils/generate_zones.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ Micro timezone generator eV Quirk @@ -7,6 +7,7 @@ import click import os +from typing import List from utz import TimeZoneDatabase DEFAULT_REGIONS = "africa,asia,australasia,backward,europe,northamerica,pacificnew,southamerica" @@ -14,6 +15,7 @@ H_NAME = 'zones.h' C_NAME = 'zones.c' + @click.command(context_settings=CONTEXT_SETTINGS) @click.option('--dir', '-d', default=os.environ.get('UTZ_DATA_DIR', 'tzdata'), help='Path to tzdata dir.') @click.option('--region', '-r', default=os.environ.get('UTZ_REGIONS', DEFAULT_REGIONS).split(','), @@ -23,7 +25,7 @@ @click.option('--whitelist', '-w', default=os.environ.get('UTZ_WHITELIST', 'whitelist.txt'), help='Zone whitelist.') -def process(dir, region, include, whitelist): +def process(dir: str, region: List[str], include: List[str], whitelist: str): db = TimeZoneDatabase() for r in region: @@ -37,7 +39,7 @@ def process(dir, region, include, whitelist): db.strip_historical() - included_zones = [] + included_zones: List[str] = [] if whitelist: with open(whitelist) as f: for zone in f: diff --git a/utils/utz.py b/utils/utz.py index 6256650..3b9f5e9 100644 --- a/utils/utz.py +++ b/utils/utz.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ Library for parsing IANA timezone files and performing transformations @@ -8,15 +8,16 @@ from collections import OrderedDict from datetime import date from functools import total_ordering -from sets import Set +from typing import List, Tuple, Dict CURRENT_YEAR = date.today().year MAX_FMT_LEN = 5 -TZ_TYPES = ['Rule', 'Zone', 'Link'] +TZ_TYPES: List[str] = ['Rule', 'Zone', 'Link'] -DAY_OF_WEEK = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] -MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] +DAY_OF_WEEK: List[str] = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] +MONTHS: List[str] = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] class Entry(object): @@ -29,7 +30,8 @@ def __init__(self, *args, **kwargs): self.values = [None] * self.num_columns if args or kwargs: self._load(*args, **kwargs) - self._src = self.dumps(clazz=False) # default "source" in cases we dont use self.load + # default "source" in cases we dont use self.load + self._src = self.dumps(clazz=False) def __getattr__(self, name): return self.values[self.column_names.index(name)] @@ -60,7 +62,7 @@ def dumps(self, clazz=True): return tmp @classmethod - def loads(cls, string): + def loads(cls, string: str): new = cls() split_line = string.split(None, new.num_columns-1) new._load(*split_line) @@ -68,7 +70,7 @@ def loads(cls, string): return new -def parse_h_m(time): +def parse_h_m(time: str) -> Tuple[str, int, int]: z, h, m = ('local', 0, 0) if time.endswith('u'): z = 'utc' @@ -78,9 +80,7 @@ def parse_h_m(time): time = time[:len(time)-2] if ':' in time: - h, m = time.split(':') - h = int(h) - m = int(m) + h, m = [int(s) for s in time.split(':')] else: h = int(time) return z, h, m @@ -91,7 +91,7 @@ class Rule(Entry): column_names = ('name', '_from', 'to', 'type', '_in', 'on', 'at', 'save', 'letter',) - def pack(self): + def pack(self) -> str: """ Pack rule into micro timezone rule format, only works after stripping historical zones / rules """ _from = int(self._from) - 2000 if _from < 0: @@ -104,19 +104,21 @@ def pack(self): else: to = int(self.to) - 2000 - on_u = 0 - on_d = 0 + in_month = MONTHS.index(self._in)+1 + + on_dow = 0 + on_dom = 0 if '>=' in self.on: - on_u, on_d = self.on.split('>=') - on_d = int(on_d) + on_dow, on_dom = self.on.split('>=') + on_dom = int(on_dom) elif 'last' in self.on: - on_u = self.on[4:] + on_dow = self.on[4:] else: - on_d = int(self.on) + on_dom = int(self.on) - if not isinstance(on_u, int): - on_u = DAY_OF_WEEK.index(on_u) + 1 + if not isinstance(on_dow, int): + on_dow = DAY_OF_WEEK.index(on_dow) + 1 _, off_H, _ = parse_h_m(self.save) @@ -126,59 +128,52 @@ def pack(self): elif at_z == 'standard': at_z = 1 elif at_z == 'local': # we convert all rules specified in local time to standard time - if off_H == 0: - if at_H == 0: # fixup if we would go negative - if on_u != 0 and on_d != 0: - on_u = 1 + ((7 + (on_u - 1) - 1) % 7) - on_d = on_d - 1 - assert(on_d > 0) - at_H = 23 - elif on_u == 0: - on_d = on_d - 1 - assert(on_d > 0) - at_H = 23 - elif on_d == 0: - # the three rule groups that hit this condition are Mongol, Lebanon, and Syria - - # they rely on lastDOW (e.g. lastSun, unfortunately there - # isn't an easy way to specify lastSun-1 ) as far as I can tell - - # selfishly I'm going to take the hit of being 1 hour off on these 3 zones :/ - pass - else: - at_H = at_H - 1 - + on_dow, on_dom, at_H, off_H = w_to_s( + on_dow, on_dom, at_H, off_H) at_z = 1 - - l = 0 - if self.letter == 'S': - l = 1 - elif self.letter == 'D': - l = 2 + l = 2 if self.letter == 'D' else 1 if self.letter == 'S' else 0 # see utz.h for struct definitions - return "{%3d, %3d, %d, %2d, %2d, %2d, %d, %d, %2d, %d}, // %s" % ( - _from, # years since 2000 - to, # years since 2000 - on_u, # day of week (mon=1) unless 0, then assume format is "dayOfMonth" - on_d, # day of month unless 0, then assume format is "last dayOfWeek" - at_z, # time of day, timezone (UTC / LOCAL) - at_H, # time of day, hours - at_M / 15, # time of day, minutes, in 15 minute increments - l, # (-, S, D) - MONTHS.index(self._in)+1, # month - off_H, # offset in hours - self._src, - ) + return f"{{{_from:3}, {to:3}, {on_dow}, {on_dom:2}, {at_z:2}, {at_H:2}, {int(at_M/15)}, {l}, {in_month:2}, {off_H}}}, // {self._src}" + + +def w_to_s(on_dow, on_dom, at_H, off_H) -> Tuple[int, int, int, int]: + """ Converts a rule with a local (wall) time to standard time """ + + if off_H == 0: + # Rule is for going back to standard time, which means it's currently on savings time. + # Change back to standard, which means moving an hour back + if at_H == 0: + # if at_H is 0, going back to std time means going back to the previous day + if on_dow != 0 and on_dom != 0: # rule specifies day of week and day of month, ex Sun>=1 + on_dow = on_dow - 1 if on_dow - 1 > 0 else 7 + on_dom = on_dom - 1 + assert(on_dom > 0) + at_H = 23 + elif on_dow == 0: # format is day of month, ex 21 + on_dom = on_dom - 1 + assert(on_dom > 0) + at_H = 23 + elif on_dom == 0: # format is day of week, ex: lastSun + # the three rule groups that hit this condition are Mongol, Lebanon, and Syria + + # they rely on lastDOW (e.g. lastSun, unfortunately there + # isn't an easy way to specify lastSun-1 ) as far as I can tell + + # selfishly I'm going to take the hit of being 1 hour off on these 3 zones :/ + pass + else: # same day, just go back an hour to std time + at_H = at_H - 1 + return (on_dow, on_dom, at_H, off_H) @total_ordering class Zone(Entry): - # Zone NAME GMTOFF RULES FORMAT [UNTIL] - column_names = ('name', 'gmtoff', 'rules', 'format', 'until',) + # Zone NAME STDOFF RULES FORMAT [UNTIL] + column_names = ('name', 'stdoff', 'rules', 'format', 'until',) opt_columns = ('until',) - def __eq__(self, other): + def __eq__(self, other) -> bool: return self.name == other.name def __lt__(self, other): @@ -186,26 +181,26 @@ def __lt__(self, other): def pack(self, rule_groups, rule_group_starts, formatters): if self.until is not None: - print self # FIXME warnings - - _, h, m = parse_h_m(self.gmtoff) + print(self) # FIXME warnings + _, h, m = parse_h_m(self.stdoff) + if (h < 0): + m = -m #fmt = self.format - #if '+' in fmt or '-' in fmt: - #fmt = '-' # we will assume there is no abrev and generate from offset - #if '/' in fmt and 'GMT' in fmt: - #fmt = fmt[fmt.index('/'):] # assume starts with / means GMT/ + # if '+' in fmt or '-' in fmt: + # fmt = '-' # we will assume there is no abrev and generate from offset + # if '/' in fmt and 'GMT' in fmt: + # fmt = fmt[fmt.index('/'):] # assume starts with / means GMT/ fmt = 0 if self.format in formatters: fmt = formatters[self.format]['start'] - #fmt_a = [] - #for i in range(MAX_FMT_LEN): - #if len(fmt) > i: - #fmt_a.append("%4s" % ("'" + fmt[i] + "'")) - #else: - #fmt_a.append("%4s" % "'\\0'") + # for i in range(MAX_FMT_LEN): + # if len(fmt) > i: + # fmt_a.append("%4s" % ("'" + fmt[i] + "'")) + # else: + # fmt_a.append("%4s" % "'\\0'") rule_start = 0 num_rule = 0 @@ -213,7 +208,7 @@ def pack(self, rule_groups, rule_group_starts, formatters): rule_start = rule_group_starts[self.rules] num_rule = len(rule_groups[self.rules]) - return "{%3d, %3d, %3d, %3d}," % ((4 * h) + (m / 15), rule_start, num_rule, fmt) + return f"{{{(4 * h) + (m / 15):3.0f}, {rule_start:3}, {num_rule:3}, {fmt:3}}}," class Link(Entry): @@ -223,11 +218,13 @@ class Link(Entry): class TimeZoneDatabase(object): def __init__(self): - self.rules = [] - self.zones = [] - self.links = [] + self.rules: List[Rule] = [] + self.zones: List[Zone] = [] + self.links: List[Link] = [] def load(self, f): + """ Reads Rules, Zones, and Links from tz data files into python objects """ + for line in f: try: line = line[:line.index('#')] @@ -252,7 +249,9 @@ def load(self, f): tmp.extend(line.split(None, len(Zone.column_names)-1)) self.zones.append(Zone(*tmp)) - def dump(self, f): + def dump(self, f) -> None: + """ Serializes the Rules, Zones, and Links and writes them to a file """ + for rule in self.rules: f.write(rule.dumps() + '\n') for zone in self.zones: @@ -260,9 +259,10 @@ def dump(self, f): for link in self.links: f.write(link.dumps() + '\n') - def strip_historical(self): + def strip_historical(self) -> None: """ Strip out historical rules and zones """ - rule_group_names = Set() + + rule_group_names = set() filtered_rules = [] for rule in self.rules: @@ -285,10 +285,10 @@ def strip_historical(self): filtered_zones.append(zone) self.zones = filtered_zones - def rule_groups(self): - """ Groups rules by name, also prune orphaned rules""" + def rule_groups(self) -> Dict[str, List[Rule]]: + """ Groups rules by name, also prune orphaned rules """ - rule_groups = {} + rule_groups: Dict[str, List[Rule]] = {} for rule in self.rules: if rule.name in rule_groups: rule_groups[rule.name].append(rule) @@ -302,15 +302,15 @@ def rule_groups(self): del rule_groups[group] return rule_groups - def pack(self, h_filename, included_aliases=None): - whitelisted_zones = [] + def pack(self, h_filename: str, included_aliases: List[str] = []) -> Tuple[str, str]: + whitelisted_zones: List[str] = [] for alias in included_aliases: for link in self.links: if link.to == alias or link._from == alias: whitelisted_zones.append(link._from) whitelisted_rules = [] - zones = [] + zones: List[Zone] = [] for zone in self.zones: if zone.name in whitelisted_zones: zones.append(zone) @@ -324,20 +324,21 @@ def pack(self, h_filename, included_aliases=None): rules.append(ruleset) self.rules = rules - h_filename = h_filename.upper().replace('.', '_') - h_buf = ['#ifndef _%s' % h_filename, '#define _%s' % h_filename, ''] + h_guard = '_' + h_filename.upper().replace('.', '_') + h_buf = [f'#ifndef {h_guard}', f'#define {h_guard}', ''] c_buf = ['#include "utz.h"', ''] rule_groups = self.rule_groups() rule_group_starts = self._pack_rules(rule_groups, c_buf, h_buf) c_buf.append('') - zone_indexes = self._pack_zones(rule_groups, rule_group_starts, c_buf, h_buf) + zone_indexes = self._pack_zones( + rule_groups, rule_group_starts, c_buf, h_buf) c_buf.append('') self._pack_links(zone_indexes, c_buf, h_buf, included_aliases) c_buf.append('') - h_buf.append('#endif /* _%s */' % h_filename) + h_buf.append(f'#endif /* {h_guard} */') return ('\n'.join(c_buf), '\n'.join(h_buf)) - def _pack_rules(self, rule_groups, c_buf, h_buf): + def _pack_rules(self, rule_groups: Dict[str, List[Rule]], c_buf: List[str], h_buf: List[str]): c_buf.append('PLACEHOLDER') group_idx = {} idx = 0 @@ -347,16 +348,17 @@ def _pack_rules(self, rule_groups, c_buf, h_buf): for rule in sorted(group, key=lambda x: MONTHS.index(x._in)): c_buf.append(rule.pack()) idx = idx + 1 - c_buf[c_buf.index('PLACEHOLDER')] = 'const urule_packed_t zone_rules[%d] = {' % idx + c_buf[c_buf.index('PLACEHOLDER') + ] = f'const urule_packed_t zone_rules[{idx}] = {{' c_buf.append('};') - h_buf.append('const urule_packed_t zone_rules[%d];' % idx) + h_buf.append(f'const urule_packed_t zone_rules[{idx}];') return group_idx def _pack_zones(self, rule_groups, rule_group_starts, c_buf, h_buf): packed_zones = OrderedDict() packed_formatters = OrderedDict() - zone_indexes = {} + zone_indexes: Dict[str, int] = {} for zone in sorted(self.zones): fmt = zone.format @@ -370,36 +372,41 @@ def _pack_zones(self, rule_groups, rule_group_starts, c_buf, h_buf): packed_formatters[orig_fmt]['start'] = total_char if '%' in packed_fmt['fmt']: packed_fmt['fmt'] = packed_fmt['fmt'] % '%c' - c_buf.append("'%s','\\0'," % "','".join([c for c in packed_fmt['fmt']])) + c_buf.append("'%s','\\0'," % "','".join( + [c for c in packed_fmt['fmt']])) total_char += len(packed_fmt['fmt']) + 1 if len(packed_fmt['fmt']) > max_char: max_char = len(packed_fmt['fmt']) c_buf.append('};') c_buf.append('') - c_buf[c_buf.index('PLACEHOLDER')] = 'const char zone_abrevs[%d] = {' % total_char - h_buf.extend(['const char zone_abrevs[%d];' % total_char, '']) - h_buf.extend(['#define MAX_ABREV_FORMATTER_LEN %d' % max_char, '']) + c_buf[c_buf.index('PLACEHOLDER') + ] = f'const char zone_abrevs[{total_char}] = {{' + h_buf.extend( + [f'const char zone_abrevs[{total_char}];', '']) + h_buf.extend([f'#define MAX_ABREV_FORMATTER_LEN {max_char}', '']) for zone in sorted(self.zones): - packed_zone = zone.pack(rule_groups, rule_group_starts, packed_formatters) + packed_zone = zone.pack( + rule_groups, rule_group_starts, packed_formatters) if packed_zone not in packed_zones: - packed_zones[packed_zone] = [zone] - else: - packed_zones[packed_zone].append(zone) - zone_indexes[zone.name] = packed_zones.keys().index(packed_zone) + packed_zones[packed_zone] = [] + packed_zones[packed_zone].append(zone) + zone_indexes[zone.name] = list(packed_zones).index(packed_zone) - c_buf.append('const uzone_packed_t zone_defns[%d] = {' % len(packed_zones)) + c_buf.append( + f'const uzone_packed_t zone_defns[{len(packed_zones)}] = {{') for packed_zone, srcs in packed_zones.items(): for src_zone in srcs: c_buf.append('// ' + src_zone._src) c_buf.append(packed_zone) c_buf.append('};') - h_buf.append('const uzone_packed_t zone_defns[%d];' % len(packed_zones)) + h_buf.append( + f'const uzone_packed_t zone_defns[{len(packed_zones)}];') return zone_indexes - def _pack_links(self, zone_indexes, c_buf, h_buf, included_aliases=None): + def _pack_links(self, zone_indexes, c_buf, h_buf, included_aliases=[]): for link in self.links: if link._from in zone_indexes: zone_indexes[link.to] = zone_indexes[link._from] @@ -424,7 +431,8 @@ def _pack_links(self, zone_indexes, c_buf, h_buf, included_aliases=None): name = name.replace("-", '') name = name.replace(".", '') name = name.replace(",", '') - h_buf.append(("#define UTZ_" + name.upper() + ' '*(max_len+4-len(name)) + '&zone_defns[%3d]') % index) + h_buf.append(("#define UTZ_" + name.upper() + ' ' * + (max_len+4-len(name)) + f'&zone_defns[{index:3}]')) name = orig_name.replace('_', ' ') for c in name: if c == "'": @@ -435,8 +443,11 @@ def _pack_links(self, zone_indexes, c_buf, h_buf, included_aliases=None): total_char += len(char) + 1 if len(char) > max_char: max_char = len(char) - c_buf.append(("%" + str(max_len*5) + "s, %3d, // %s") % ( "'%s'" % "','".join(char), index, name)) - c_buf[c_buf.index('PLACEHOLDER')] = 'const unsigned char zone_names[%d] = {' % total_char + c_buf.append(("%" + str(max_len*5) + "s, %3d, // %s") % + ("'%s'" % "','".join(char), index, name)) + c_buf[c_buf.index( + 'PLACEHOLDER')] = f'const unsigned char zone_names[{total_char}] = {{' c_buf.append('};') - h_buf.extend(['', '#define NUM_ZONE_NAMES %d' % len(aliases), '#define MAX_ZONE_NAME_LEN %d' % max_char, '']) - h_buf.append('const unsigned char zone_names[%d];' % total_char) + h_buf.extend( + ['', f'#define NUM_ZONE_NAMES {len(aliases)}', f'#define MAX_ZONE_NAME_LEN {max_char}', '']) + h_buf.append(f'const unsigned char zone_names[{total_char}];') diff --git a/utz.c b/utz.c index c71fecb..f19f5ad 100644 --- a/utz.c +++ b/utz.c @@ -87,7 +87,7 @@ uint8_t dayofweek(uint8_t y, uint8_t m, uint8_t d) { uint8_t is_leap_year(uint8_t y) { #if UYEAR_OFFSET == 2000 - if (y & 0x03 && y != 100 || y != 200) { + if (0 == (y & 0x03) && y != 100 && y != 200) { #else if ((((UYEAR_TO_YEAR(y) % 4) == 0) && ((UYEAR_TO_YEAR(y) % 100) != 0)) || ((UYEAR_TO_YEAR(y) % 400) == 0)) { #endif @@ -120,9 +120,6 @@ int16_t udatetime_cmp(udatetime_t* dt1, udatetime_t* dt2) { return 0; } -int32_t udatetime_unix(udatetime_t* dt) { -} - void unpack_rule(const urule_packed_t* rule_in, uint8_t cur_year, urule_t* rule_out) { static const char letter_lut[3] = {'-', 'S', 'D'}; @@ -233,7 +230,8 @@ void unpack_zone(const uzone_packed_t* zone_in, const char* name, uzone_t* zone_ zone_out->src = zone_in; zone_out->name = name; - zone_out->offset.minutes = (zone_in->offset_inc_minutes % (60 / OFFSET_INCREMENT)) * OFFSET_INCREMENT; + int8_t abs_offset_inc_min = zone_in->offset_inc_minutes >= 0 ? zone_in->offset_inc_minutes : -zone_in->offset_inc_minutes; + zone_out->offset.minutes = (abs_offset_inc_min % (60 / OFFSET_INCREMENT)) * OFFSET_INCREMENT; zone_out->offset.hours = zone_in->offset_inc_minutes / (60 / OFFSET_INCREMENT); zone_out->rules = &(zone_rules[zone_in->rules_idx]); zone_out->rules_len = zone_in->rules_len; diff --git a/vendor/README.md b/vendor/README.md index a8a38c7..cb91782 100644 --- a/vendor/README.md +++ b/vendor/README.md @@ -6,8 +6,8 @@ ## android -[Android default timezones list](https://android.googlesource.com/platform/packages/apps/Settings/+/lollipop-release/res/xml/timezones.xml) +[Android default timezones list](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android10-release/packages/SettingsLib/res/xml/timezones.xml) ## wikipedia -[Wikipedia: List of metropolitan areas by population](https://en.wikipedia.org/wiki/List_of_metropolitan_areas_by_population) +[Wikipedia: List of largest cities](https://en.wikipedia.org/wiki/List_of_largest_cities) diff --git a/vendor/android/timezones.xml b/vendor/android/timezones.xml index 7c30de8..6a8d780 100644 --- a/vendor/android/timezones.xml +++ b/vendor/android/timezones.xml @@ -1,5 +1,4 @@ - @@ -20,23 +19,27 @@ + - + + + + @@ -56,11 +59,11 @@ - + - + - + @@ -81,6 +84,8 @@ + + diff --git a/vendor/tzdata/CONTRIBUTING b/vendor/tzdata/CONTRIBUTING index 22addd2..01336fc 100644 --- a/vendor/tzdata/CONTRIBUTING +++ b/vendor/tzdata/CONTRIBUTING @@ -5,21 +5,31 @@ 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. +to tz@iana.org for use in the future. In your email, please give +reliable sources that reviewers can check. + +----- + +Developers can contribute technical changes to the source code and +data as follows. 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 changes, please read the Theory file and browse -the mailing list archives for -examples of patches that tend to work well. Ideally, additions to -data should contain commentary citing reliable sources as -justification. +For more-elaborate or possibly-controversial changes, +such as renaming, adding or removing zones, please read + or the file +theory.html. It is also good to browse the mailing list archives + 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. Please submit changes against either the latest release in - or the master branch of the development -repository. If you use Git the following workflow may be helpful: + or the master branch of the development +repository. The latter is preferred. If you use Git the following +workflow may be helpful: * Copy the development repository. @@ -36,6 +46,12 @@ repository. If you use Git the following workflow may be helpful: 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. @@ -61,6 +77,9 @@ repository. If you use Git the following workflow may be helpful: git send-email master + For an archived example of such an email, see + . + * Start anew by getting current with the master branch again (the second step above). diff --git a/vendor/tzdata/LICENSE b/vendor/tzdata/LICENSE index 148eb23..8ba4399 100644 --- a/vendor/tzdata/LICENSE +++ b/vendor/tzdata/LICENSE @@ -1,4 +1,5 @@ -With a few exceptions, all files in the tz code and data (including -this one) are in the public domain. The exceptions are date.c, -newstrftime.3, and strftime.c, which contain material derived from BSD -and which use the BSD 3-clause license. +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. diff --git a/vendor/tzdata/Makefile b/vendor/tzdata/Makefile index 1b714a8..fec0a4f 100644 --- a/vendor/tzdata/Makefile +++ b/vendor/tzdata/Makefile @@ -1,3 +1,5 @@ +# Make and install tzdb code and data. + # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -10,9 +12,21 @@ VERSION= unknown # Email address for bug reports. BUGEMAIL= tz@iana.org -# Change the line below for your time zone (after finding the zone you want in -# the time zone files, or adding it to a time zone file). -# Alternately, if you discover you've got the wrong time zone, you can just +# DATAFORM selects the data format. +# Available formats represent essentially the same data, albeit +# possibly with minor discrepancies that users are not likely to notice. +# To get new features and the best data right away, use: +# DATAFORM= vanguard +# To wait a while before using new features, to give downstream users +# time to upgrade zic (the default), use: +# DATAFORM= main +# To wait even longer for new features, use: +# DATAFORM= rearguard +DATAFORM= main + +# Change the line below for your timezone (after finding the one you want in +# one of the $(TDATA) source files, or adding it to a source file). +# Alternatively, if you discover you've got the wrong timezone, you can just # zic -l rightzone # to correct things. # Use the command @@ -21,62 +35,106 @@ BUGEMAIL= tz@iana.org LOCALTIME= GMT -# If you want something other than Eastern United States time as a template -# for handling POSIX-style time zone environment variables, -# change the line below (after finding the zone you want in the -# time zone files, or adding it to a time zone file). -# (When a POSIX-style environment variable is handled, the rules in the -# template file are used to determine "spring forward" and "fall back" days and +# The POSIXRULES macro controls interpretation of nonstandard and obsolete +# POSIX-like TZ settings like TZ='EET-2EEST' that lack DST transition rules. +# In the reference implementation, if you want something other than Eastern +# United States time as a template for handling these settings, you can +# change the line below (after finding the timezone you want in the +# one of the $(TDATA) source files, or adding it to a source file). +# A setting like TZ='EET-2EEST' is supposed to use the rules in the +# template file to determine "spring forward" and "fall back" days and # times; the environment variable itself specifies UT offsets of standard and -# summer time.) -# Alternately, if you discover you've got the wrong time zone, you can just +# daylight saving time. +# Alternatively, if you discover you've got the wrong timezone, you can just # zic -p rightzone # to correct things. # Use the command # make zonenames # to get a list of the values you can use for POSIXRULES. -# If you want POSIX compatibility, use "America/New_York". +# +# If POSIXRULES is empty, no template is installed; this is the intended +# future default for POSIXRULES. +# +# Nonempty POSIXRULES is obsolete and should not be relied on, because: +# * It does not work correctly in popular implementations such as GNU/Linux. +# * It does not work in the tzdb implementation for timestamps after 2037. +# * It is incompatible with 'zic -b slim' if POSIXRULES specifies transitions +# at standard time or UT rather than at local time. +# In short, software should avoid ruleless settings like TZ='EET-2EEST' +# and so should not depend on the value of POSIXRULES. POSIXRULES= America/New_York # Also see TZDEFRULESTRING below, which takes effect only # if the time zone files cannot be accessed. -# Everything gets put in subdirectories of. . . -TOPDIR= /usr/local - -# "Compiled" time zone information is placed in the "TZDIR" directory +# Installation locations. +# +# The defaults are suitable for Debian, except that if REDO is +# posix_right or right_posix then files that Debian puts under +# /usr/share/zoneinfo/posix and /usr/share/zoneinfo/right are instead +# put under /usr/share/zoneinfo-posix and /usr/share/zoneinfo-leaps, +# respectively. Problems with the Debian approach are discussed in +# the commentary for the right_posix rule (below). + +# Destination directory, which can be used for staging. +# 'make DESTDIR=/stage install' installs under /stage (e.g., to +# /stage/etc/localtime instead of to /etc/localtime). Files under +# /stage are not intended to work as-is, but can be copied by hand to +# the root directory later. If DESTDIR is empty, 'make install' does +# not stage, but installs directly into production locations. +DESTDIR = + +# Everything is installed into subdirectories of TOPDIR, and used there. +# TOPDIR should be empty (meaning the root directory), +# or a directory name that does not end in "/". +# TOPDIR should be empty or an absolute name unless you're just testing. +TOPDIR = + +# The default local timezone is taken from the file TZDEFAULT. +TZDEFAULT = $(TOPDIR)/etc/localtime + +# The subdirectory containing installed program and data files, and +# likewise for installed files that can be shared among architectures. +# These should be relative file names. +USRDIR = usr +USRSHAREDIR = $(USRDIR)/share + +# "Compiled" timezone information is placed in the "TZDIR" directory # (and subdirectories). -# Use an absolute path name for TZDIR unless you're just testing the software. - +# TZDIR_BASENAME should not contain "/" and should not be ".", ".." or empty. TZDIR_BASENAME= zoneinfo -TZDIR= $(TOPDIR)/etc/$(TZDIR_BASENAME) - -# Types to try, as an alternative to time_t. int64_t should be first. -TIME_T_ALTERNATIVES= int64_t int32_t uint32_t uint64_t +TZDIR = $(TOPDIR)/$(USRSHAREDIR)/$(TZDIR_BASENAME) -# The "tzselect", "zic", and "zdump" commands get installed in. . . +# The "tzselect" and (if you do "make INSTALL") "date" commands go in: +BINDIR = $(TOPDIR)/$(USRDIR)/bin -ETCDIR= $(TOPDIR)/etc +# The "zdump" command goes in: +ZDUMPDIR = $(BINDIR) -# If you "make INSTALL", the "date" command gets installed in. . . - -BINDIR= $(TOPDIR)/bin +# The "zic" command goes in: +ZICDIR = $(TOPDIR)/$(USRDIR)/sbin # Manual pages go in subdirectories of. . . - -MANDIR= $(TOPDIR)/man +MANDIR = $(TOPDIR)/$(USRSHAREDIR)/man # Library functions are put in an archive in LIBDIR. +LIBDIR = $(TOPDIR)/$(USRDIR)/lib -LIBDIR= $(TOPDIR)/lib -# If you always want time values interpreted as "seconds since the epoch -# (not counting leap seconds)", use +# Types to try, as an alternative to time_t. +TIME_T_ALTERNATIVES = $(TIME_T_ALTERNATIVES_HEAD) $(TIME_T_ALTERNATIVES_TAIL) +TIME_T_ALTERNATIVES_HEAD = int64_t +TIME_T_ALTERNATIVES_TAIL = int32_t uint32_t uint64_t + +# What kind of TZif data files to generate. (TZif is the binary time +# zone data format that zic generates; see Internet RFC 8536.) +# If you want only POSIX time, with time values interpreted as +# seconds since the epoch (not counting leap seconds), use # REDO= posix_only -# below. If you always want right time values interpreted as "seconds since -# the epoch" (counting leap seconds)", use +# below. If you want only "right" time, with values interpreted +# as seconds since the epoch (counting leap seconds), use # REDO= right_only # below. If you want both sets of data available, with leap seconds not # counted normally, use @@ -85,10 +143,34 @@ LIBDIR= $(TOPDIR)/lib # normally, use # REDO= right_posix # below. POSIX mandates that leap seconds not be counted; for compatibility -# with it, use "posix_only" or "posix_right". +# with it, use "posix_only" or "posix_right". Use POSIX time on systems with +# leap smearing; this can work better than unsmeared "right" time with +# applications that are not leap second aware, and is closer to unsmeared +# "right" time than unsmeared POSIX time is (e.g., 0.5 vs 1.0 s max error). REDO= posix_right +# To install data in text form that has all the information of the TZif data, +# (optionally incorporating leap second information), use +# TZDATA_TEXT= tzdata.zi leapseconds +# To install text data without leap second information (e.g., because +# REDO='posix_only'), use +# TZDATA_TEXT= tzdata.zi +# To avoid installing text data, use +# TZDATA_TEXT= + +TZDATA_TEXT= leapseconds tzdata.zi + +# For backward-compatibility links for old zone names, use +# BACKWARD= backward +# If you also want the link US/Pacific-New, even though it is confusing +# and is planned to be removed from the database eventually, use +# BACKWARD= backward pacificnew +# To omit these links, use +# BACKWARD= + +BACKWARD= backward + # If you want out-of-scope and often-wrong data from the file 'backzone', use # PACKRATDATA= backzone # To omit this data, use @@ -96,6 +178,11 @@ REDO= posix_right PACKRATDATA= +# The name of a locale using the UTF-8 encoding, used during self-tests. +# The tests are skipped if the name does not appear to work on this system. + +UTF8_LOCALE= en_US.utf8 + # Since "." may not be in PATH... YEARISTYPE= ./yearistype @@ -103,77 +190,94 @@ YEARISTYPE= ./yearistype # Non-default libraries needed to link. LDLIBS= -# Add the following to the end of the "CFLAGS=" line as needed. -# -DBIG_BANG=-9999999LL if the Big Bang occurred at time -9999999 (see zic.c) +# Add the following to the end of the "CFLAGS=" line as needed to override +# defaults specified in the source code. "-DFOO" is equivalent to "-DFOO=1". +# -DDEPRECATE_TWO_DIGIT_YEARS for optional runtime warnings about strftime +# formats that generate only the last two digits of year numbers +# -DEPOCH_LOCAL if the 'time' function returns local time not UT +# -DEPOCH_OFFSET=N if the 'time' function returns a value N greater +# than what POSIX specifies, assuming local time is UT. +# For example, N is 252460800 on AmigaOS. # -DHAVE_DECL_ASCTIME_R=0 if does not declare asctime_r +# -DHAVE_DECL_ENVIRON if declares 'environ' # -DHAVE_DIRECT_H if mkdir needs (MS-Windows) -# -DHAVE_DOS_FILE_NAMES if file names have drive specifiers etc. (MS-DOS) -# -DHAVE_GETTEXT=1 if 'gettext' works (e.g., GNU/Linux, FreeBSD, Solaris) -# -DHAVE_INCOMPATIBLE_CTIME_R=1 if your system's time.h declares +# -DHAVE_GENERIC=0 if _Generic does not work +# -DHAVE_GETTEXT if 'gettext' works (e.g., GNU/Linux, FreeBSD, Solaris) +# -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares # ctime_r and asctime_r incompatibly with the POSIX standard # (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined). -# -DHAVE_INTTYPES_H=1 if you have a pre-C99 compiler with "inttypes.h" +# -DHAVE_INTTYPES_H if you have a non-C99 compiler with # -DHAVE_LINK=0 if your system lacks a link function # -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function # -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz -# This defaults to 1 if a working localtime_rz seems to be available. # localtime_rz can make zdump significantly faster, but is nonstandard. # -DHAVE_POSIX_DECLS=0 if your system's include files do not declare # functions like 'link' or variables like 'tzname' required by POSIX -# -DHAVE_STDINT_H=1 if you have a pre-C99 compiler with "stdint.h" -# -DHAVE_STRFTIME_L=1 if declares locale_t and strftime_l -# This defaults to 0 if _POSIX_VERSION < 200809, 1 otherwise. +# -DHAVE_SNPRINTF=0 if your system lacks the snprintf function +# -DHAVE_STDBOOL_H if you have a non-C99 compiler with +# -DHAVE_STDINT_H if you have a non-C99 compiler with +# -DHAVE_STRFTIME_L if declares locale_t and strftime_l # -DHAVE_STRDUP=0 if your system lacks the strdup function +# -DHAVE_STRTOLL=0 if your system lacks the strtoll function # -DHAVE_SYMLINK=0 if your system lacks the symlink function -# -DHAVE_SYS_STAT_H=0 if your compiler lacks a "sys/stat.h" -# -DHAVE_SYS_WAIT_H=0 if your compiler lacks a "sys/wait.h" +# -DHAVE_SYS_STAT_H=0 if your compiler lacks a +# -DHAVE_SYS_WAIT_H=0 if your compiler lacks a # -DHAVE_TZSET=0 if your system lacks a tzset function -# -DHAVE_UNISTD_H=0 if your compiler lacks a "unistd.h" (Microsoft C++ 7?) -# -DEPOCH_LOCAL=1 if the 'time' function returns local time not UT -# -DEPOCH_OFFSET=N if the 'time' function returns a value N greater -# than what POSIX specifies, assuming local time is UT. -# For example, N is 252460800 on AmigaOS. -# -DNO_RUN_TIME_WARNINGS_ABOUT_YEAR_2000_PROBLEMS_THANK_YOU=1 -# if you do not want run time warnings about formats that may cause -# year 2000 grief -# -Dssize_t=long on ancient hosts that lack ssize_t -# -DTHREAD_SAFE=1 to make localtime.c thread-safe, as POSIX requires; +# -DHAVE_UNISTD_H=0 if your compiler lacks a +# -Dlocale_t=XXX if your system uses XXX instead of locale_t +# -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers +# with external linkage, e.g., applications cannot define 'localtime'. +# -Dssize_t=long on hosts like MS-Windows that lack ssize_t +# -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has +# security implications and is not recommended for general use +# -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires; # not needed by the main-program tz code, which is single-threaded. # Append other compiler flags as needed, e.g., -pthread on GNU/Linux. # -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t +# This is intended for internal use only; it mangles external names. # -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz" # -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory; # the default is system-supplied, typically "/usr/lib/locale" # -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified # DST transitions if the time zone files cannot be accessed -# -DUNINIT_TRAP=1 if reading uninitialized storage can cause problems +# -DUNINIT_TRAP if reading uninitialized storage can cause problems # other than simply getting garbage data # -DUSE_LTZ=0 to build zdump with the system time zone library # Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below. +# -DZIC_BLOAT_DEFAULT=\"slim\" to default zic's -b option to "slim", and +# similarly for "fat". Fat TZif files work around incompatibilities +# and bugs in some TZif readers, notably readers that mishandle 64-bit +# data in TZif files. Slim TZif files are more efficient and do not +# work around these incompatibilities and bugs. If not given, the +# current default is "fat" but this is intended to change as readers +# requiring fat files often mishandle timestamps after 2037 anyway. # -DZIC_MAX_ABBR_LEN_WO_WARN=3 # (or some other number) to set the maximum time zone abbreviation length # that zic will accept without a warning (the default is 6) # $(GCC_DEBUG_FLAGS) if you are using recent GCC and want lots of checking -GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-common -fstrict-aliasing \ - -Wall -Wextra \ - -Wbad-function-cast -Wcast-align -Wdate-time \ - -Wdeclaration-after-statement \ - -Wdouble-promotion \ - -Wformat=2 -Winit-self -Wjump-misses-init \ - -Wlogical-op -Wmissing-prototypes -Wnested-externs \ - -Wold-style-definition -Woverlength-strings -Wpointer-arith \ - -Wshadow -Wstrict-prototypes -Wsuggest-attribute=const \ - -Wsuggest-attribute=format -Wsuggest-attribute=noreturn \ - -Wsuggest-attribute=pure -Wtrampolines \ - -Wunused -Wwrite-strings \ - -Wno-address -Wno-format-nonliteral -Wno-sign-compare \ - -Wno-type-limits -Wno-unused-parameter -# -# If you want to use System V compatibility code, add -# -DUSG_COMPAT -# to the end of the "CFLAGS=" line. This arrange for "timezone" and "daylight" -# variables to be kept up-to-date by the time conversion functions. Neither -# "timezone" nor "daylight" is described in X3J11's work. +# Select instrumentation via "make GCC_INSTRUMENT='whatever'". +GCC_INSTRUMENT = \ + -fsanitize=undefined -fsanitize-address-use-after-scope \ + -fsanitize-undefined-trap-on-error -fstack-protector +GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ + $(GCC_INSTRUMENT) \ + -Wall -Wextra \ + -Walloc-size-larger-than=100000 -Warray-bounds=2 \ + -Wbad-function-cast -Wcast-align=strict -Wdate-time \ + -Wdeclaration-after-statement -Wdouble-promotion \ + -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \ + -Winit-self -Wjump-misses-init -Wlogical-op \ + -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \ + -Wold-style-definition -Woverlength-strings -Wpointer-arith \ + -Wshadow -Wshift-overflow=2 -Wstrict-prototypes -Wstringop-overflow=4 \ + -Wstringop-truncation -Wsuggest-attribute=cold \ + -Wsuggest-attribute=const -Wsuggest-attribute=format \ + -Wsuggest-attribute=malloc \ + -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \ + -Wtrampolines -Wundef -Wuninitialized -Wunused \ + -Wvariadic-macros -Wvla -Wwrite-strings \ + -Wno-address -Wno-format-nonliteral -Wno-sign-compare \ + -Wno-type-limits -Wno-unused-parameter # # If your system has a "GMT offset" field in its "struct tm"s # (or if you decide to add such a field in your system's "time.h" file), @@ -186,6 +290,31 @@ GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-common -fstrict-aliasing \ # and define NO_TM_ZONE to suppress any guessing. These two fields are not # required by POSIX, but are widely available on GNU/Linux and BSD systems. # +# The next batch of options control support for external variables +# exported by tzcode. In practice these variables are less useful +# than TM_GMTOFF and TM_ZONE. However, most of them are standardized. +# # +# # To omit or support the external variable "tzname", add one of: +# # -DHAVE_TZNAME=0 +# # -DHAVE_TZNAME=1 +# # to the "CFLAGS=" line. "tzname" is required by POSIX 1988 and later. +# # If not defined, the code attempts to guess HAVE_TZNAME from other macros. +# # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause +# # crashes when combined with some platforms' standard libraries, +# # presumably due to memory allocation issues. +# # +# # To omit or support the external variables "timezone" and "daylight", add +# # -DUSG_COMPAT=0 +# # -DUSG_COMPAT=1 +# # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by +# # Unix Systems Group code and are required by POSIX 2008 (with XSI) and later. +# # If not defined, the code attempts to guess USG_COMPAT from other macros. +# # +# # To support the external variable "altzone", add +# # -DALTZONE +# # to the end of the "CFLAGS=" line; although "altzone" appeared in +# # System V Release 3.1 it has not been standardized. +# # If you want functions that were inspired by early versions of X3J11's work, # add # -DSTD_INSPIRED @@ -193,7 +322,7 @@ GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-common -fstrict-aliasing \ # "tzsetwall", "offtime", "timelocal", "timegm", "timeoff", # "posix2time", and "time2posix" to be added to the time conversion library. # "tzsetwall" is like "tzset" except that it arranges for local wall clock -# time (rather than the time specified in the TZ environment variable) +# time (rather than the timezone specified in the TZ environment variable) # to be used. # "offtime" is like "gmtime" except that it accepts a second (long) argument # that gives an offset to add to the time_t when converting it. @@ -216,18 +345,13 @@ GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-common -fstrict-aliasing \ # "posix2time_z" and "time2posix_z" are added as well. # The functions ending in "_z" (or "_rz") are like their unsuffixed # (or suffixed-by-"_r") counterparts, except with an extra first -# argument of opaque type timezone_t that specifies the time zone. +# argument of opaque type timezone_t that specifies the timezone. # "tzalloc" allocates a timezone_t value, and "tzfree" frees it. # # If you want to allocate state structures in localtime, add # -DALL_STATE # to the end of the "CFLAGS=" line. Storage is obtained by calling malloc. # -# If you want an "altzone" variable (a la System V Release 3.1), add -# -DALTZONE -# to the end of the "CFLAGS=" line. -# This variable is not described in X3J11's work. -# # NIST-PCTS:151-2, Version 1.4, (1993-12-03) is a test suite put # out by the National Institute of Standards and Technology # which claims to test C and Posix conformance. If you want to pass PCTS, add @@ -237,8 +361,8 @@ GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-common -fstrict-aliasing \ # If you want strict compliance with XPG4 as of 1994-04-09, add # -DXPG4_1994_04_09 # to the end of the "CFLAGS=" line. This causes "strftime" to always return -# 53 as a week number (rather than 52 or 53) for those days in January that -# before the first Monday in January when a "%V" format is used and January 1 +# 53 as a week number (rather than 52 or 53) for January days before +# January's first Monday when a "%V" format is used and January 1 # falls on a Friday, Saturday, or Sunday. CFLAGS= @@ -258,13 +382,21 @@ LEAPSECONDS= zic= ./zic ZIC= $(zic) $(ZFLAGS) +# To shrink the size of installed TZif files, +# append "-r @N" to omit data before N-seconds-after-the-Epoch. +# You can also append "-b slim" if that is not already the default; +# see ZIC_BLOAT_DEFAULT above. +# See the zic man page for more about -b and -r. ZFLAGS= -# How to use zic to install tz binary files. +# How to use zic to install TZif files. -ZIC_INSTALL= $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) $(LEAPSECONDS) +ZIC_INSTALL= $(ZIC) -d '$(DESTDIR)$(TZDIR)' $(LEAPSECONDS) # The name of a Posix-compliant 'awk' on your system. +# Older 'mawk' versions, such as the 'mawk' in Ubuntu 16.04, might dump core; +# on Ubuntu you can work around this with +# AWK= gawk AWK= awk # The full path name of a Posix-compliant shell, preferably one that supports @@ -275,22 +407,29 @@ AWK= awk # is typically nicer if it works. KSHELL= /bin/bash +# Name of curl , used for HTML validation. +CURL= curl + +# Name of GNU Privacy Guard , used to sign distributions. +GPG= gpg + # The path where SGML DTDs are kept and the catalog file(s) to use when -# validating. The default should work on both Debian and Red Hat. +# validating HTML 4.01. The default should work on both Debian and Red Hat. SGML_TOPDIR= /usr SGML_DTDDIR= $(SGML_TOPDIR)/share/xml/w3c-sgml-lib/schema/dtd SGML_SEARCH_PATH= $(SGML_DTDDIR)/REC-html401-19991224 SGML_CATALOG_FILES= \ $(SGML_TOPDIR)/share/doc/w3-recs/html/www.w3.org/TR/1999/REC-html401-19991224/HTML4.cat:$(SGML_TOPDIR)/share/sgml/html/4.01/HTML4.cat -# The name, arguments and environment of a program to validate your web pages. +# The name, arguments and environment of a program to validate HTML 4.01. # See for a validator, and # for a validation library. +# Set VALIDATE=':' if you do not have such a program. VALIDATE = nsgmls VALIDATE_FLAGS = -s -B -wall -wno-unused-param VALIDATE_ENV = \ - SGML_CATALOG_FILES=$(SGML_CATALOG_FILES) \ - SGML_SEARCH_PATH=$(SGML_SEARCH_PATH) \ + SGML_CATALOG_FILES='$(SGML_CATALOG_FILES)' \ + SGML_SEARCH_PATH='$(SGML_SEARCH_PATH)' \ SP_CHARSET_FIXED=YES \ SP_ENCODING=UTF-8 @@ -312,13 +451,25 @@ SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~' SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3) SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]' +# These characters are Latin-1, and so are likely to be displayable +# even in editors with limited character sets. +UNUSUAL_OK_LATIN_1 = «°±»½¾× +# This IPA symbol is represented in Unicode as the composition of +# U+0075 and U+032F, and U+032F is not considered alphabetic by some +# grep implementations that do not grok composition. +UNUSUAL_OK_IPA = u̯ +# Non-ASCII non-letters that OK_CHAR allows, as these characters are +# useful in commentary. +UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)$(UNUSUAL_OK_IPA) + # OK_CHAR matches any character allowed in the distributed files. -# This is the same as SAFE_CHAR, except that multibyte letters are -# also allowed so that commentary can contain people's names and quote -# non-English sources. For non-letters the sources are limited to -# ASCII renderings for the convenience of maintainers whose text editors -# mishandle UTF-8 by default (e.g., XEmacs 21.4.22). -OK_CHAR= '[][:alpha:]'$(SAFE_CHARSET)'-]' +# This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and +# multibyte letters are also allowed so that commentary can contain a +# few safe symbols and people's names and can quote non-English sources. +# Other non-letters are limited to ASCII renderings for the +# convenience of maintainers using XEmacs 21.5.34, which by default +# mishandles Unicode characters U+0100 and greater. +OK_CHAR= '[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET)'-]' # SAFE_LINE matches a line of safe characters. # SAFE_SHARP_LINE is similar, except any OK character can follow '#'; @@ -344,7 +495,7 @@ GZIPFLAGS= -9n #MAKE= make cc= cc -CC= $(cc) -DTZDIR=\"$(TZDIR)\" +CC= $(cc) -DTZDIR='"$(TZDIR)"' AR= ar @@ -352,7 +503,7 @@ AR= ar RANLIB= : TZCOBJS= zic.o -TZDOBJS= zdump.o localtime.o asctime.o +TZDOBJS= zdump.o localtime.o asctime.o strftime.o DATEOBJS= date.o localtime.o strftime.o asctime.o LIBSRCS= localtime.c asctime.c difftime.c LIBOBJS= localtime.o asctime.o difftime.o @@ -367,33 +518,43 @@ MANTXTS= newctime.3.txt newstrftime.3.txt newtzset.3.txt \ time2posix.3.txt \ tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \ date.1.txt -COMMON= CONTRIBUTING LICENSE Makefile NEWS README Theory version -WEB_PAGES= tz-art.htm tz-how-to.html tz-link.htm +COMMON= calendars CONTRIBUTING LICENSE Makefile \ + NEWS README theory.html version +WEB_PAGES= tz-art.html tz-how-to.html tz-link.html +CHECK_WEB_PAGES=check_theory.html check_tz-art.html \ + check_tz-how-to.html check_tz-link.html DOCS= $(MANS) date.1 $(MANTXTS) $(WEB_PAGES) PRIMARY_YDATA= africa antarctica asia australasia \ europe northamerica southamerica -YDATA= $(PRIMARY_YDATA) pacificnew etcetera backward +YDATA= $(PRIMARY_YDATA) etcetera NDATA= systemv factory -TDATA= $(YDATA) $(NDATA) +TDATA_TO_CHECK= $(YDATA) $(NDATA) backward pacificnew +TDATA= $(YDATA) $(NDATA) $(BACKWARD) ZONETABLES= zone1970.tab zone.tab -TABDATA= iso3166.tab leapseconds $(ZONETABLES) +TABDATA= iso3166.tab $(TZDATA_TEXT) $(ZONETABLES) LEAP_DEPS= leapseconds.awk leap-seconds.list -DATA= $(YDATA) $(NDATA) backzone $(TABDATA) \ - leap-seconds.list yearistype.sh -AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk +TZDATA_ZI_DEPS= ziguard.awk zishrink.awk version $(TDATA) $(PACKRATDATA) +DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA) +DATA= $(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \ + leapseconds yearistype.sh $(ZONETABLES) +AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk \ + ziguard.awk zishrink.awk MISC= $(AWK_SCRIPTS) zoneinfo2tdf.pl TZS_YEAR= 2050 +TZS_CUTOFF_FLAG= -c $(TZS_YEAR) TZS= to$(TZS_YEAR).tzs TZS_NEW= to$(TZS_YEAR)new.tzs TZS_DEPS= $(PRIMARY_YDATA) asctime.c localtime.c \ private.h tzfile.h zdump.c zic.c -ENCHILADA= $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) $(TZS) +# EIGHT_YARDS is just a yard short of the whole ENCHILADA. +EIGHT_YARDS = $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) tzdata.zi +ENCHILADA = $(EIGHT_YARDS) $(TZS) # Consult these files when deciding whether to rebuild the 'version' file. # This list is not the same as the output of 'git ls-files', since # .gitignore is not distributed. VERSION_DEPS= \ - CONTRIBUTING LICENSE Makefile NEWS README Theory \ + calendars CONTRIBUTING LICENSE Makefile NEWS README \ africa antarctica asctime.c asia australasia \ backward backzone \ checklinks.awk checktab.awk \ @@ -402,11 +563,12 @@ VERSION_DEPS= \ leap-seconds.list leapseconds.awk localtime.c \ newctime.3 newstrftime.3 newtzset.3 northamerica \ pacificnew private.h \ - southamerica strftime.c systemv \ - time2posix.3 tz-art.htm tz-how-to.html tz-link.htm \ + southamerica strftime.c systemv theory.html \ + time2posix.3 tz-art.html tz-how-to.html tz-link.html \ tzfile.5 tzfile.h tzselect.8 tzselect.ksh \ workman.sh yearistype.sh \ zdump.8 zdump.c zic.8 zic.c \ + ziguard.awk zishrink.awk \ zone.tab zone1970.tab zoneinfo2tdf.pl # And for the benefit of csh users on systems that assume the user @@ -414,37 +576,62 @@ VERSION_DEPS= \ SHELL= /bin/sh -all: tzselect yearistype zic zdump libtz.a $(TABDATA) +all: tzselect yearistype zic zdump libtz.a $(TABDATA) \ + vanguard.zi main.zi rearguard.zi ALL: all date $(ENCHILADA) install: all $(DATA) $(REDO) $(MANS) - mkdir -p $(DESTDIR)$(ETCDIR) $(DESTDIR)$(TZDIR) \ - $(DESTDIR)$(LIBDIR) \ - $(DESTDIR)$(MANDIR)/man3 $(DESTDIR)$(MANDIR)/man5 \ - $(DESTDIR)$(MANDIR)/man8 - $(ZIC_INSTALL) -l $(LOCALTIME) -p $(POSIXRULES) - cp -f iso3166.tab $(ZONETABLES) $(DESTDIR)$(TZDIR)/. - cp tzselect zic zdump $(DESTDIR)$(ETCDIR)/. - cp libtz.a $(DESTDIR)$(LIBDIR)/. - $(RANLIB) $(DESTDIR)$(LIBDIR)/libtz.a - cp -f newctime.3 newtzset.3 $(DESTDIR)$(MANDIR)/man3/. - cp -f tzfile.5 $(DESTDIR)$(MANDIR)/man5/. - cp -f tzselect.8 zdump.8 zic.8 $(DESTDIR)$(MANDIR)/man8/. + mkdir -p '$(DESTDIR)$(BINDIR)' \ + '$(DESTDIR)$(ZDUMPDIR)' '$(DESTDIR)$(ZICDIR)' \ + '$(DESTDIR)$(LIBDIR)' \ + '$(DESTDIR)$(MANDIR)/man3' '$(DESTDIR)$(MANDIR)/man5' \ + '$(DESTDIR)$(MANDIR)/man8' + $(ZIC_INSTALL) -l $(LOCALTIME) \ + `case '$(POSIXRULES)' in ?*) echo '-p';; esac \ + ` $(POSIXRULES) \ + -t '$(DESTDIR)$(TZDEFAULT)' + cp -f $(TABDATA) '$(DESTDIR)$(TZDIR)/.' + cp tzselect '$(DESTDIR)$(BINDIR)/.' + cp zdump '$(DESTDIR)$(ZDUMPDIR)/.' + cp zic '$(DESTDIR)$(ZICDIR)/.' + cp libtz.a '$(DESTDIR)$(LIBDIR)/.' + $(RANLIB) '$(DESTDIR)$(LIBDIR)/libtz.a' + cp -f newctime.3 newtzset.3 '$(DESTDIR)$(MANDIR)/man3/.' + cp -f tzfile.5 '$(DESTDIR)$(MANDIR)/man5/.' + cp -f tzselect.8 zdump.8 zic.8 '$(DESTDIR)$(MANDIR)/man8/.' INSTALL: ALL install date.1 - mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1 - cp date $(DESTDIR)$(BINDIR)/. - cp -f date.1 $(DESTDIR)$(MANDIR)/man1/. + mkdir -p '$(DESTDIR)$(BINDIR)' '$(DESTDIR)$(MANDIR)/man1' + cp date '$(DESTDIR)$(BINDIR)/.' + cp -f date.1 '$(DESTDIR)$(MANDIR)/man1/.' version: $(VERSION_DEPS) { (type git) >/dev/null 2>&1 && \ V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \ --abbrev=7 --dirty` || \ - V=$(VERSION); } && \ + V='$(VERSION)'; } && \ printf '%s\n' "$$V" >$@.out mv $@.out $@ +# These files can be tailored by setting BACKWARD and PACKRATDATA. +vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS) + $(AWK) -v DATAFORM=`expr $@ : '\(.*\).zi'` -f ziguard.awk \ + $(TDATA) $(PACKRATDATA) >$@.out + mv $@.out $@ +# This file has a version comment that attempts to capture any tailoring +# via BACKWARD, DATAFORM, PACKRATDATA, and REDO. +tzdata.zi: $(DATAFORM).zi version zishrink.awk + version=`sed 1q version` && \ + LC_ALL=C $(AWK) \ + -v dataform='$(DATAFORM)' \ + -v deps='$(DSTDATA_ZI_DEPS) zishrink.awk' \ + -v redo='$(REDO)' \ + -v version="$$version" \ + -f zishrink.awk \ + $(DATAFORM).zi >$@.out + mv $@.out $@ + version.h: version VERSION=`cat version` && printf '%s\n' \ 'static char const PKGVERSION[]="($(PACKAGE)) ";' \ @@ -470,23 +657,25 @@ leapseconds: $(LEAP_DEPS) # Arguments to pass to submakes of install_data. # They can be overridden by later submake arguments. INSTALLARGS = \ - DESTDIR=$(DESTDIR) \ + BACKWARD='$(BACKWARD)' \ + DESTDIR='$(DESTDIR)' \ LEAPSECONDS='$(LEAPSECONDS)' \ PACKRATDATA='$(PACKRATDATA)' \ - TZDIR=$(TZDIR) \ - YEARISTYPE=$(YEARISTYPE) \ + TZDEFAULT='$(TZDEFAULT)' \ + TZDIR='$(TZDIR)' \ + YEARISTYPE='$(YEARISTYPE)' \ ZIC='$(ZIC)' -# 'make install_data' installs one set of tz binary files. -# It can be tailored by setting LEAPSECONDS, PACKRATDATA, etc. -install_data: zic leapseconds yearistype $(PACKRATDATA) $(TDATA) - $(ZIC_INSTALL) $(TDATA) - $(AWK) '/^Rule/' $(TDATA) | $(ZIC_INSTALL) - $(PACKRATDATA) +INSTALL_DATA_DEPS = zic leapseconds yearistype tzdata.zi -posix_only: +# 'make install_data' installs one set of TZif files. +install_data: $(INSTALL_DATA_DEPS) + $(ZIC_INSTALL) tzdata.zi + +posix_only: $(INSTALL_DATA_DEPS) $(MAKE) $(INSTALLARGS) LEAPSECONDS= install_data -right_only: +right_only: $(INSTALL_DATA_DEPS) $(MAKE) $(INSTALLARGS) LEAPSECONDS='-L leapseconds' \ install_data @@ -500,43 +689,57 @@ right_only: # You must replace all of $(TZDIR) to switch from not using leap seconds # to using them, or vice versa. right_posix: right_only - rm -fr $(DESTDIR)$(TZDIR)-leaps - ln -s $(TZDIR_BASENAME) $(DESTDIR)$(TZDIR)-leaps || \ - $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-leaps right_only - $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-posix posix_only + rm -fr '$(DESTDIR)$(TZDIR)-leaps' + ln -s '$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-leaps' || \ + $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only + $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only posix_right: posix_only - rm -fr $(DESTDIR)$(TZDIR)-posix - ln -s $(TZDIR_BASENAME) $(DESTDIR)$(TZDIR)-posix || \ - $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-posix posix_only - $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-leaps right_only + rm -fr '$(DESTDIR)$(TZDIR)-posix' + ln -s '$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-posix' || \ + $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only + $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only # This obsolescent rule is present for backwards compatibility with # tz releases 2014g through 2015g. It should go away eventually. -posix_packrat: +posix_packrat: $(INSTALL_DATA_DEPS) $(MAKE) $(INSTALLARGS) PACKRATDATA=backzone posix_only zones: $(REDO) -$(TZS_NEW): $(TDATA) zdump zic - mkdir -p tzs.dir - $(zic) -d tzs.dir $(TDATA) - $(AWK) '/^Link/{print $$1 "\t" $$2 "\t" $$3}' \ - $(TDATA) | LC_ALL=C sort >$@.out +# dummy.zd is not a real file; it is mentioned here only so that the +# top-level 'make' does not have a syntax error. +ZDS = dummy.zd +# Rule used only by submakes invoked by the $(TZS_NEW) rule. +# It is separate so that GNU 'make -j' can run instances in parallel. +$(ZDS): zdump + ./zdump -i $(TZS_CUTOFF_FLAG) '$(wd)/'$$(expr $@ : '\(.*\).zd') \ + >$@ + +TZS_NEW_DEPS = tzdata.zi zdump zic +$(TZS_NEW): $(TZS_NEW_DEPS) + rm -fr tzs$(TZS_YEAR).dir + mkdir tzs$(TZS_YEAR).dir + $(zic) -d tzs$(TZS_YEAR).dir tzdata.zi + $(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \ + tzdata.zi | LC_ALL=C sort >$@.out wd=`pwd` && \ - zones=`$(AWK) -v wd="$$wd" \ - '/^Zone/{print wd "/tzs.dir/" $$2}' $(TDATA) \ - | LC_ALL=C sort` && \ - ./zdump -i -c $(TZS_YEAR) $$zones >>$@.out - sed 's,^TZ=".*tzs\.dir/,TZ=",' $@.out >$@.sed.out - rm -fr tzs.dir $@.out - mv $@.sed.out $@ - -# If $(TZS) does not already exist (e.g., old-format tarballs), create it. -# If it exists but 'make check_tzs' fails, a maintainer should inspect the + x=`$(AWK) '/^Z/{print "tzs$(TZS_YEAR).dir/" $$2 ".zd"}' \ + tzdata.zi \ + | LC_ALL=C sort -t . -k 2,2` && \ + set x $$x && \ + shift && \ + ZDS=$$* && \ + $(MAKE) wd="$$wd" TZS_CUTOFF_FLAG="$(TZS_CUTOFF_FLAG)" \ + ZDS="$$ZDS" $$ZDS && \ + sed 's,^TZ=".*\.dir/,TZ=",' $$ZDS >>$@.out + rm -fr tzs$(TZS_YEAR).dir + mv $@.out $@ + +# If $(TZS) exists but 'make check_tzs' fails, a maintainer should inspect the # failed output and fix the inconsistency, perhaps by running 'make force_tzs'. $(TZS): - $(MAKE) force_tzs + touch $@ force_tzs: $(TZS_NEW) cp $(TZS_NEW) $(TZS) @@ -561,56 +764,117 @@ tzselect: tzselect.ksh version chmod +x $@.out mv $@.out $@ -check: check_character_set check_white_space check_links check_sorted \ - check_tables check_tzs check_web +check: check_character_set check_white_space check_links \ + check_name_lengths check_sorted \ + check_tables check_web check_zishrink check_tzs check_character_set: $(ENCHILADA) - LC_ALL=en_US.utf8 && export LC_ALL && \ + test ! '$(UTF8_LOCALE)' || \ + ! printf 'A\304\200B\n' | \ + LC_ALL='$(UTF8_LOCALE)' grep -q '^A.B$$' >/dev/null 2>&1 || { \ + LC_ALL='$(UTF8_LOCALE)' && export LC_ALL && \ sharp='#' && \ ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \ $(MISC) $(SOURCES) $(WEB_PAGES) \ - CONTRIBUTING LICENSE Makefile README version && \ - ! grep -Env $(SAFE_SHARP_LINE) $(TDATA) backzone \ + CONTRIBUTING LICENSE README \ + version tzdata.zi && \ + ! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_'$(OK_CHAR)'*$$' \ + Makefile && \ + ! grep -Env $(SAFE_SHARP_LINE) $(TDATA_TO_CHECK) backzone \ leapseconds yearistype.sh zone.tab && \ - ! grep -Env $(OK_LINE) $(ENCHILADA) + ! grep -Env $(OK_LINE) $(ENCHILADA); \ + } + touch $@ check_white_space: $(ENCHILADA) patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \ - ! grep -En "$$pat" $(ENCHILADA) - ! grep -n '[[:space:]]$$' $(ENCHILADA) + ! grep -En "$$pat" \ + $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list) + ! grep -n '[[:space:]]$$' \ + $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list) + touch $@ + +PRECEDES_FILE_NAME = ^(Zone|Link[[:space:]]+[^[:space:]]+)[[:space:]]+ +FILE_NAME_COMPONENT_TOO_LONG = \ + $(PRECEDES_FILE_NAME)[^[:space:]]*[^/[:space:]]{15} + +check_name_lengths: $(TDATA_TO_CHECK) backzone + ! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \ + $(TDATA_TO_CHECK) backzone + touch $@ CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; } check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab $(AWK) '/^Link/ {print $$3}' backward | LC_ALL=C sort -cu $(AWK) '/^Zone/ {print $$2}' backzone | LC_ALL=C sort -cu - $(AWK) '/^[^#]/ {print $$1}' iso3166.tab | LC_ALL=C sort -cu - $(AWK) '/^[^#]/ {print $$1}' zone.tab | LC_ALL=C sort -c - $(AWK) '/^[^#]/ {print substr($$0, 1, 2)}' zone1970.tab | \ - LC_ALL=C sort -c - $(AWK) '/^[^#]/ $(CHECK_CC_LIST)' zone1970.tab | \ - LC_ALL=C sort -cu + touch $@ -check_links: checklinks.awk $(TDATA) - $(AWK) -f checklinks.awk $(TDATA) +check_links: checklinks.awk $(TDATA_TO_CHECK) tzdata.zi + $(AWK) -f checklinks.awk $(TDATA_TO_CHECK) + $(AWK) -f checklinks.awk tzdata.zi + touch $@ check_tables: checktab.awk $(PRIMARY_YDATA) $(ZONETABLES) for tab in $(ZONETABLES); do \ $(AWK) -f checktab.awk -v zone_table=$$tab $(PRIMARY_YDATA) \ || exit; \ done + touch $@ check_tzs: $(TZS) $(TZS_NEW) - diff -u $(TZS) $(TZS_NEW) + if test -s $(TZS); then \ + diff -u $(TZS) $(TZS_NEW); \ + else \ + cp $(TZS_NEW) $(TZS); \ + fi + touch $@ -check_web: $(WEB_PAGES) - $(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) $(WEB_PAGES) +check_web: $(CHECK_WEB_PAGES) +check_theory.html: theory.html +check_tz-art.html: tz-art.html +check_tz-link.html: tz-link.html +check_theory.html check_tz-art.html check_tz-link.html: + $(CURL) -sS --url https://validator.w3.org/nu/ -F out=gnu \ + -F file=@$$(expr $@ : 'check_\(.*\)') -o $@.out && \ + test ! -s $@.out || { cat $@.out; exit 1; } + mv $@.out $@ +check_tz-how-to.html: tz-how-to.html + $(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) tz-how-to.html + touch $@ + +# Check that zishrink.awk does not alter the data, and that ziguard.awk +# preserves main-format data. +check_zishrink: check_zishrink_posix check_zishrink_right +check_zishrink_posix check_zishrink_right: \ + zic leapseconds $(PACKRATDATA) $(TDATA) $(DATAFORM).zi tzdata.zi + rm -fr $@.dir $@-t.dir $@-shrunk.dir + mkdir $@.dir $@-t.dir $@-shrunk.dir + case $@ in \ + *_right) leap='-L leapseconds';; \ + *) leap=;; \ + esac && \ + $(ZIC) $$leap -d $@.dir $(DATAFORM).zi && \ + $(ZIC) $$leap -d $@-shrunk.dir tzdata.zi && \ + case $(DATAFORM) in \ + main) \ + $(ZIC) $$leap -d $@-t.dir $(TDATA) && \ + $(AWK) '/^Rule/' $(TDATA) | \ + $(ZIC) $$leap -d $@-t.dir - $(PACKRATDATA) && \ + diff -r $@.dir $@-t.dir;; \ + esac + diff -r $@.dir $@-shrunk.dir + rm -fr $@.dir $@-t.dir $@-shrunk.dir + touch $@ clean_misc: - rm -f core *.o *.out \ + rm -fr check_*.dir + rm -f *.o *.out $(TIME_T_ALTERNATIVES) \ + check_* core typecheck_* \ date tzselect version.h zdump zic yearistype libtz.a clean: clean_misc - rm -fr *.dir tzdb-*/ $(TZS_NEW) + rm -fr *.dir tzdb-*/ + rm -f *.zi $(TZS_NEW) maintainer-clean: clean @echo 'This command is intended for maintainers to use; it' @@ -637,17 +901,17 @@ $(MANTXTS): workman.sh LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@.out mv $@.out $@ -# Set the time stamps to those of the git repository, if available, +# Set the timestamps to those of the git repository, if available, # and if the files have not changed since then. # This uses GNU 'touch' syntax 'touch -d@N FILE', # where N is the number of seconds since 1970. # If git or GNU 'touch' is absent, don't bother to sync with git timestamps. # Also, set the timestamp of each prebuilt file like 'leapseconds' # to be the maximum of the files it depends on. -set-timestamps.out: $(ENCHILADA) +set-timestamps.out: $(EIGHT_YARDS) rm -f $@ if (type git) >/dev/null 2>&1 && \ - files=`git ls-files $(ENCHILADA)` && \ + files=`git ls-files $(EIGHT_YARDS)` && \ touch -md @1 test.out; then \ rm -f test.out && \ for file in $$files; do \ @@ -664,70 +928,102 @@ set-timestamps.out: $(ENCHILADA) touch -cmr `ls -t $$file workman.sh | sed 1q` $$file.txt || \ exit; \ done - touch -cmr `ls -t $(TZS_DEPS) | sed 1q` $(TZS) + touch -cmr `ls -t $(TZDATA_ZI_DEPS) | sed 1q` tzdata.zi touch -cmr `ls -t $(VERSION_DEPS) | sed 1q` version touch $@ +set-tzs-timestamp.out: $(TZS) + touch -cmr `ls -t $(TZS_DEPS) | sed 1q` $(TZS) + touch $@ # The zics below ensure that each data file can stand on its own. # We also do an all-files run to catch links to links. -check_public: - $(MAKE) maintainer-clean - $(MAKE) "CFLAGS=$(GCC_DEBUG_FLAGS)" ALL - mkdir -p public.dir - for i in $(TDATA) ; do \ - $(zic) -v -d public.dir $$i 2>&1 || exit; \ +check_public: $(VERSION_DEPS) + rm -fr public.dir + mkdir public.dir + ln $(VERSION_DEPS) public.dir + cd public.dir && $(MAKE) CFLAGS='$(GCC_DEBUG_FLAGS)' ALL + for i in $(TDATA_TO_CHECK) public.dir/tzdata.zi; do \ + public.dir/zic -v -d public.dir/zoneinfo $$i 2>&1 || exit; \ done - $(zic) -v -d public.dir $(TDATA) + public.dir/zic -v -d public.dir/zoneinfo-all $(TDATA_TO_CHECK) rm -fr public.dir + touch $@ # Check that the code works under various alternative # implementations of time_t. -check_time_t_alternatives: - if diff -q Makefile Makefile 2>/dev/null; then \ - quiet_option='-q'; \ - else \ - quiet_option=''; \ - fi && \ +check_time_t_alternatives: $(TIME_T_ALTERNATIVES) +$(TIME_T_ALTERNATIVES_TAIL): $(TIME_T_ALTERNATIVES_HEAD) +$(TIME_T_ALTERNATIVES): $(VERSION_DEPS) + rm -fr $@.dir + mkdir $@.dir + ln $(VERSION_DEPS) $@.dir + case $@ in \ + int32_t) range=-2147483648,2147483648;; \ + u*) range=0,4294967296;; \ + *) range=-4294967296,4294967296;; \ + esac && \ wd=`pwd` && \ zones=`$(AWK) '/^[^#]/ { print $$3 }' time_t.dir/int64_t.out && \ - time_t.dir/$$type/etc/zdump -V -t $$range $$zones \ - >time_t.dir/$$type.out && \ - diff -u time_t.dir/int64_t.out time_t.dir/$$type.out \ - || exit; \ - done - rm -fr time_t.dir + D=$$wd/$@.dir \ + TZS_YEAR="$$range" TZS_CUTOFF_FLAG="-t $$range" \ + install $$range_target) && \ + test $@ = $(TIME_T_ALTERNATIVES_HEAD) || { \ + (cd $(TIME_T_ALTERNATIVES_HEAD).dir && \ + $(MAKE) TOPDIR="$$wd/$@.dir" \ + TZS_YEAR="$$range" TZS_CUTOFF_FLAG="-t $$range" \ + D=$$wd/$@.dir \ + to$$range.tzs) && \ + diff -u $(TIME_T_ALTERNATIVES_HEAD).dir/to$$range.tzs \ + $@.dir/to$$range.tzs && \ + if diff -q Makefile Makefile 2>/dev/null; then \ + quiet_option='-q'; \ + else \ + quiet_option=''; \ + fi && \ + diff $$quiet_option -r $(TIME_T_ALTERNATIVES_HEAD).dir/etc \ + $@.dir/etc && \ + diff $$quiet_option -r \ + $(TIME_T_ALTERNATIVES_HEAD).dir/usr/share \ + $@.dir/usr/share; \ + } + touch $@ -tarballs traditional_tarballs signatures traditional_signatures: version +TRADITIONAL_ASC = \ + tzcode$(VERSION).tar.gz.asc \ + tzdata$(VERSION).tar.gz.asc +REARGUARD_ASC = \ + tzdata$(VERSION)-rearguard.tar.gz.asc +ALL_ASC = $(TRADITIONAL_ASC) $(REARGUARD_ASC) \ + tzdb-$(VERSION).tar.lz.asc + +tarballs rearguard_tarballs traditional_tarballs \ +signatures rearguard_signatures traditional_signatures: \ + version set-timestamps.out rearguard.zi VERSION=`cat version` && \ $(MAKE) VERSION="$$VERSION" $@_version -tarballs_version: traditional_tarballs_version tzdb-$(VERSION).tar.lz +# These *_version rules are intended for use if VERSION is set by some +# other means. Ordinarily these rules are used only by the above +# non-_version rules, which set VERSION on the 'make' command line. +tarballs_version: traditional_tarballs_version rearguard_tarballs_version \ + tzdb-$(VERSION).tar.lz +rearguard_tarballs_version: \ + tzdata$(VERSION)-rearguard.tar.gz traditional_tarballs_version: \ tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz -signatures_version: traditional_signatures_version tzdb-$(VERSION).tar.lz.asc -traditional_signatures_version: \ - tzcode$(VERSION).tar.gz.asc tzdata$(VERSION).tar.gz.asc \ +signatures_version: $(ALL_ASC) +rearguard_signatures_version: $(REARGUARD_ASC) +traditional_signatures_version: $(TRADITIONAL_ASC) tzcode$(VERSION).tar.gz: set-timestamps.out LC_ALL=C && export LC_ALL && \ @@ -742,7 +1038,27 @@ tzdata$(VERSION).tar.gz: set-timestamps.out gzip $(GZIPFLAGS) >$@.out mv $@.out $@ -tzdb-$(VERSION).tar.lz: set-timestamps.out +tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out + rm -fr tzdata$(VERSION)-rearguard.dir + mkdir tzdata$(VERSION)-rearguard.dir + ln $(COMMON) $(DATA) $(MISC) tzdata$(VERSION)-rearguard.dir + cd tzdata$(VERSION)-rearguard.dir && \ + rm -f $(TDATA) $(PACKRATDATA) version + for f in $(TDATA) $(PACKRATDATA); do \ + rearf=tzdata$(VERSION)-rearguard.dir/$$f; \ + $(AWK) -v DATAFORM=rearguard -f ziguard.awk $$f >$$rearf && \ + touch -cmr `ls -t ziguard.awk $$f` $$rearf || exit; \ + done + sed '1s/$$/-rearguard/' \ + tzdata$(VERSION)-rearguard.dir/version + touch -cmr version tzdata$(VERSION)-rearguard.dir/version + LC_ALL=C && export LC_ALL && \ + (cd tzdata$(VERSION)-rearguard.dir && \ + tar $(TARFLAGS) -cf - $(COMMON) $(DATA) $(MISC) | \ + gzip $(GZIPFLAGS)) >$@.out + mv $@.out $@ + +tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out rm -fr tzdb-$(VERSION) mkdir tzdb-$(VERSION) ln $(ENCHILADA) tzdb-$(VERSION) @@ -752,25 +1068,33 @@ tzdb-$(VERSION).tar.lz: set-timestamps.out mv $@.out $@ tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz - gpg --armor --detach-sign $? - tzdata$(VERSION).tar.gz.asc: tzdata$(VERSION).tar.gz - gpg --armor --detach-sign $? - +tzdata$(VERSION)-rearguard.tar.gz.asc: tzdata$(VERSION)-rearguard.tar.gz tzdb-$(VERSION).tar.lz.asc: tzdb-$(VERSION).tar.lz - gpg --armor --detach-sign $? - -typecheck: - $(MAKE) clean - for i in "long long" unsigned; \ - do \ - $(MAKE) CFLAGS="-DTYPECHECK -D__time_t_defined -D_TIME_T \"-Dtime_t=$$i\"" ; \ - ./zdump -v Europe/Rome ; \ - $(MAKE) clean ; \ - done +$(ALL_ASC): + $(GPG) --armor --detach-sign $? + +TYPECHECK_CFLAGS = $(CFLAGS) -DTYPECHECK -D__time_t_defined -D_TIME_T +typecheck: typecheck_long_long typecheck_unsigned +typecheck_long_long typecheck_unsigned: $(VERSION_DEPS) + rm -fr $@.dir + mkdir $@.dir + ln $(VERSION_DEPS) $@.dir + cd $@.dir && \ + case $@ in \ + *_long_long) i="long long";; \ + *_unsigned ) i="unsigned" ;; \ + esac && \ + typecheck_cflags='' && \ + $(MAKE) \ + CFLAGS="$(TYPECHECK_CFLAGS) \"-Dtime_t=$$i\"" \ + TOPDIR="`pwd`" \ + install + $@.dir/zdump -i -c 1970,1971 Europe/Rome + touch $@ -zonenames: $(TDATA) - @$(AWK) '/^Zone/ { print $$2 } /^Link/ { print $$3 }' $(TDATA) +zonenames: tzdata.zi + @$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi asctime.o: private.h tzfile.h date.o: private.h @@ -783,12 +1107,17 @@ zic.o: private.h tzfile.h version.h .KEEP_STATE: .PHONY: ALL INSTALL all -.PHONY: check check_character_set check_links -.PHONY: check_public check_sorted check_tables -.PHONY: check_time_t_alternatives check_tzs check_web check_white_space -.PHONY: clean clean_misc force_tzs +.PHONY: check check_time_t_alternatives +.PHONY: check_web check_zishrink +.PHONY: clean clean_misc dummy.zd force_tzs .PHONY: install install_data maintainer-clean names -.PHONY: posix_only posix_packrat posix_right -.PHONY: public right_only right_posix signatures signatures_version -.PHONY: tarballs tarballs_version typecheck +.PHONY: posix_only posix_packrat posix_right public +.PHONY: rearguard_signatures rearguard_signatures_version +.PHONY: rearguard_tarballs rearguard_tarballs_version +.PHONY: right_only right_posix signatures signatures_version +.PHONY: tarballs tarballs_version +.PHONY: traditional_signatures traditional_signatures_version +.PHONY: traditional_tarballs traditional_tarballs_version +.PHONY: typecheck .PHONY: zonenames zones +.PHONY: $(ZDS) diff --git a/vendor/tzdata/NEWS b/vendor/tzdata/NEWS index a3d1583..af0f06f 100644 --- a/vendor/tzdata/NEWS +++ b/vendor/tzdata/NEWS @@ -1,19 +1,1133 @@ News for the tz database +Release 2019c - 2019-09-11 08:59:48 -0700 + + Briefly: + Fiji observes DST from 2019-11-10 to 2020-01-12. + Norfolk Island starts observing Australian-style DST. + + Changes to future timestamps + + Fiji's next DST transitions will be 2019-11-10 and 2020-01-12 + instead of 2019-11-03 and 2020-01-19. (Thanks to Raymond Kumar.) + Adjust future guesses accordingly. + + Norfolk Island will observe Australian-style DST starting in + spring 2019. The first transition is on 2019-10-06. (Thanks to + Kyle Czech and Michael Deckers.) + + Changes to past timestamps + + Many corrections to time in Turkey from 1940 through 1985. + (Thanks to Oya Vulaş via Alois Treindl, and to Kıvanç Yazan.) + + The Norfolk Island 1975-03-02 transition was at 02:00 standard + time, not 02:00 DST. (Thanks to Michael Deckers.) + + South Korea observed DST from 1948 through 1951. Although this + info was supposed to appear in release 2014j, a typo inadvertently + suppressed the change. (Thanks to Alois Treindl.) + + Detroit observed DST in 1967 and 1968 following the US DST rules, + except that its 1967 DST began on June 14 at 00:01. (Thanks to + Alois Treindl for pointing out that the old data entries were + probably wrong.) + + Fix several errors in pre-1970 transitions in Perry County, IN. + (Thanks to Alois Triendl for pointing out the 1967/9 errors.) + + Edmonton did not observe DST in 1967 or 1969. In 1946 Vancouver + ended DST on 09-29 not 10-13, and Vienna ended DST on 10-07 not + 10-06. In 1945 Königsberg (now Kaliningrad) switched from +01/+02 + to +02/+03 on 04-10 not 01-01, and its +02/+03 is abbreviated + EET/EEST, not CET/CEST. (Thanks to Alois Triendl.) In 1946 + Königsberg switched to +03 on 04-07 not 01-01. + + In 1946 Louisville switched from CST to CDT on 04-28 at 00:01, not + 01-01 at 00:00. (Thanks to Alois Treindl and Michael Deckers.) + Also, it switched from CST to CDT on 1950-04-30, not 1947-04-27. + + The 1892-05-01 transition in Brussels was at 00:17:30, not at noon. + (Thanks to Michael Deckers.) + + Changes to past time zone abbreviations and DST flags + + Hong Kong Winter Time, observed from 1941-10-01 to 1941-12-25, + is now flagged as DST and is abbreviated HKWT not HKT. + + Changes to code + + leapseconds.awk now relies only on its input data, rather than + also relying on its comments. (Inspired by code from Dennis + Ferguson and Chris Woodbury.) + + The code now defends against CRLFs in leap-seconds.list. + (Thanks to Brian Inglis and Chris Woodbury.) + + Changes to documentation and commentary + + theory.html discusses leap seconds. (Thanks to Steve Summit.) + + Nashville's newspapers dueled about the time of day in the 1950s. + (Thanks to John Seigenthaler.) + + Liechtenstein observed Swiss DST in 1941/2. + (Thanks to Alois Treindl.) + + +Release 2019b - 2019-07-01 00:09:53 -0700 + + Briefly: + Brazil no longer observes DST. + 'zic -b slim' outputs smaller TZif files; please try it out. + Palestine's 2019 spring-forward transition was on 03-29, not 03-30. + + Changes to future timestamps + + Brazil has canceled DST and will stay on standard time indefinitely. + (Thanks to Steffen Thorsen, Marcus Diniz, and Daniel Soares de + Oliveira.) + + Predictions for Morocco now go through 2087 instead of 2037, to + work around a problem on newlib when using TZif files output by + zic 2019a or earlier. (Problem reported by David Gauchard.) + + Changes to past and future timestamps + + Palestine's 2019 spring transition was 03-29 at 00:00, not 03-30 + at 01:00. (Thanks to Sharef Mustafa and Even Scharning.) Guess + future transitions to be March's last Friday at 00:00. + + Changes to past timestamps + + Hong Kong's 1941-06-15 spring-forward transition was at 03:00, not + 03:30. Its 1945 transition from JST to HKT was on 11-18 at 02:00, + not 09-15 at 00:00. In 1946 its spring-forward transition was on + 04-21 at 00:00, not the previous day at 03:30. From 1946 through + 1952 its fall-back transitions occurred at 04:30, not at 03:30. + In 1947 its fall-back transition was on 11-30, not 12-30. + (Thanks to P Chan.) + + Changes to past time zone abbreviations + + Italy's 1866 transition to Rome Mean Time was on December 12, not + September 22. This affects only the time zone abbreviation for + Europe/Rome between those dates. (Thanks to Stephen Trainor and + Luigi Rosa.) + + Changes affecting metadata only + + Add info about the Crimea situation in zone1970.tab and zone.tab. + (Problem reported by Serhii Demediuk.) + + Changes to code + + zic's new -b option supports a way to control data bloat and to + test for year-2038 bugs in software that reads TZif files. + 'zic -b fat' and 'zic -b slim' generate larger and smaller output; + for example, changing from fat to slim shrinks the Europe/London + file from 3648 to 1599 bytes, saving about 56%. Fat and slim + files represent the same set of timestamps and use the same TZif + format as documented in tzfile(5) and in Internet RFC 8536. + Fat format attempts to work around bugs or incompatibilities in + older software, notably software that mishandles 64-bit TZif data + or uses obsolete TZ strings like "EET-2EEST" that lack DST rules. + Slim format is more efficient and does not work around 64-bit bugs + or obsolete TZ strings. Currently zic defaults to fat format + unless you compile with -DZIC_BLOAT_DEFAULT=\"slim\"; this + out-of-the-box default is intended to change in future releases + as the buggy software often mishandles timestamps anyway. + + zic no longer treats a set of rules ending in 2037 specially. + Previously, zic assumed that such a ruleset meant that future + timestamps could not be predicted, and therefore omitted a + POSIX-like TZ string in the TZif output. The old behavior is no + longer needed for current tzdata, and caused problems with newlib + when used with older tzdata (reported by David Gauchard). + + zic no longer generates some artifact transitions. For example, + Europe/London no longer has a no-op transition in January 1996. + + Changes to build procedure + + tzdata.zi now assumes zic 2017c or later. This shrinks tzdata.zi + by a percent or so. + + Changes to documentation and commentary + + The Makefile now documents the POSIXRULES macro as being obsolete, + and similarly, zic's -p POSIXRULES option is now documented as + being obsolete. Although the POSIXRULES feature still exists and + works as before, in practice it is rarely used for its intended + purpose, and it does not work either in the default reference + implementation (for timestamps after 2037) or in common + implementations such as GNU/Linux (for contemporary timestamps). + Since POSIXRULES was designed primarily as a temporary transition + facility for System V platforms that died off decades ago, it is + being decommissioned rather than institutionalized. + + New info on Bonin Islands and Marcus (thanks to Wakaba and Phake Nick). + + +Release 2019a - 2019-03-25 22:01:33 -0700 + + Briefly: + Palestine "springs forward" on 2019-03-30 instead of 2019-03-23. + Metlakatla "fell back" to rejoin Alaska Time on 2019-01-20 at 02:00. + + Changes to past and future timestamps + + Palestine will not start DST until 2019-03-30, instead of 2019-03-23 as + previously predicted. Adjust our prediction by guessing that spring + transitions will be between 24 and 30 March, which matches recent practice + since 2016. (Thanks to Even Scharning and Tim Parenti.) + + Metlakatla ended its observance of Pacific standard time, + rejoining Alaska Time, on 2019-01-20 at 02:00. (Thanks to Ryan + Stanley and Tim Parenti.) + + Changes to past timestamps + + Israel observed DST in 1980 (08-02/09-13) and 1984 (05-05/08-25). + (Thanks to Alois Treindl and Isaac Starkman.) + + Changes to time zone abbreviations + + Etc/UCT is now a backward-compatibility link to Etc/UTC, instead + of being a separate zone that generates the abbreviation "UCT", + which nowadays is typically a typo. (Problem reported by Isiah + Meadows.) + + Changes to code + + zic now has an -r option to limit the time range of output data. + For example, 'zic -r @1000000000' limits the output data to + timestamps starting 1000000000 seconds after the Epoch. + This helps shrink output size and can be useful for applications + not needing the full timestamp history, such as TZDIST truncation; + see Internet RFC 8536 section 5.1. (Inspired by a feature request + from Christopher Wong, helped along by bug reports from Wong and + from Tim Parenti.) + + Changes to documentation + + Mention Internet RFC 8536 (February 2019), which documents TZif. + + tz-link.html now cites tzdata-meta + . + + +Release 2018i - 2018-12-30 11:05:43 -0800 + + Briefly: + São Tomé and Príncipe switches from +01 to +00 on 2019-01-01. + + Changes to future timestamps + + Due to a change in government, São Tomé and Príncipe switches back + from +01 to +00 on 2019-01-01 at 02:00. (Thanks to Vadim + Nasardinov and Michael Deckers.) + + +Release 2018h - 2018-12-23 17:59:32 -0800 + + Briefly: + Qyzylorda, Kazakhstan moved from +06 to +05 on 2018-12-21. + New zone Asia/Qostanay because Qostanay, Kazakhstan didn't move. + Metlakatla, Alaska observes PST this winter only. + Guess Morocco will continue to adjust clocks around Ramadan. + Add predictions for Iran from 2038 through 2090. + + Changes to future timestamps + + Guess that Morocco will continue to fall back just before and + spring forward just after Ramadan, the practice since 2012. + (Thanks to Maamar Abdelkader.) This means Morocco will observe + negative DST during Ramadan in main and vanguard formats, and in + rearguard format it stays in the +00 timezone and observes + ordinary DST in all months other than Ramadan. As before, extend + this guesswork to the year 2037. As a consequence, Morocco is + scheduled to observe three DST transitions in some Gregorian years + (e.g., 2033) due to the mismatch between the Gregorian and Islamic + calendars. + + The table of exact transitions for Iranian DST has been extended. + It formerly cut off before the year 2038 in a nod to 32-bit time_t. + It now cuts off before 2091 as there is doubt about how the Persian + calendar will treat 2091. This change predicts DST transitions in + 2038-9, 2042-3, and 2046-7 to occur one day later than previously + predicted. As before, post-cutoff transitions are approximated. + + Changes to past and future timestamps + + Qyzylorda (aka Kyzylorda) oblast in Kazakhstan moved from +06 to + +05 on 2018-12-21. This is a zone split as Qostanay (aka + Kostanay) did not switch, so create a zone Asia/Qostanay. + + Metlakatla moved from Alaska to Pacific standard time on 2018-11-04. + It did not change clocks that day and remains on -08 this winter. + (Thanks to Ryan Stanley.) It will revert to the usual Alaska + rules next spring, so this change affects only timestamps + from 2018-11-04 through 2019-03-10. + + Change to past timestamps + + Kwajalein's 1993-08-20 transition from -12 to +12 was at 24:00, + not 00:00. I transcribed the time incorrectly from Shanks. + (Thanks to Phake Nick.) + + Nauru's 1979 transition was on 02-10 at 02:00, not 05-01 at 00:00. + (Thanks to Phake Nick.) + + Guam observed DST irregularly from 1959 through 1977. + (Thanks to Phake Nick.) + + Hong Kong observed DST in 1941 starting 06-15 (not 04-01), then on + 10-01 changed standard time to +08:30 (not +08). Its transition + back to +08 after WWII was on 1945-09-15, not the previous day. + Its 1904-10-30 change took effect at 01:00 +08 (not 00:00 LMT). + (Thanks to Phake Nick, Steve Allen, and Joseph Myers.) Also, + its 1952 fallback was on 11-02 (not 10-25). + + This release contains many changes to timestamps before 1946 due + to Japanese possession or occupation of Pacific/Chuuk, + Pacific/Guam, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro, + Pacific/Nauru, Pacific/Palau, and Pacific/Pohnpei. + (Thanks to Phake Nick.) + + Assume that the Spanish East Indies was like the Philippines and + observed American time until the end of 1844. This affects + Pacific/Chuuk, Pacific/Kosrae, Pacific/Palau, and Pacific/Pohnpei. + + Changes to past tm_isdst flags + + For the recent Morocco change, the tm_isdst flag should be 1 from + 2018-10-27 00:00 to 2018-10-28 03:00. (Thanks to Michael Deckers.) + Give a URL to the official decree. (Thanks to Matt Johnson.) + + +Release 2018g - 2018-10-26 22:22:45 -0700 + + Briefly: + Morocco switches to permanent +01 on 2018-10-28. + + Changes to future timestamps + + Morocco switches from +00/+01 to permanent +01 effective 2018-10-28, + so its clocks will not fall back as previously scheduled. + (Thanks to Mohamed Essedik Najd and Brian Inglis.) + + Changes to code + + When generating TZif files with leap seconds, zic no longer uses a + format that trips up older 32-bit clients, fixing a bug introduced + in 2018f. (Reported by Daniel Fischer.) Also, the zic workaround + for QTBUG-53071 now also works for TZif files with leap seconds. + + The translator to rearguard format now rewrites the line + "Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S" to + "Rule Japan 1948 1951 - Sep Sun>=9 1:00 0 S". + This caters to zic before 2007 and to Oracle TZUpdater 2.2.0 + and earlier. (Reported by Christos Zoulas.) + + Changes to past time zone abbreviations + + Change HDT to HWT/HPT for WWII-era abbreviations in Hawaii. + This reverts to 2011h, as the abbreviation change in 2011i was + likely inadvertent. + + Changes to documentation + + tzfile.5 has new sections on interoperability issues. + + +Release 2018f - 2018-10-18 00:14:18 -0700 + + Briefly: + Volgograd moves from +03 to +04 on 2018-10-28. + Fiji ends DST 2019-01-13, not 2019-01-20. + Most of Chile changes DST dates, effective 2019-04-06. + + Changes to future timestamps + + Volgograd moves from +03 to +04 on 2018-10-28 at 02:00. + (Thanks to Alexander Fetisov and Stepan Golosunov.) + + Fiji ends DST 2019-01-13 instead of the 2019-01-20 previously + predicted. (Thanks to Raymond Kumar.) Adjust future predictions + accordingly. + + Most of Chile will end DST on the first Saturday in April at 24:00 mainland + time, and resume DST on the first Saturday in September at 24:00 mainland + time. The changes are effective from 2019-04-06, and do not affect the + Magallanes region modeled by America/Punta_Arenas. (Thanks to Juan Correa + and Tim Parenti.) Adjust future predictions accordingly. + + Changes to past timestamps + + The 2018-05-05 North Korea 30-minute time zone change took place + at 23:30 the previous day, not at 00:00 that day. + + China's 1988 spring-forward transition was on April 17, not + April 10. Its DST transitions in 1986/91 were at 02:00, not 00:00. + (Thanks to P Chan.) + + Fix several issues for Macau before 1992. Macau's pre-1904 LMT + was off by 10 s. Macau switched to +08 in 1904 not 1912, and + temporarily switched to +09/+10 during World War II. Macau + observed DST in 1942/79, not 1961/80, and there were several + errors for transition times and dates. (Thanks to P Chan.) + + The 1948-1951 fallback transitions in Japan were at 25:00 on + September's second Saturday, not at 24:00. (Thanks to Phake Nick.) + zic turns this into 01:00 on the day after September's second + Saturday, which is the best that POSIX or C platforms can do. + + Incorporate 1940-1949 Asia/Shanghai DST transitions from a 2014 + paper by Li Yu, replacing more-questionable data from Shanks. + + Changes to time zone abbreviations + + Use "PST" and "PDT" for Philippine time. (Thanks to Paul Goyette.) + + Changes to code + + zic now always generates TZif files where time type 0 is used for + timestamps before the first transition. This simplifies the + reading of TZif files and should not affect behavior of existing + TZif readers because the same set of time types is used; only + their internal indexes may have changed. This affects only the + legacy zones EST5EDT, CST6CDT, MST7MDT, PST8PDT, CET, MET, and + EET, which previously used nonzero types for these timestamps. + + Because of the type 0 change, zic no longer outputs a dummy + transition at time -2**59 (before the Big Bang), as clients should + no longer need this to handle historical timestamps correctly. + This reverts a change introduced in 2013d and shrinks most TZif + files by a few bytes. + + zic now supports negative time-of-day in Rule and Leap lines, e.g., + "Rule X min max - Apr lastSun -6:00 1:00 -" means the transition + occurs at 18:00 on the Saturday before the last Sunday in April. + This behavior was documented in 2018a but the code did not + entirely match the documentation. + + localtime.c no longer requires at least one time type in TZif + files that lack transitions or have a POSIX-style TZ string. This + future-proofs the code against possible future extensions to the + format that would allow TZif files with POSIX-style TZ strings and + without transitions or time types. + + A read-access subscript error in localtime.c has been fixed. + It could occur only in TZif files with timecnt == 0, something that + does not happen in practice now but could happen in future versions. + + localtime.c no longer ignores TZif POSIX-style TZ strings that + specify only standard time. Instead, these TZ strings now + override the default time type for timestamps after the last + transition (or for all timestamps if there are no transitions), + just as DST strings specifying DST have always done. + + leapseconds.awk now outputs "#updated" and "#expires" comments, + and supports leap seconds at the ends of months other than June + and December. (Inspired by suggestions from Chris Woodbury.) + + Changes to documentation + + New restrictions: A Rule name must start with a character that + is neither an ASCII digit nor "-" nor "+", and an unquoted name + should not use characters in the set "!$%&'()*,/:;<=>?@[\]^`{|}~". + The latter restriction makes room for future extensions (a + possibility noted by Tom Lane). + + tzfile.5 now documents what time types apply before the first and + after the last transition, if any. + + Documentation now uses the spelling "timezone" for a TZ setting + that determines timestamp history, and "time zone" for a + geographic region currently sharing the same standard time. + + The name "TZif" is now used for the tz binary data format. + + tz-link.htm now mentions the A0 TimeZone Migration utilities. + (Thanks to Aldrin Martoq for the link.) + + Changes to build procedure + + New 'make' target 'rearguard_tarballs' to build the rearguard + tarball only. This is a convenience on platforms that lack lzip + if you want to build the rearguard tarball. (Problem reported by + Deborah Goldsmith.) + + tzdata.zi is now more stable from release to release. (Problem + noted by Tom Lane.) It is also a bit shorter. + + tzdata.zi now can contain comment lines documenting configuration + information, such as which data format was selected, which input + files were used, and how leap seconds are treated. (Problems + noted by Lester Caine and Brian Inglis.) If the Makefile defaults + are used these comment lines are absent, for backward + compatibility. A redistributor intending to alter its copy of the + files should also append "-LABEL" to the 'version' file's first + line, where "LABEL" identifies the redistributor's change. + + +Release 2018e - 2018-05-01 23:42:51 -0700 + + Briefly: + + North Korea switches back to +09 on 2018-05-05. + The main format uses negative DST again, for Ireland etc. + 'make tarballs' now also builds a rearguard tarball. + New 's' and 'd' suffixes in SAVE columns of Rule and Zone lines. + + Changes to past and future timestamps + + North Korea switches back from +0830 to +09 on 2018-05-05. + (Thanks to Kang Seonghoon, Arthur David Olson, Seo Sanghyeon, + and Tim Parenti.) + + Bring back the negative-DST changes of 2018a, except be more + compatible with data parsers that do not support negative DST. + Also, this now affects historical timestamps in Namibia and the + former Czechoslovakia, not just Ireland. The main format now uses + negative DST to model timestamps in Europe/Dublin (from 1971 on), + Europe/Prague (1946/7), and Africa/Windhoek (1994/2017). This + does not affect UT offsets, only time zone abbreviations and the + tm_isdst flag. Also, this does not affect rearguard or vanguard + formats; effectively the main format now uses vanguard instead of + rearguard format. Data parsers that do not support negative DST + can still use data from the rearguard tarball described below. + + Changes to build procedure + + The command 'make tarballs' now also builds the tarball + tzdataVERSION-rearguard.tar.gz, which is like tzdataVERSION.tar.gz + except that it uses rearguard format intended for trailing-edge + data parsers. + + Changes to data format and to code + + The SAVE column of Rule and Zone lines can now have an 's' or 'd' + suffix, which specifies whether the adjusted time is standard time + or daylight saving time. If no suffix is given, daylight saving + time is used if and only if the SAVE column is nonzero; this is + the longstanding behavior. Although this new feature is not used + in tzdata, it could be used to specify the legal time in Namibia + 1994-2017, as opposed to the popular time (see below). + + Changes to past timestamps + + From 1994 through 2017 Namibia observed DST in winter, not summer. + That is, it used negative DST, as Ireland still does. This change + does not affect UTC offsets; it affects only the tm_isdst flag and + the abbreviation used during summer, which is now CAT, not WAST. + Although (as noted by Michael Deckers) summer and winter time were + both simply called "standard time" in Namibian law, in common + practice winter time was considered to be DST (as noted by Stephen + Colebourne). The full effect of this change is only in vanguard + and main format; in rearguard format, the tm_isdst flag is still + zero in winter and nonzero in summer. + + In 1946/7 Czechoslovakia also observed negative DST in winter. + The full effect of this change is only in vanguard and main + formats; in rearguard format, it is modeled as plain GMT without + daylight saving. Also, the dates of some 1944/5 DST transitions + in Czechoslovakia have been changed. + + +Release 2018d - 2018-03-22 07:05:46 -0700 + + Briefly: + + Palestine starts DST a week earlier in 2018. + Add support for vanguard and rearguard data consumers. + Add subsecond precision to source data format, though not to data. + + Changes to future timestamps + + In 2018, Palestine starts DST on March 24, not March 31. + Adjust future predictions accordingly. (Thanks to Sharef Mustafa.) + + Changes to past and future timestamps + + Casey Station in Antarctica changed from +11 to +08 on 2018-03-11 + at 04:00. (Thanks to Steffen Thorsen.) + + Changes to past timestamps + + Historical transitions for Uruguay, represented by + America/Montevideo, have been updated per official legal documents, + replacing previous data mainly originating from the inventions of + Shanks & Pottenger. This has resulted in adjustments ranging from + 30 to 90 minutes in either direction over at least two dozen + distinct periods ranging from one day to several years in length. + A mere handful of pre-1991 transitions are unaffected; data since + then has come from more reliable contemporaneous reporting. These + changes affect various timestamps in 1920-1923, 1936, 1939, + 1942-1943, 1959, 1966-1970, 1972, 1974-1980, and 1988-1990. + Additionally, Uruguay's pre-standard-time UT offset has been + adjusted westward by 7 seconds, from UT-03:44:44 to UT-03:44:51, to + match the location of the Observatory of the National Meteorological + Institute in Montevideo. + (Thanks to Jeremie Bonjour, Tim Parenti, and Michael Deckers.) + + Enderbury and Kiritimati skipped New Year's Eve 1994, not + New Year's Day 1995. (Thanks to Kerry Shetline.) + + Fix the 1912-01-01 transition for Portugal and its colonies. + This transition was at 00:00 according to the new UT offset, not + according to the old one. Also assume that Cape Verde switched on + the same date as the rest, not in 1907. This affects + Africa/Bissau, Africa/Sao_Tome, Asia/Macau, Atlantic/Azores, + Atlantic/Cape_Verde, Atlantic/Madeira, and Europe/Lisbon. + (Thanks to Michael Deckers.) + + Fix an off-by-1 error for pre-1913 timestamps in Jamaica and in + Turks & Caicos. + + Changes to past time zone abbreviations + + MMT took effect in Uruguay from 1908-06-10, not 1898-06-28. There + is no clock change associated with the transition. + + Changes to build procedure + + The new DATAFORM macro in the Makefile lets the installer choose + among three source data formats. The idea is to lessen downstream + disruption when data formats are improved. + + * DATAFORM=vanguard installs from the latest, bleeding-edge + format. DATAFORM=main (the default) installs from the format + used in the 'africa' etc. files. DATAFORM=rearguard installs + from a trailing-edge format. Eventually, elements of today's + vanguard format should move to the main format, and similarly + the main format's features should eventually move to the + rearguard format. + + * In the current version, the main and rearguard formats are + identical and match that of 2018c, so this change does not + affect default behavior. The vanguard format currently contains + one feature not in the main format: negative SAVE values. This + improves support for Ireland, which uses Irish Standard Time + (IST, UTC+01) in summer and GMT (UTC) in winter. tzcode has + supported negative SAVE values for decades, and this feature + should move to the main format soon. However, it will not move + to the rearguard format for quite some time because some + downstream parsers do not support it. + + * The build procedure constructs three files vanguard.zi, main.zi, + and rearguard.zi, one for each format. Although the files + represent essentially the same data, they may have minor + discrepancies that users are not likely to notice. The files + are intended for downstream data consumers and are not + installed. Zoneinfo parsers that do not support negative SAVE values + should start using rearguard.zi, so that they will be unaffected + when the negative-DST feature moves from vanguard to main. + Bleeding-edge Zoneinfo parsers that support the new features + already can use vanguard.zi; in this respect, current tzcode is + bleeding-edge. + + The Makefile should now be safe for parallelized builds, and 'make + -j to2050new.tzs' is now much faster on a multiprocessor host + with GNU Make. + + When built with -DSUPPRESS_TZDIR, the tzcode library no longer + prepends TZDIR/ to file names that do not begin with '/'. This is + not recommended for general use, due to its security implications. + (From a suggestion by Manuela Friedrich.) + + Changes to code + + zic now accepts subsecond precision in expressions like + 00:19:32.13, which is approximately the legal time of the + Netherlands from 1835 to 1937. However, because it is + questionable whether the few recorded uses of non-integer offsets + had subsecond precision in practice, there are no plans for tzdata + to use this feature. (Thanks to Steve Allen for pointing out + the limitations of historical data in this area.) + + The code is a bit more portable to MS-Windows. Installers can + compile with -DRESERVE_STD_EXT_IDS on MS-Windows platforms that + reserve identifiers like 'localtime'. (Thanks to Manuela + Friedrich.) + + Changes to documentation and commentary + + theory.html now outlines tzdb's extensions to POSIX's model for + civil time, and has a section "POSIX features no longer needed" + that lists POSIX API components that are now vestigial. + (From suggestions by Steve Summit.) It also better distinguishes + time zones from tz regions. (From a suggestion by Guy Harris.) + + Commentary is now more consistent about using the phrase "daylight + saving time", to match the C name tm_isdst. Daylight saving time + need not occur in summer, and need not have a positive offset from + standard time. + + Commentary about historical transitions in Uruguay has been expanded + with links to many relevant legal documents. + (Thanks to Tim Parenti.) + + Commentary now uses some non-ASCII characters with Unicode value + less than U+0100, as they can be useful and should work even with + older editors such as XEmacs. + + +Release 2018c - 2018-01-22 23:00:44 -0800 + + Briefly: + Revert Irish changes that relied on negative SAVE values. + + Changes to tm_isdst + + Revert the 2018a change to Europe/Dublin. As before, this change + does not affect UT offsets or abbreviations; it affects only + whether timestamps are considered to be standard time or + daylight-saving time, as expressed in the tm_isdst flag of C's + struct tm type. This reversion is intended to be a temporary + workaround for problems discovered with downstream uses of + releases 2018a and 2018b, which implemented Irish time by using + negative SAVE values in the Eire rules of the 'europe' file. + Although negative SAVE values have been part of tzcode for many + years and are supported by many platforms, they were not + documented before 2018a and ICU and OpenJDK do not currently + support them. A mechanism to export data to platforms lacking + support for negative DST is planned to be developed before the + change is reapplied. (Problems reported by Deborah Goldsmith and + Stephen Colebourne.) + + Changes to past timestamps + + Japanese DST transitions (1948-1951) were Sundays at 00:00, not + Saturdays or Sundays at 02:00. (Thanks to Takayuki Nikai.) + + Changes to build procedure + + The build procedure now works around mawk 1.3.3's lack of support + for character class expressions. (Problem reported by Ohyama.) + + +Release 2018b - 2018-01-17 23:24:48 -0800 + + Briefly: + Fix a packaging problem in tz2018a, which was missing 'pacificnew'. + + Changes to build procedure + + The distribution now contains the file 'pacificnew' again. + This file was inadvertantly omitted in the 2018a distribution. + (Problem reported by Matias Fonzo.) + + +Release 2018a - 2018-01-12 22:29:21 -0800 + + Briefly: + São Tomé and Príncipe switched from +00 to +01. + Brazil's DST will now start on November's first Sunday. + Ireland's standard time is now in the summer, not the winter. + Use Debian-style installation locations, instead of 4.3BSD-style. + New zic option -t. + + Changes to past and future timestamps + + São Tomé and Príncipe switched from +00 to +01 on 2018-01-01 at + 01:00. (Thanks to Steffen Thorsen and Michael Deckers.) + + Changes to future timestamps + + Starting in 2018 southern Brazil will begin DST on November's + first Sunday instead of October's third Sunday. (Thanks to + Steffen Thorsen.) + + Changes to past timestamps + + A discrepancy of 4 s in timestamps before 1931 in South Sudan has + been corrected. The 'backzone' and 'zone.tab' files did not agree + with the 'africa' and 'zone1970.tab' files. (Problem reported by + Michael Deckers.) + + The abbreviation invented for Bolivia Summer Time (1931-2) is now + BST instead of BOST, to be more consistent with the convention + used for Latvian Summer Time (1918-9) and for British Summer Time. + + Changes to tm_isdst + + Change Europe/Dublin so that it observes Irish Standard Time (UT + +01) in summer and GMT (as negative daylight-saving) in winter, + instead of observing standard time (GMT) in winter and Irish + Summer Time (UT +01) in summer. This change does not affect UT + offsets or abbreviations; it affects only whether timestamps are + considered to be standard time or daylight-saving time, as + expressed in the tm_isdst flag of C's struct tm type. + (Discrepancy noted by Derick Rethans.) + + Changes to build procedure + + The default installation locations have been changed to mostly + match Debian circa 2017, instead of being designed as an add-on to + 4.3BSD circa 1986. This affects the Makefile macros TOPDIR, + TZDIR, MANDIR, and LIBDIR. New Makefile macros TZDEFAULT, USRDIR, + USRSHAREDIR, BINDIR, ZDUMPDIR, and ZICDIR let installers tailor + locations more precisely. (This responds to suggestions from + Brian Inglis and from Steve Summit.) + + The default installation procedure no longer creates the + backward-compatibility link US/Pacific-New, which causes + confusion during user setup (e.g., see Debian bug 815200). + Use 'make BACKWARD="backward pacificnew"' to create the link + anyway, for now. Eventually we plan to remove the link entirely. + + tzdata.zi now contains a version-number comment. + (Suggested by Tom Lane.) + + The Makefile now quotes values like BACKWARD more carefully when + passing them to the shell. (Problem reported by Zefram.) + + Builders no longer need to specify -DHAVE_SNPRINTF on platforms + that have snprintf and use pre-C99 compilers. (Problem reported + by Jon Skeet.) + + Changes to code + + zic has a new option -t FILE that specifies the location of the + file that determines local time when TZ is unset. The default for + this location can be configured via the new TZDEFAULT makefile + macro, which defaults to /etc/localtime. + + Diagnostics and commentary now distinguish UT from UTC more + carefully; see theory.html for more information about UT vs UTC. + + zic has been ported to GCC 8's -Wstringop-truncation option. + (Problem reported by Martin Sebor.) + + Changes to documentation and commentary + + The zic man page now documents the longstanding behavior that + times and years can be out of the usual range, with negative times + counting backwards from midnight and with year 0 preceding year 1. + (Problem reported by Michael Deckers.) + + The theory.html file now mentions the POSIX limit of six chars + per abbreviation, and lists alphabetic abbreviations used. + + The files tz-art.htm and tz-link.htm have been renamed to + tz-art.html and tz-link.html, respectively, for consistency with + other file names and to simplify web server configuration. + + +Release 2017c - 2017-10-20 14:49:34 -0700 + + Briefly: + Northern Cyprus switches from +03 to +02/+03 on 2017-10-29. + Fiji ends DST 2018-01-14, not 2018-01-21. + Namibia switches from +01/+02 to +02 on 2018-04-01. + Sudan switches from +03 to +02 on 2017-11-01. + Tonga likely switches from +13/+14 to +13 on 2017-11-05. + Turks & Caicos switches from -04 to -05/-04 on 2018-11-04. + A new file tzdata.zi now holds a small text copy of all data. + The zic input format has been regularized slightly. + + Changes to future timestamps + + Northern Cyprus has decided to resume EU rules starting + 2017-10-29, thus reinstituting winter time. + + Fiji ends DST 2018-01-14 instead of the 2018-01-21 previously + predicted. (Thanks to Dominic Fok.) Adjust future predictions + accordingly. + + Namibia will switch from +01 with DST to +02 all year on + 2017-09-03 at 02:00. This affects UT offsets starting 2018-04-01 + at 02:00. (Thanks to Steffen Thorsen.) + + Sudan will switch from +03 to +02 on 2017-11-01. (Thanks to Ahmed + Atyya and Yahia Abdalla.) South Sudan is not switching, so + Africa/Juba is no longer a link to Africa/Khartoum. + + Tonga has likely ended its experiment with DST, and will not + adjust its clocks on 2017-11-05. Although Tonga has not announced + whether it will continue to observe DST, the IATA is assuming that + it will not. (Thanks to David Wade.) + + Turks & Caicos will switch from -04 all year to -05 with US DST on + 2018-03-11 at 03:00. This affects UT offsets starting 2018-11-04 + at 02:00. (Thanks to Steffen Thorsen.) + + Changes to past timestamps + + Namibia switched from +02 to +01 on 1994-03-21, not 1994-04-03. + (Thanks to Arthur David Olson.) + + Detroit did not observe DST in 1967. + + Use railway time for Asia/Kolkata before 1941, by switching to + Madras local time (UT +052110) in 1870, then to IST (UT +0530) in + 1906. Also, treat 1941-2's +0630 as DST, like 1942-5. + + Europe/Dublin's 1946 and 1947 fallback transitions occurred at + 02:00 standard time, not 02:00 DST. (Thanks to Michael Deckers.) + + Pacific/Apia and Pacific/Pago_Pago switched from Antipodean to + American time in 1892, not 1879. (Thanks to Michael Deckers.) + + Adjust the 1867 transition in Alaska to better reflect the + historical record, by changing it to occur on 1867-10-18 at 15:30 + Sitka time rather than at the start of 1867-10-17 local time. + Although strictly speaking this is accurate only for Sitka, + the rest of Alaska's blanks need to be filled in somehow. + + Fix off-by-one errors in UT offsets for Adak and Nome before 1867. + (Thanks to Michael Deckers.) + + Add 7 s to the UT offset in Asia/Yangon before 1920. + + Changes to zone names + + Remove Canada/East-Saskatchewan from the 'backward' file, as it + exceeded the 14-character limit and was an unused misnomer anyway. + + Changes to build procedure + + To support applications that prefer to read time zone data in text + form, two zic input files tzdata.zi and leapseconds are now + installed by default. The commands 'zic tzdata.zi' and 'zic -L + leapseconds tzdata.zi' can reproduce the tzdata binary files + without and with leap seconds, respectively. To prevent these two + new files from being installed, use 'make TZDATA_TEXT=', and to + suppress leap seconds from the tzdata text installation, use 'make + TZDATA_TEXT=tzdata.zi'. + + 'make BACKWARD=' now suppresses backward-compatibility names + like 'US/Pacific' that are defined in the 'backward' and + 'pacificnew' files. + + 'make check' now works on systems that lack a UTF-8 locale, + or that lack the nsgmls program. Set UTF8_LOCALE to configure + the name of a UTF-8 locale, if you have one. + + Y2K runtime checks are no longer enabled by default. Add + -DDEPRECATE_TWO_DIGIT_YEARS to CFLAGS to enable them, instead of + adding -DNO_RUN_TIME_WARNINGS_ABOUT_YEAR_2000_PROBLEMS_THANK_YOU + to disable them. (New name suggested by Brian Inglis.) + + The build procedure for zdump now works on AIX 7.1. + (Problem reported by Kees Dekker.) + + Changes to code + + zic and the reference runtime now reject multiple leap seconds + within 28 days of each other, or leap seconds before the Epoch. + As a result, support for double leap seconds, which was + obsolescent and undocumented, has been removed. Double leap + seconds were an error in the C89 standard; they have never existed + in civil timekeeping. (Thanks to Robert Elz and Bradley White for + noticing glitches in the code that uncovered this problem.) + + zic now warns about use of the obsolescent and undocumented -y + option, and about use of the obsolescent TYPE field of Rule lines. + + zic now allows unambiguous abbreviations like "Sa" and "Su" for + weekdays; formerly it rejected them due to a bug. Conversely, zic + no longer considers non-prefixes to be abbreviations; for example, + it no longer accepts "lF" as an abbreviation for "lastFriday". + Also, zic warns about the undocumented usage with a "last-" + prefix, e.g., "last-Fri". + + Similarly, zic now accepts the unambiguous abbreviation "L" for + "Link" in ordinary context and for "Leap" in leap-second context. + Conversely, zic no longer accepts non-prefixes such as "La" as + abbreviations for words like "Leap". + + zic no longer accepts leap second lines in ordinary input, or + ordinary lines in leap second input. Formerly, zic sometimes + warned about this undocumented usage and handled it incorrectly. + + The new macro HAVE_TZNAME governs whether the tzname external + variable is exported, instead of USG_COMPAT. USG_COMPAT now + governs only the external variables "timezone" and "daylight". + This change is needed because the three variables are not in the + same category: although POSIX requires tzname, it specifies the + other two variables as optional. Also, USG_COMPAT is now 1 or 0: + if not defined, the code attempts to guess it from other macros. + + localtime.c and difftime.c no longer require stdio.h, and .c files + other than zic.c no longer require sys/wait.h. + + zdump.c no longer assumes snprintf. (Reported by Jonathan Leffler.) + + Calculation of time_t extrema works around a bug in GCC 4.8.4 + (Reported by Stan Shebs and Joseph Myers.) + + zic.c no longer mistranslates formats of line numbers in non-English + locales. (Problem reported by Benno Schulenberg.) + + Several minor changes have been made to the code to make it a + bit easier to port to MS-Windows and Solaris. (Thanks to Kees + Dekker for reporting the problems.) + + Changes to documentation and commentary + + The two new files 'theory.html' and 'calendars' contain the + contents of the removed file 'Theory'. The goal is to document + tzdb theory more accessibly. + + The zic man page now documents abbreviation rules. + + tz-link.htm now covers how to apply tzdata changes to clients. + (Thanks to Jorge Fábregas for the AIX link.) It also mentions MySQL. + + The leap-seconds.list URL has been updated to something that is + more reliable for tzdb. (Thanks to Tim Parenti and Brian Inglis.) + +Release 2017b - 2017-03-17 07:30:38 -0700 + + Briefly: Haiti has resumed DST. + + Changes to past and future timestamps + + Haiti resumed observance of DST in 2017. (Thanks to Steffen Thorsen.) + + Changes to past timestamps + + Liberia changed from -004430 to +00 on 1972-01-07, not 1972-05-01. + + Use "MMT" to abbreviate Liberia's time zone before 1972, as "-004430" + is one byte over the POSIX limit. (Problem reported by Derick Rethans.) + + Changes to code + + The reference localtime implementation now falls back on the + current US daylight-saving transition rules rather than the + 1987-2006 rules. This fallback occurs only when (1) the TZ + environment variable has a value like "AST4ADT" that asks + for daylight saving time but does not specify the rules, (2) there + is no file by that name, and (3) the TZDEFRULES file cannot be + loaded. (Thanks to Tom Lane.) + + +Release 2017a - 2017-02-28 00:05:36 -0800 + + Briefly: Southern Chile moves from -04/-03 to -03, and Mongolia + discontinues DST. + + Changes to future timestamps + + Mongolia no longer observes DST. (Thanks to Ganbold Tsagaankhuu.) + + Chile's Region of Magallanes moves from -04/-03 to -03 year-round. + Its clocks diverge from America/Santiago starting 2017-05-13 at + 23:00, hiving off a new zone America/Punta_Arenas. Although the + Chilean government says this change expires in May 2019, for now + assume it's permanent. (Thanks to Juan Correa and Deborah + Goldsmith.) This also affects Antarctica/Palmer. + + Changes to past timestamps + + Fix many entries for historical timestamps for Europe/Madrid + before 1979, to agree with tables compiled by Pere Planesas of the + National Astronomical Observatory of Spain. As a side effect, + this changes some timestamps for Africa/Ceuta before 1929, which + are probably guesswork anyway. (Thanks to Steve Allen and + Pierpaolo Bernardi for the heads-ups, and to Michael Deckers for + correcting the 1901 transition.) + + Ecuador observed DST from 1992-11-28 to 1993-02-05. + (Thanks to Alois Treindl.) + + Asia/Atyrau and Asia/Oral were at +03 (not +04) before 1930-06-21. + (Thanks to Stepan Golosunov.) + + Changes to past and future time zone abbreviations + + Switch to numeric time zone abbreviations for South America, as + part of the ongoing project of removing invented abbreviations. + This avoids the need to invent an abbreviation for the new Chilean + new zone. Similarly, switch from invented to numeric time zone + abbreviations for Afghanistan, American Samoa, the Azores, + Bangladesh, Bhutan, the British Indian Ocean Territory, Brunei, + Cape Verde, Chatham Is, Christmas I, Cocos (Keeling) Is, Cook Is, + Dubai, East Timor, Eucla, Fiji, French Polynesia, Greenland, + Indochina, Iran, Iraq, Kiribati, Lord Howe, Macquarie, Malaysia, + the Maldives, Marshall Is, Mauritius, Micronesia, Mongolia, + Myanmar, Nauru, Nepal, New Caledonia, Niue, Norfolk I, Palau, + Papua New Guinea, the Philippines, Pitcairn, Qatar, Réunion, St + Pierre & Miquelon, Samoa, Saudi Arabia, Seychelles, Singapore, + Solomon Is, Tokelau, Tuvalu, Wake, Vanuatu, Wallis & Futuna, and + Xinjiang; for 20-minute daylight saving time in Ghana before 1943; + for half-hour daylight saving time in Belize before 1944 and in + the Dominican Republic before 1975; and for Canary Islands before + 1946, for Guinea-Bissau before 1975, for Iceland before 1969, for + Indian Summer Time before 1942, for Indonesia before around 1964, + for Kenya before 1960, for Liberia before 1973, for Madeira before + 1967, for Namibia before 1943, for the Netherlands in 1937-9, for + Pakistan before 1971, for Western Sahara before 1977, and for + Zaporozhye in 1880-1924. + + For Alaska time from 1900 through 1967, instead of "CAT" use the + abbreviation "AST", the abbreviation commonly used at the time + (Atlantic Standard Time had not been standardized yet). Use "AWT" + and "APT" instead of the invented abbreviations "CAWT" and "CAPT". + + Use "CST" and "CDT" instead of invented abbreviations for Macau + before 1999 and Taiwan before 1938, and use "JST" instead of the + invented abbreviation "JCST" for Japan and Korea before 1938. + + Change to database entry category + + Move the Pacific/Johnston link from 'australasia' to 'backward', + since Johnston is now uninhabited. + + Changes to code + + zic no longer mishandles some transitions in January 2038 when it + attempts to work around Qt bug 53071. This fixes a bug affecting + Pacific/Tongatapu that was introduced in zic 2016e. localtime.c + now contains a workaround, useful when loading a file generated by + a buggy zic. (Problem and localtime.c fix reported by Bradley + White.) + + zdump -i now outputs non-hour numeric time zone abbreviations + without a colon, e.g., "+0530" rather than "+05:30". This agrees + with zic %z and with common practice, and simplifies auditing of + zdump output. + + zdump is now buildable again with -DUSE_LTZ=0. + (Problem reported by Joseph Myers.) + + zdump.c now always includes private.h, to avoid code duplication + with private.h. (Problem reported by Kees Dekker.) + + localtime.c no longer mishandles early or late timestamps + when TZ is set to a POSIX-style string that specifies DST. + (Problem reported by Kees Dekker.) + + date and strftime now cause %z to generate "-0000" instead of + "+0000" when the UT offset is zero and the time zone abbreviation + begins with "-". + + Changes to documentation and commentary + + The 'Theory' file now better documents choice of historical time + zone abbreviations. (Problems reported by Michael Deckers.) + + tz-link.htm now covers leap smearing, which is popular in clouds. + + Release 2016j - 2016-11-22 23:17:13 -0800 Briefly: Saratov, Russia moves from +03 to +04 on 2016-12-04. - Changes to future time stamps + Changes to future timestamps Saratov, Russia switches from +03 to +04 on 2016-12-04 at 02:00. This hives off a new zone Europe/Saratov from Europe/Volgograd. (Thanks to Yuri Konotopov and Stepan Golosunov.) - Changes to past time stamps + Changes to past timestamps The new zone Asia/Atyrau for Atyraū Region, Kazakhstan, is like - Asia/Aqtau except it switched from +04/+05 to +05/+06 in spring + Asia/Aqtau except it switched from +05/+06 to +04/+05 in spring 1999, not fall 1994. (Thanks to Stepan Golosunov.) Changes to past time zone abbreviations @@ -46,7 +1160,7 @@ Release 2016i - 2016-11-01 23:19:52 -0700 Briefly: Cyprus split into two time zones on 2016-10-30, and Tonga reintroduces DST on 2016-11-06. - Changes to future time stamps + Changes to future timestamps Pacific/Tongatapu begins DST on 2016-11-06 at 02:00, ending on 2017-01-15 at 03:00. Assume future observances in Tonga will be @@ -54,7 +1168,7 @@ Release 2016i - 2016-11-01 23:19:52 -0700 January, like Fiji. (Thanks to Pulu ʻAnau.) Switch to numeric time zone abbreviations for this zone. - Changes to past and future time stamps + Changes to past and future timestamps Northern Cyprus is now +03 year round, causing a split in Cyprus time zones starting 2016-10-30 at 04:00. This creates a zone @@ -63,9 +1177,9 @@ Release 2016i - 2016-11-01 23:19:52 -0700 Antarctica/Casey switched from +08 to +11 on 2016-10-22. (Thanks to Steffen Thorsen.) - Changes to past time stamps + Changes to past timestamps - Several corrections were made for pre-1975 time stamps in Italy. + Several corrections were made for pre-1975 timestamps in Italy. These affect Europe/Malta, Europe/Rome, Europe/San_Marino, and Europe/Vatican. @@ -103,7 +1217,7 @@ Release 2016i - 2016-11-01 23:19:52 -0700 Release 2016h - 2016-10-19 23:17:57 -0700 - Changes to future time stamps + Changes to future timestamps Asia/Gaza and Asia/Hebron end DST on 2016-10-29 at 01:00, not 2016-10-21 at 00:00. (Thanks to Sharef Mustafa.) Predict that @@ -111,7 +1225,7 @@ Release 2016h - 2016-10-19 23:17:57 -0700 at 01:00, which is consistent with predicted spring transitions on the last Saturday of March. (Thanks to Tim Parenti.) - Changes to past time stamps + Changes to past timestamps In Turkey, transitions in 1986-1990 were at 01:00 standard time not at 02:00, and the spring 1994 transition was on March 20, not @@ -160,7 +1274,7 @@ Release 2016h - 2016-10-19 23:17:57 -0700 Release 2016g - 2016-09-13 08:56:38 -0700 - Changes to future time stamps + Changes to future timestamps Turkey switched from EET/EEST (+02/+03) to permanent +03, effective 2016-09-07. (Thanks to Burak AYDIN.) Use "+03" rather @@ -169,7 +1283,7 @@ Release 2016g - 2016-09-13 08:56:38 -0700 New leap second 2016-12-31 23:59:60 UTC as per IERS Bulletin C 52. (Thanks to Tim Parenti.) - Changes to past time stamps + Changes to past timestamps For America/Los_Angeles, spring-forward transition times have been corrected from 02:00 to 02:01 in 1948, and from 02:00 to 01:00 in @@ -218,9 +1332,9 @@ Release 2016g - 2016-09-13 08:56:38 -0700 zic no longer generates binary files containing POSIX TZ-like strings that disagree with the local time type after the last explicit transition in the data. This fixes a bug with - Africa/Casablanca and Africa/El_Aaiun in some year-2037 time - stamps on the reference platform. (Thanks to Alexander Belopolsky - for reporting the bug and suggesting a way forward.) + Africa/Casablanca and Africa/El_Aaiun in some year-2037 timestamps + on the reference platform. (Thanks to Alexander Belopolsky for + reporting the bug and suggesting a way forward.) If the installed localtime and/or posixrules files are symbolic links, zic now keeps them symbolic links when updating them, for @@ -283,7 +1397,7 @@ Release 2016g - 2016-09-13 08:56:38 -0700 Release 2016f - 2016-07-05 16:26:51 +0200 - Changes affecting future time stamps + Changes affecting future timestamps The Egyptian government changed its mind on short notice, and Africa/Cairo will not introduce DST starting 2016-07-07 after all. @@ -292,12 +1406,12 @@ Release 2016f - 2016-07-05 16:26:51 +0200 Asia/Novosibirsk switches from +06 to +07 on 2016-07-24 at 02:00. (Thanks to Stepan Golosunov.) - Changes to past and future time stamps + Changes to past and future timestamps Asia/Novokuznetsk and Asia/Novosibirsk now use numeric time zone abbreviations instead of invented ones. - Changes affecting past time stamps + Changes affecting past timestamps Europe/Minsk's 1992-03-29 spring-forward transition was at 02:00 not 00:00. (Thanks to Stepan Golosunov.) @@ -305,14 +1419,14 @@ Release 2016f - 2016-07-05 16:26:51 +0200 Release 2016e - 2016-06-14 08:46:16 -0700 - Changes affecting future time stamps + Changes affecting future timestamps Africa/Cairo observes DST in 2016 from July 7 to the end of October. Guess October 27 and 24:00 transitions. (Thanks to Steffen Thorsen.) For future years, guess April's last Thursday to October's last Thursday except for Ramadan. - Changes affecting past time stamps + Changes affecting past timestamps Locations while uninhabited now use '-00', not 'zzz', as a placeholder time zone abbreviation. This is inspired by Internet @@ -341,7 +1455,7 @@ Release 2016e - 2016-06-14 08:46:16 -0700 Release 2016d - 2016-04-17 22:50:29 -0700 - Changes affecting future time stamps + Changes affecting future timestamps America/Caracas switches from -0430 to -04 on 2016-05-01 at 02:30. (Thanks to Alexander Krivenyshev for the heads-up.) @@ -353,7 +1467,7 @@ Release 2016d - 2016-04-17 22:50:29 -0700 Tomsk Oblast, Russia, which switches from +06 to +07 on 2016-05-29 at 02:00. (Thanks to Stepan Golosunov.) - Changes affecting past time stamps + Changes affecting past timestamps New zone Europe/Kirov, split off from Europe/Volgograd. It covers Kirov Oblast, Russia, which switched from +04/+05 to +03/+04 on @@ -376,7 +1490,7 @@ Release 2016d - 2016-04-17 22:50:29 -0700 Release 2016c - 2016-03-23 00:51:27 -0700 - Changes affecting future time stamps + Changes affecting future timestamps Azerbaijan no longer observes DST. (Thanks to Steffen Thorsen.) @@ -387,7 +1501,7 @@ Release 2016c - 2016-03-23 00:51:27 -0700 2014-09-07 through 2016-05-14 daylight saving time instead of standard time, as that seems more appropriate now. - Changes affecting past time stamps + Changes affecting past timestamps Europe/Kaliningrad and Europe/Vilnius changed from +03/+04 to +02/+03 on 1989-03-26, not 1991-03-31. Europe/Volgograd changed @@ -412,7 +1526,7 @@ Release 2016b - 2016-03-12 17:30:14 -0800 POSIX.1-1988 that was removed in POSIX.1-2001. One way to suppress the warnings is to upgrade to zic derived from tz releases 2015f and later. - Changes affecting future time stamps + Changes affecting future timestamps New zones Europe/Astrakhan and Europe/Ulyanovsk for Astrakhan and Ulyanovsk Oblasts, Russia, both of which will switch from +03 to +04 on @@ -436,7 +1550,7 @@ Release 2016b - 2016-03-12 17:30:14 -0800 (Thanks to Hannah Kreitem.) Guess future transitions will be March's last Saturday at 01:00, not March's last Friday at 24:00. - Changes affecting past time stamps + Changes affecting past timestamps Europe/Chisinau observed DST during 1990, and switched from +04 to +03 at 1990-05-06 02:00, instead of switching from +03 to +02. @@ -460,7 +1574,7 @@ Release 2016b - 2016-03-12 17:30:14 -0800 Comments in zone tables have been improved. (Thanks to J William Piggott.) tzselect again limits its menu comments so that menus fit on a - 24x80 alphanumeric display. + 24×80 alphanumeric display. A new web page tz-how-to.html. (Thanks to Bill Seymour.) @@ -471,7 +1585,7 @@ Release 2016b - 2016-03-12 17:30:14 -0800 Release 2016a - 2016-01-26 23:28:02 -0800 - Changes affecting future time stamps + Changes affecting future timestamps America/Cayman will not observe daylight saving this year after all. Revert our guess that it would. (Thanks to Matt Johnson.) @@ -483,7 +1597,7 @@ Release 2016a - 2016-01-26 23:28:02 -0800 to be March 21 00:00 to September 21 00:00. This is likely better than predicting no DST, albeit off by a day every now and then. - Changes affecting past and future time stamps + Changes affecting past and future timestamps America/Metlakatla switched from PST all year to AKST/AKDT on 2015-11-01 at 02:00. (Thanks to Steffen Thorsen.) @@ -492,7 +1606,7 @@ Release 2016a - 2016-01-26 23:28:02 -0800 backward compatibility link to America/Tijuana. Its contents were apparently based on a misreading of Mexican legislation. - Changes affecting past time stamps + Changes affecting past timestamps Asia/Karachi's two transition times in 2002 were off by a minute. (Thanks to Matt Johnson.) @@ -526,7 +1640,7 @@ Release 2016a - 2016-01-26 23:28:02 -0800 Release 2015g - 2015-10-01 00:39:51 -0700 - Changes affecting future time stamps + Changes affecting future timestamps Turkey's 2015 fall-back transition is scheduled for Nov. 8, not Oct. 25. (Thanks to Fatih.) @@ -541,7 +1655,7 @@ Release 2015g - 2015-10-01 00:39:51 -0700 effectively been on MST (-0700) since it advanced its clocks on 2015-03-08. New zone America/Fort_Nelson. (Thanks to Matt Johnson.) - Changes affecting past time stamps + Changes affecting past timestamps Norfolk observed DST from 1974-10-27 02:00 to 1975-03-02 02:00. @@ -571,7 +1685,7 @@ Release 2015g - 2015-10-01 00:39:51 -0700 Release 2015f - 2015-08-10 18:06:56 -0700 - Changes affecting future time stamps + Changes affecting future timestamps North Korea switches to +0830 on 2015-08-15. (Thanks to Steffen Thorsen.) The abbreviation remains "KST". (Thanks to Robert Elz.) @@ -579,7 +1693,7 @@ Release 2015f - 2015-08-10 18:06:56 -0700 Uruguay no longer observes DST. (Thanks to Steffen Thorsen and Pablo Camargo.) - Changes affecting past and future time stamps + Changes affecting past and future timestamps Moldova starts and ends DST at 00:00 UTC, not at 01:00 UTC. (Thanks to Roman Tudos.) @@ -597,8 +1711,8 @@ Release 2015f - 2015-08-10 18:06:56 -0700 (Thanks to Jon Skeet and Arthur David Olson.) Constraints on simultaneity are now documented. - The two characters '%z' in a zone format now stand for the UTC - offset, e.g., '-07' for seven hours behind UTC and '+0530' for + The two characters '%z' in a zone format now stand for the UT + offset, e.g., '-07' for seven hours behind UT and '+0530' for five hours and thirty minutes ahead. This better supports time zone abbreviations conforming to POSIX.1-2001 and later. @@ -638,7 +1752,7 @@ Release 2015f - 2015-08-10 18:06:56 -0700 Release 2015e - 2015-06-13 10:56:02 -0700 - Changes affecting future time stamps + Changes affecting future timestamps Morocco will suspend DST from 2015-06-14 03:00 through 2015-07-19 02:00, not 06-13 and 07-18 as we had guessed. (Thanks to Milamber.) @@ -666,13 +1780,13 @@ Release 2015e - 2015-06-13 10:56:02 -0700 Release 2015d - 2015-04-24 08:09:46 -0700 - Changes affecting future time stamps + Changes affecting future timestamps Egypt will not observe DST in 2015 and will consider canceling it permanently. For now, assume no DST indefinitely. (Thanks to Ahmed Nazmy and Tim Parenti.) - Changes affecting past time stamps + Changes affecting past timestamps America/Whitehorse switched from UT -09 to -08 on 1967-05-28, not 1966-07-01. Also, Yukon's time zone history is documented better. @@ -692,16 +1806,16 @@ Release 2015d - 2015-04-24 08:09:46 -0700 Release 2015c - 2015-04-11 08:55:55 -0700 - Changes affecting future time stamps + Changes affecting future timestamps Egypt's spring-forward transition is at 24:00 on April's last Thursday, not 00:00 on April's last Friday. 2015's transition will therefore be on Thursday, April 30 at 24:00, not Friday, April 24 at 00:00. Similar fixes apply to 2026, 2037, 2043, etc. (Thanks to Steffen Thorsen.) - Changes affecting past time stamps + Changes affecting past timestamps - The following changes affect some pre-1991 Chile-related time stamps + The following changes affect some pre-1991 Chile-related timestamps in America/Santiago, Antarctica/Palmer, and Pacific/Easter. The 1910 transition was January 10, not January 1. @@ -721,13 +1835,13 @@ Release 2015c - 2015-04-11 08:55:55 -0700 The spring 1988 transition was 1988-10-09, not 1988-10-02. The fall 1990 transition was 1990-03-11, not 1990-03-18. - Assume no UTC offset change for Pacific/Easter on 1890-01-01, + Assume no UT offset change for Pacific/Easter on 1890-01-01, and omit all transitions on Pacific/Easter from 1942 through 1946 since we have no data suggesting that they existed. One more zone has been turned into a link, as it differed - from an existing zone only for older time stamps. As usual, - this change affects UTC offsets in pre-1970 time stamps only. + from an existing zone only for older timestamps. As usual, + this change affects UT offsets in pre-1970 timestamps only. The zone's old contents have been moved to the 'backzone' file. The affected zone is America/Montreal. @@ -740,7 +1854,7 @@ Release 2015c - 2015-04-11 08:55:55 -0700 Release 2015b - 2015-03-19 23:28:11 -0700 - Changes affecting future time stamps + Changes affecting future timestamps Mongolia will start observing DST again this year, from the last Saturday in March at 02:00 to the last Saturday in September at 00:00. @@ -750,14 +1864,14 @@ Release 2015b - 2015-03-19 23:28:11 -0700 correct the fall 2014 transition from September 26 to October 24. Adjust future predictions accordingly. (Thanks to Steffen Thorsen.) - Changes affecting past time stamps + Changes affecting past timestamps The 1982 zone shift in Pacific/Easter has been corrected, fixing a 2015a regression. (Thanks to Stuart Bishop for reporting the problem.) Some more zones have been turned into links, when they differed - from existing zones only for older time stamps. As usual, - these changes affect UTC offsets in pre-1970 time stamps only. + from existing zones only for older timestamps. As usual, + these changes affect UT offsets in pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: America/Antigua, America/Cayman, Pacific/Midway, and Pacific/Saipan. @@ -788,7 +1902,7 @@ Release 2015b - 2015-03-19 23:28:11 -0700 Release 2015a - 2015-01-29 22:35:20 -0800 - Changes affecting future time stamps + Changes affecting future timestamps The Mexican state of Quintana Roo, represented by America/Cancun, will shift from Central Time with DST to Eastern Time without DST @@ -801,15 +1915,15 @@ Release 2015a - 2015-01-29 22:35:20 -0800 New leap second 2015-06-30 23:59:60 UTC as per IERS Bulletin C 49. (Thanks to Tim Parenti.) - Changes affecting past time stamps + Changes affecting past timestamps Iceland observed DST in 1919 and 1921, and its 1939 fallback transition was Oct. 29, not Nov. 29. Remove incorrect data from Shanks about time in Iceland between 1837 and 1908. Some more zones have been turned into links, when they differed - from existing zones only for older time stamps. As usual, - these changes affect UTC offsets in pre-1970 time stamps only. + from existing zones only for older timestamps. As usual, + these changes affect UT offsets in pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: Asia/Aden, Asia/Bahrain, Asia/Kuwait, and Asia/Muscat. @@ -840,23 +1954,23 @@ Release 2015a - 2015-01-29 22:35:20 -0800 Release 2014j - 2014-11-10 17:37:11 -0800 - Changes affecting current and future time stamps + Changes affecting current and future timestamps Turks & Caicos' switch from US eastern time to UT -04 year-round did not occur on 2014-11-02 at 02:00. It's currently scheduled for 2015-11-01 at 02:00. (Thanks to Chris Walton.) - Changes affecting past time stamps + Changes affecting past timestamps - Many pre-1989 time stamps have been corrected for Asia/Seoul and + Many pre-1989 timestamps have been corrected for Asia/Seoul and Asia/Pyongyang, based on sources for the Korean-language Wikipedia entry for time in Korea. (Thanks to Sanghyuk Jung.) Also, no longer guess that Pyongyang mimicked Seoul time after World War II, as this is politically implausible. Some more zones have been turned into links, when they differed - from existing zones only for older time stamps. As usual, - these changes affect UTC offsets in pre-1970 time stamps only. + from existing zones only for older timestamps. As usual, + these changes affect UT offsets in pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: Africa/Addis_Ababa, Africa/Asmara, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Kampala, @@ -871,7 +1985,7 @@ Release 2014j - 2014-11-10 17:37:11 -0800 Release 2014i - 2014-10-21 22:04:57 -0700 - Changes affecting future time stamps + Changes affecting future timestamps Pacific/Fiji will observe DST from 2014-11-02 02:00 to 2015-01-18 03:00. (Thanks to Ken Rylander for the heads-up.) Guess that future @@ -891,17 +2005,17 @@ Release 2014i - 2014-10-21 22:04:57 -0700 The new abbreviation IDT stands for the pre-1976 use of UT +08 in Indochina, to distinguish it better from ICT (+07). - Changes affecting past time stamps + Changes affecting past timestamps - Many time stamps have been corrected for Asia/Ho_Chi_Minh before 1976 + Many timestamps have been corrected for Asia/Ho_Chi_Minh before 1976 (thanks to Trần Ngọc Quân for an indirect pointer to Trần Tiến Bình's authoritative book). Asia/Ho_Chi_Minh has been added to zone1970.tab, to give tzselect users in Vietnam two choices, since north and south Vietnam disagreed after our 1970 cutoff. Asia/Phnom_Penh and Asia/Vientiane have been turned into links, as - they differed from existing zones only for older time stamps. As - usual, these changes affect pre-1970 time stamps only. Their old + they differed from existing zones only for older timestamps. As + usual, these changes affect pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. Changes affecting code @@ -911,16 +2025,16 @@ Release 2014i - 2014-10-21 22:04:57 -0700 been fixed. (Thanks to Christos Zoulas for reporting most of these problems and for suggesting fixes.) - If USG_COMPAT is defined and the requested time stamp is standard time, + If USG_COMPAT is defined and the requested timestamp is standard time, the tz library's localtime and mktime functions now set the extern - variable timezone to a value appropriate for that time stamp; and + variable timezone to a value appropriate for that timestamp; and similarly for ALTZONE, daylight saving time, and the altzone variable. This change is a companion to the tzname change in 2014h, and is designed to make timezone and altzone more compatible with tzname. The tz library's functions now set errno to EOVERFLOW if they fail because the result cannot be represented. ctime and ctime_r now - return NULL and set errno when a time stamp is out of range, rather + return NULL and set errno when a timestamp is out of range, rather than having undefined behavior. Some bugs associated with the new 2014g functions have been fixed. @@ -937,7 +2051,7 @@ Release 2014i - 2014-10-21 22:04:57 -0700 Release 2014h - 2014-09-25 18:59:03 -0700 - Changes affecting past time stamps + Changes affecting past timestamps America/Jamaica's 1974 spring-forward transition was Jan. 6, not Apr. 28. @@ -945,8 +2059,8 @@ Release 2014h - 2014-09-25 18:59:03 -0700 not 1920-01-06. The old entry was based on a misinterpretation of Shanks. Some more zones have been turned into links, when they differed - from existing zones only for older time stamps. As usual, - these changes affect UTC offsets in pre-1970 time stamps only. + from existing zones only for older timestamps. As usual, + these changes affect UT offsets in pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: Africa/Blantyre, Africa/Bujumbura, Africa/Gaborone, Africa/Harare, Africa/Kigali, Africa/Lubumbashi, @@ -958,7 +2072,7 @@ Release 2014h - 2014-09-25 18:59:03 -0700 not merely on platforms defining TM_GMTOFF. The tz library's localtime and mktime functions now set tzname to a value - appropriate for the requested time stamp, and zdump now uses this + appropriate for the requested timestamp, and zdump now uses this on platforms not defining TM_ZONE, fixing a 2014g regression. (Thanks to Tim Parenti for reporting the problem.) @@ -998,13 +2112,13 @@ Release 2014h - 2014-09-25 18:59:03 -0700 Release 2014g - 2014-08-28 12:31:23 -0700 - Changes affecting future time stamps + Changes affecting future timestamps Turks & Caicos is switching from US eastern time to UT -04 year-round, modeled as a switch on 2014-11-02 at 02:00. [As noted in 2014j, this switch was later delayed.] - Changes affecting past time stamps + Changes affecting past timestamps Time in Russia or the USSR before 1926 or so has been corrected by a few seconds in the following zones: Asia/Irkutsk, @@ -1014,7 +2128,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700 Vladimir Karpinsky.) The Portuguese decree of 1911-05-26 took effect on 1912-01-01. - This affects 1911 time stamps in Africa/Bissau, Africa/Luanda, + This affects 1911 timestamps in Africa/Bissau, Africa/Luanda, Atlantic/Azores, and Atlantic/Madeira. Also, Lisbon's pre-1912 GMT offset was -0:36:45 (rounded from -0:36:44.68), not -0:36:32. (Thanks to Stephen Colebourne for pointing to the decree.) @@ -1022,7 +2136,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700 Asia/Dhaka ended DST on 2009-12-31 at 24:00, not 23:59. A new file 'backzone' contains data which may appeal to - connoisseurs of old time stamps, although it is out of scope for + connoisseurs of old timestamps, although it is out of scope for the tz database, is often poorly sourced, and contains some data that is known to be incorrect. The new file is not recommended for ordinary use and its entries are not installed by default. @@ -1030,8 +2144,8 @@ Release 2014g - 2014-08-28 12:31:23 -0700 Isle of Man entries.) Some more zones have been turned into links, when they differed - from existing zones only for older time stamps. As usual, - these changes affect UTC offsets in pre-1970 time stamps only. + from existing zones only for older timestamps. As usual, + these changes affect UT offsets in pre-1970 timestamps only. Their old contents have been moved to the 'backzone' file. The affected zones are: Africa/Bangui, Africa/Brazzaville, Africa/Douala, Africa/Kinshasa, Africa/Libreville, Africa/Luanda, @@ -1041,7 +2155,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700 Unless NETBSD_INSPIRED is defined to 0, the tz library now supplies functions for creating and using objects that represent - time zones. The new functions are tzalloc, tzfree, localtime_rz, + timezones. The new functions are tzalloc, tzfree, localtime_rz, mktime_z, and (if STD_INSPIRED is also defined) posix2time_z and time2posix_z. They are intended for performance: for example, localtime_rz (unlike localtime_r) is trivially thread-safe without @@ -1055,7 +2169,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700 TZDOBJS=zdump.o CHECK_TIME_T_ALTERNATIVES='. zdump now uses localtime_rz if available, as it's significantly faster, - and it can help zdump better diagnose invalid time zone names. + and it can help zdump better diagnose invalid timezone names. Define HAVE_LOCALTIME_RZ to 0 to suppress this. HAVE_LOCALTIME_RZ defaults to 1 if NETBSD_INSPIRED && USE_LTZ. When localtime_rz is not available, zdump now uses localtime_r and tzset if available, @@ -1071,7 +2185,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700 invalid or outlandish input. The tz library no longer mishandles leap seconds on platforms with - unsigned time_t in time zones that lack ordinary transitions after 1970. + unsigned time_t in timezones that lack ordinary transitions after 1970. The tz code now attempts to infer TM_GMTOFF and TM_ZONE if not already defined, to make it easier to configure on common platforms. @@ -1082,7 +2196,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700 but does not cause other problems such as traps. If TM_GMTOFF is defined and UNINIT_TRAP is 0, mktime is now - more likely to guess right for ambiguous time stamps near + more likely to guess right for ambiguous timestamps near transitions where tm_isdst does not change. If HAVE_STRFTIME_L is defined to 1, the tz library now defines @@ -1155,7 +2269,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700 Release 2014f - 2014-08-05 17:42:36 -0700 - Changes affecting future time stamps + Changes affecting future timestamps Russia will subtract an hour from most of its time zones on 2014-10-26 at 02:00 local time. (Thanks to Alexander Krivenyshev.) @@ -1181,7 +2295,7 @@ Release 2014f - 2014-08-05 17:42:36 -0700 standard and daylight saving time the abbreviations are AEST and AEDT instead of the former EST for both; similarly, ACST/ACDT, ACWST/ACWDT, and AWST/AWDT are now used instead of the former CST, CWST, and WST. - This change does not affect UTC offsets, only time zone abbreviations. + This change does not affect UT offsets, only time zone abbreviations. (Thanks to Rich Tibbett and many others.) Asia/Novokuznetsk shifts from NOVT to KRAT (remaining on UT +07) @@ -1206,20 +2320,20 @@ Release 2014f - 2014-08-05 17:42:36 -0700 These abbreviations are now used for time in Korea, Taiwan, and Sakhalin while controlled by Japan. - Changes affecting past time stamps + Changes affecting past timestamps China's five zones have been simplified to two, since the post-1970 differences in the other three seem to have been imaginary. The zones Asia/Harbin, Asia/Chongqing, and Asia/Kashgar have been removed; backwards-compatibility links still work, albeit with - different behaviors for time stamps before May 1980. Asia/Urumqi's + different behaviors for timestamps before May 1980. Asia/Urumqi's 1980 transition to UT +08 has been removed, so that it is now at +06 and not +08. (Thanks to Luther Ma and to Alois Treindl; Treindl sent helpful translations of two papers by Guo Qingsheng.) Some zones have been turned into links, when they differed from existing - zones only for older UTC offsets where data entries were likely invented. - These changes affect UTC offsets in pre-1970 time stamps only. This is + zones only for older UT offsets where data entries were likely invented. + These changes affect UT offsets in pre-1970 timestamps only. This is similar to the change in release 2013e, except this time for western Africa. The affected zones are: Africa/Bamako, Africa/Banjul, Africa/Conakry, Africa/Dakar, Africa/Freetown, Africa/Lome, @@ -1331,7 +2445,7 @@ Release 2014f - 2014-08-05 17:42:36 -0700 warlord Jin Shuren in the data. Commentary about the coverage of each Russian zone has been standardized. - (Thanks to Tim Parenti). + (Thanks to Tim Parenti.) There is new commentary about contemporary timekeeping in Ethiopia. @@ -1364,7 +2478,7 @@ Release 2014f - 2014-08-05 17:42:36 -0700 Release 2014e - 2014-06-12 21:53:52 -0700 - Changes affecting near-future time stamps + Changes affecting near-future timestamps Egypt's 2014 Ramadan-based transitions are June 26 and July 31 at 24:00. (Thanks to Imed Chihi.) Guess that from 2015 on Egypt will temporarily @@ -1376,7 +2490,7 @@ Release 2014e - 2014-06-12 21:53:52 -0700 temporarily switch to standard time at 03:00 the last Saturday before Ramadan, and back to DST at 02:00 the first Saturday after Ramadan. - Changes affecting past time stamps + Changes affecting past timestamps The abbreviation "MSM" (Moscow Midsummer Time) is now used instead of "MSD" for Moscow's double daylight time in summer 1921. Also, a typo @@ -1394,9 +2508,9 @@ Release 2014d - 2014-05-27 21:34:40 -0700 Changes affecting code - zic no longer generates files containing time stamps before the Big Bang. - This works around GNOME bug 730332 - . + zic no longer generates files containing timestamps before the Big Bang. + This works around GNOME glib bug 878 + (Thanks to Leonardo Chiquitto for reporting the bug, and to Arthur David Olson and James Cloos for suggesting improvements to the fix.) @@ -1407,7 +2521,7 @@ Release 2014d - 2014-05-27 21:34:40 -0700 Release 2014c - 2014-05-13 07:44:13 -0700 - Changes affecting near-future time stamps + Changes affecting near-future timestamps Egypt observes DST starting 2014-05-15 at 24:00. (Thanks to Ahmad El-Dardiry and Gunther Vermier.) @@ -1421,7 +2535,7 @@ Release 2014c - 2014-05-13 07:44:13 -0700 Changes affecting code zic now generates transitions for minimum time values, eliminating guesswork - when handling low-valued time stamps. (Thanks to Arthur David Olson.) + when handling low-valued timestamps. (Thanks to Arthur David Olson.) Port to Cygwin sans glibc. (Thanks to Arthur David Olson.) @@ -1432,7 +2546,7 @@ Release 2014c - 2014-05-13 07:44:13 -0700 Release 2014b - 2014-03-24 21:28:50 -0700 - Changes affecting near-future time stamps + Changes affecting near-future timestamps Crimea switches to Moscow time on 2014-03-30 at 02:00 local time. (Thanks to Alexander Krivenyshev.) Move its zone.tab entry from UA to RU. @@ -1471,12 +2585,12 @@ Release 2014b - 2014-03-24 21:28:50 -0700 Release 2014a - 2014-03-07 23:30:29 -0800 - Changes affecting near-future time stamps + Changes affecting near-future timestamps Turkey begins DST on 2014-03-31, not 03-30. (Thanks to Faruk Pasin for the heads-up, and to Tim Parenti for simplifying the update.) - Changes affecting past time stamps + Changes affecting past timestamps Fiji ended DST on 2014-01-19 at 02:00, not the previously-scheduled 03:00. (Thanks to Steffen Thorsen.) @@ -1540,13 +2654,13 @@ Release 2014a - 2014-03-07 23:30:29 -0800 Release 2013i - 2013-12-17 07:25:23 -0800 - Changes affecting near-future time stamps: + Changes affecting near-future timestamps: Jordan switches back to standard time at 00:00 on December 20, 2013. The 2006-2011 transition schedule is planned to resume in 2014. (Thanks to Steffen Thorsen.) - Changes affecting past time stamps: + Changes affecting past timestamps: In 2004, Cuba began DST on March 28, not April 4. (Thanks to Steffen Thorsen.) @@ -1570,7 +2684,7 @@ Release 2013i - 2013-12-17 07:25:23 -0800 Release 2013h - 2013-10-25 15:32:32 -0700 - Changes affecting current and future time stamps: + Changes affecting current and future timestamps: Libya has switched its UT offset back to +02 without DST, instead of +01 with DST. (Thanks to Even Scharning.) @@ -1578,7 +2692,7 @@ Release 2013h - 2013-10-25 15:32:32 -0700 Western Sahara (Africa/El_Aaiun) uses Morocco's DST rules. (Thanks to Gwillim Law.) - Changes affecting future time stamps: + Changes affecting future timestamps: Acre and (we guess) western Amazonas will switch from UT -04 to -05 on 2013-11-10. This affects America/Rio_Branco and America/Eirunepe. @@ -1629,7 +2743,7 @@ Release 2013h - 2013-10-25 15:32:32 -0700 Release 2013g - 2013-09-30 21:08:26 -0700 - Changes affecting current and near-future time stamps + Changes affecting current and near-future timestamps Morocco now observes DST from the last Sunday in March to the last Sunday in October, not April to September respectively. (Thanks @@ -1662,7 +2776,7 @@ Release 2013g - 2013-09-30 21:08:26 -0700 Release 2013f - 2013-09-24 23:37:36 -0700 - Changes affecting near-future time stamps + Changes affecting near-future timestamps Tocantins will very likely not observe DST starting this spring. (Thanks to Steffen Thorsen.) @@ -1709,7 +2823,7 @@ Release 2013f - 2013-09-24 23:37:36 -0700 Release 2013e - 2013-09-19 23:50:04 -0700 - Changes affecting near-future time stamps + Changes affecting near-future timestamps This year Fiji will start DST on October 27, not October 20. (Thanks to David Wheeler for the heads-up.) For now, guess that @@ -1727,13 +2841,13 @@ Release 2013e - 2013-09-19 23:50:04 -0700 Use ART (UT -03, standard time), rather than WARST (also -03, but daylight saving time) for San Luis, Argentina since 2009. - Changes affecting Godthåb time stamps after 2037 if version mismatch + Changes affecting Godthåb timestamps after 2037 if version mismatch Allow POSIX-like TZ strings where the transition time's hour can range from -167 through 167, instead of the POSIX-required 0 through 24. E.g., TZ='FJT-12FJST,M10.3.1/146,M1.3.4/75' for the new Fiji rules. This is a more-compact way to represent - far-future time stamps for America/Godthab, America/Santiago, + far-future timestamps for America/Godthab, America/Santiago, Antarctica/Palmer, Asia/Gaza, Asia/Hebron, Asia/Jerusalem, Pacific/Easter, and Pacific/Fiji. Other zones are unaffected by this change. (Derived from a suggestion by Arthur David Olson.) @@ -1751,12 +2865,12 @@ Release 2013e - 2013-09-19 23:50:04 -0700 embedded TZ-format string, and the tz file format version number has therefore been increased from 2 to 3 as a precaution. Version-2-based client code should continue to work as before for - all time stamps before 2038. Existing version-2-based client code + all timestamps before 2038. Existing version-2-based client code (tzcode, GNU/Linux, Solaris) has been tested on version-3-format - files, and typically works in practice even for time stamps after + files, and typically works in practice even for timestamps after 2037; the only known exception is America/Godthab. - Changes affecting time stamps before 1970 + Changes affecting timestamps before 1970 Pacific/Johnston is now a link to Pacific/Honolulu. This corrects some errors before 1947. @@ -1764,7 +2878,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700 Some zones have been turned into links, when they differ from existing zones only in older data entries that were likely invented or that differ only in LMT or transitions from LMT. These changes affect - only time stamps before 1943. The affected zones are: + only timestamps before 1943. The affected zones are: Africa/Juba, America/Anguilla, America/Aruba, America/Dominica, America/Grenada, America/Guadeloupe, America/Marigot, America/Montserrat, America/St_Barthelemy, America/St_Kitts, @@ -1774,12 +2888,12 @@ Release 2013e - 2013-09-19 23:50:04 -0700 link is better for WWII-era times.) Change Kingston Mean Time from -5:07:12 to -5:07:11. This affects - America/Cayman, America/Jamaica and America/Grand_Turk time stamps + America/Cayman, America/Jamaica and America/Grand_Turk timestamps from 1890 to 1912. Change the UT offset of Bern Mean Time from 0:29:44 to 0:29:46. - This affects Europe/Zurich time stamps from 1853 to 1894. (Thanks - to Alois Treindl). + This affects Europe/Zurich timestamps from 1853 to 1894. (Thanks + to Alois Treindl.) Change the date of the circa-1850 Zurich transition from 1849-09-12 to 1853-07-16, overriding Shanks with data from Messerli about @@ -1796,7 +2910,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700 data can't be summarized using a TZ string, and uses a 402-year window rather than a 400-year window. For the current data, this affects only the Asia/Tehran file. It does not affect any of the - time stamps that this file represents, so zdump outputs the same + timestamps that this file represents, so zdump outputs the same information as before. (Thanks to Andrew Main (Zefram).) The 'date' command has a new '-r' option, which lets you specify @@ -1828,7 +2942,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700 Changes affecting the zdump utility zdump now outputs "UT" when referring to Universal Time, not "UTC". - "UTC" does not make sense for time stamps that predate the introduction + "UTC" does not make sense for timestamps that predate the introduction of UTC, whereas "UT", a more-generic term, does. (Thanks to Steve Allen for clarifying UT vs UTC.) @@ -1839,7 +2953,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700 Remove from zone.tab the names America/Montreal, America/Shiprock, and Antarctica/South_Pole, as they are equivalent to existing - same-country-code zones for post-1970 time stamps. The data entries for + same-country-code zones for post-1970 timestamps. The data entries for these names are unchanged, so the names continue to work as before. Changes affecting code internals @@ -1857,7 +2971,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700 The 'leapseconds' file is now generated automatically from a new file 'leap-seconds.list', which is a copy of - . + A new source file 'leapseconds.awk' implements this. The goal is simplification of the future maintenance of 'leapseconds'. @@ -1899,7 +3013,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700 There is a new section about the accuracy of the tz database, describing the many ways that errors can creep in, and - explaining why so many of the pre-1970 time stamps are wrong or + explaining why so many of the pre-1970 timestamps are wrong or misleading (thanks to Steve Allen, Lester Caine, and Garrett Wollman for discussions that contributed to this). @@ -1934,7 +3048,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700 Release 2013d - 2013-07-05 07:38:01 -0700 - Changes affecting future time stamps: + Changes affecting future timestamps: Morocco's midsummer transitions this year are July 7 and August 10, not July 9 and August 8. (Thanks to Andrew Paprocki.) @@ -1942,7 +3056,7 @@ Release 2013d - 2013-07-05 07:38:01 -0700 Israel now falls back on the last Sunday of October. (Thanks to Ephraim Silverberg.) - Changes affecting past time stamps: + Changes affecting past timestamps: Specify Jerusalem's location more precisely; this changes the pre-1880 times by 2 s. @@ -1980,7 +3094,7 @@ Release 2013d - 2013-07-05 07:38:01 -0700 Release 2013c - 2013-04-19 16:17:40 -0700 - Changes affecting current and future time stamps: + Changes affecting current and future timestamps: Palestine observed DST starting March 29, 2013. (Thanks to Steffen Thorsen.) From 2013 on, Gaza and Hebron both observe DST, @@ -1991,7 +3105,7 @@ Release 2013c - 2013-04-19 16:17:40 -0700 by moving the end of DST to the 4th Sunday in March every year. (Thanks to Carlos Raúl Perasso.) - Changes affecting past time stamps: + Changes affecting past timestamps: Fix some historical data for Palestine to agree with that of timeanddate.com, as follows: @@ -2025,10 +3139,10 @@ Release 2013c - 2013-04-19 16:17:40 -0700 Release 2013b - 2013-03-10 22:33:40 -0700 - Changes affecting current and future time stamps: + Changes affecting current and future timestamps: Haiti uses US daylight-saving rules this year, and presumably future years. - This changes time stamps starting today. (Thanks to Steffen Thorsen.) + This changes timestamps starting today. (Thanks to Steffen Thorsen.) Paraguay will end DST on March 24 this year. (Thanks to Steffen Thorsen.) For now, assume it's just this year. @@ -2052,7 +3166,7 @@ Release 2013a - 2013-02-27 09:20:35 -0800 The zone offset at the end of version-2-format zone files is now allowed to be 24:00, as per POSIX.1-2008. (Thanks to Arthur David Olson.) - Changes affecting current and future time stamps: + Changes affecting current and future timestamps: Chile's 2013 rules, and we guess rules for 2014 and later, will be the same as 2012, namely Apr Sun>=23 03:00 UTC to Sep Sun>=2 04:00 UTC. @@ -2061,9 +3175,9 @@ Release 2013a - 2013-02-27 09:20:35 -0800 New Zones Asia/Khandyga, Asia/Ust-Nera, Europe/Busingen. (Thanks to Tobias Conradi and Arthur David Olson.) - Many changes affect historical time stamps before 1940. + Many changes affect historical timestamps before 1940. These were deduced from: Milne J. Civil time. Geogr J. 1899 - Feb;13(2):173-94 . + Feb;13(2):173-94 . Changes affecting the code: @@ -2089,7 +3203,7 @@ Release 2013a - 2013-02-27 09:20:35 -0800 (Thanks to Arthur David Olson.) Improve the commentary about which districts observe what times - in Russia. (Thanks to Oscar van Vlijmen and Arthur David Olson). + in Russia. (Thanks to Oscar van Vlijmen and Arthur David Olson.) Add web page links to tz.js. @@ -2193,7 +3307,7 @@ Release 2012e - 2012-08-02 20:44:55 -0700 Release code2012c-data2012d - 2012-07-19 16:35:33 -0700 - Changes for Morocco's time stamps, which take effect in a couple of + Changes for Morocco's timestamps, which take effect in a couple of hours, along with infrastructure changes to accommodate how the tz code and data are released on IANA. @@ -2337,12 +3451,12 @@ Release 2011e - 2011-03-31 16:04:38 -0400 Release 2011d - 2011-03-14 09:18:01 -0400 - changes that impact present-day time stamps in Cuba, Samoa, and Turkey + changes that impact present-day timestamps in Cuba, Samoa, and Turkey Release 2011c - 2011-03-07 09:30:09 -0500 - These do affect current time stamps in Chile and Annette Island, Canada. + These do affect current timestamps in Chile and Annette Island, Canada. Release 2011b - 2011-02-07 08:44:50 -0500 @@ -2849,7 +3963,7 @@ Release 2005j - 2005-06-13 14:34:13 -0400 These reflect changes to limit the length of time zone abbreviations and the characters used in those abbreviations. - There are also changes to handle POSIX-style "quoted" time zone + There are also changes to handle POSIX-style "quoted" timezone environment variables. The changes were circulated on the time zone mailing list; the only @@ -3175,7 +4289,7 @@ Release 1999f - 1999-09-23 09:48:14 -0400 Release 1999e - 1999-08-17 15:20:54 -0400 changes circulated by Paul Eggert, although the change to handling - of DST-specifying time zone names has been commented out for now + of DST-specifying timezone names has been commented out for now (search for "XXX" in "localtime.c" for details). These files also do not make any changes to the start of DST in Brazil. @@ -3300,7 +4414,7 @@ Release code1997i-data1997k - 1997-12-29 09:53:41 -0500 Release code1997h-data1997j - 1997-12-18 17:47:35 -0500 - minor changes to put "TZif" at the start of each time zone information file + minor changes to put "TZif" at the start of each timezone information file a rule has also been added to the Makefile so you can make zones @@ -3807,11 +4921,11 @@ few (e.g., code2012c-data2012d) have tarballs with mixed version numbers. Recent releases also come in an experimental format consisting of a single tarball tzdb-R.tar.lz with extra data. -Release time stamps are taken from the release's commit (for newer, +Release timestamps are taken from the release's commit (for newer, Git-based releases), from the newest file in the tarball (for older releases, where this info is available) or from the email announcing -the release (if all else fails; these are marked with a time zone of --0000 and an "is missing!" comment). +the release (if all else fails; these are marked with a time zone +abbreviation of -0000 and an "is missing!" comment). Earlier versions of the code and data were not announced on the tz list and are not summarized here. diff --git a/vendor/tzdata/README b/vendor/tzdata/README index 471fdf9..dd6fcf7 100644 --- a/vendor/tzdata/README +++ b/vendor/tzdata/README @@ -1,36 +1,34 @@ README for the tz distribution -"What time is it?" -- Richard Deacon as The King -"Any time you want it to be." -- Frank Baxter as The Scientist +"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 (often called tz or zoneinfo) contains code and +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 or the -file tz-link.htm for how to acquire the code and data. Once acquired, +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/etc/zdump -v America/Los_Angeles + $HOME/tzdir/usr/bin/zdump -v America/Los_Angeles -Historical local time information has been included here to: +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; + * 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 an idea of the variety that may be - expected in the future; + * Give an idea of the variety of local time rules that have existed + in the past and thus may be expected in the future. -* provide a test of the generality of the local time rule description - system. + * 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 diff --git a/vendor/tzdata/Theory b/vendor/tzdata/Theory deleted file mode 100644 index ea4b35d..0000000 --- a/vendor/tzdata/Theory +++ /dev/null @@ -1,857 +0,0 @@ -Theory and pragmatics of the tz code and data - - ------ Outline ----- - - Scope of the tz database - Names of time zone rules - Time zone abbreviations - Accuracy of the tz database - Time and date functions - Interface stability - Calendrical issues - Time and time zones on Mars - - ------ Scope of the tz database ----- - -The tz database attempts to record the history and predicted future of -all computer-based clocks that track civil time. To represent this -data, the world is partitioned into regions whose clocks all agree -about time stamps that occur after the somewhat-arbitrary cutoff point -of the POSIX Epoch (1970-01-01 00:00:00 UTC). For each such region, -the database records all known clock transitions, and labels the region -with a notable location. Although 1970 is a somewhat-arbitrary -cutoff, there are significant challenges to moving the cutoff earlier -even by a decade or two, due to the wide variety of local practices -before computer timekeeping became prevalent. - -Clock transitions before 1970 are recorded for each such location, -because most systems support time stamps before 1970 and could -misbehave if data entries were omitted for pre-1970 transitions. -However, the database is not designed for and does not suffice for -applications requiring accurate handling of all past times everywhere, -as it would take far too much effort and guesswork to record all -details of pre-1970 civil timekeeping. - -As described below, reference source code for using the tz database is -also available. The tz code is upwards compatible with POSIX, an -international standard for UNIX-like systems. As of this writing, the -current edition of POSIX is: - - The Open Group Base Specifications Issue 7 - IEEE Std 1003.1, 2013 Edition - - - - ------ Names of time zone rules ----- - -Each of the database's time zone rules has a unique name. -Inexperienced users are not expected to select these names unaided. -Distributors should provide documentation and/or a simple selection -interface that explains the names; for one example, see the 'tzselect' -program in the tz code. The Unicode Common Locale Data Repository - contains data that may be useful for other -selection interfaces. - -The time zone rule naming conventions attempt to strike a balance -among the following goals: - - * Uniquely identify every region where clocks have agreed since 1970. - This is essential for the intended use: static clocks keeping local - civil time. - - * Indicate to experts where that region is. - - * Be robust in the presence of political changes. For example, names - of countries are ordinarily not used, to avoid incompatibilities - when countries change their name (e.g. Zaire->Congo) or when - locations change countries (e.g. Hong Kong from UK colony to - China). - - * Be portable to a wide variety of implementations. - - * Use a consistent naming conventions over the entire world. - -Names normally have the form AREA/LOCATION, where AREA is the name -of a continent or ocean, and LOCATION is the name of a specific -location within that region. North and South America share the same -area, 'America'. Typical names are 'Africa/Cairo', 'America/New_York', -and 'Pacific/Honolulu'. - -Here are the general rules used for choosing location names, -in decreasing order of importance: - - Use only valid POSIX file name components (i.e., the parts of - names other than '/'). Do not use the file name - components '.' and '..'. Within a file name component, - use only ASCII letters, '.', '-' and '_'. Do not use - digits, as that might create an ambiguity with POSIX - TZ strings. A file name component must not exceed 14 - characters or start with '-'. E.g., prefer 'Brunei' - to 'Bandar_Seri_Begawan'. Exceptions: see the discussion - of legacy names below. - A name must not be empty, or contain '//', or start or end with '/'. - Do not use names that differ only in case. Although the reference - implementation is case-sensitive, some other implementations - are not, and they would mishandle names differing only in case. - If one name A is an initial prefix of another name AB (ignoring case), - then B must not start with '/', as a regular file cannot have - the same name as a directory in POSIX. For example, - 'America/New_York' precludes 'America/New_York/Bronx'. - Uninhabited regions like the North Pole and Bouvet Island - do not need locations, since local time is not defined there. - There should typically be at least one name for each ISO 3166-1 - officially assigned two-letter code for an inhabited country - or territory. - If all the clocks in a region have agreed since 1970, - don't bother to include more than one location - even if subregions' clocks disagreed before 1970. - Otherwise these tables would become annoyingly large. - If a name is ambiguous, use a less ambiguous alternative; - e.g. many cities are named San José and Georgetown, so - prefer 'Costa_Rica' to 'San_Jose' and 'Guyana' to 'Georgetown'. - Keep locations compact. Use cities or small islands, not countries - or regions, so that any future time zone changes do not split - locations into different time zones. E.g. prefer 'Paris' - to 'France', since France has had multiple time zones. - Use mainstream English spelling, e.g. prefer 'Rome' to 'Roma', and - prefer 'Athens' to the Greek 'Αθήνα' or the Romanized 'Athína'. - The POSIX file name restrictions encourage this rule. - Use the most populous among locations in a zone, - e.g. prefer 'Shanghai' to 'Beijing'. Among locations with - similar populations, pick the best-known location, - e.g. prefer 'Rome' to 'Milan'. - Use the singular form, e.g. prefer 'Canary' to 'Canaries'. - Omit common suffixes like '_Islands' and '_City', unless that - would lead to ambiguity. E.g. prefer 'Cayman' to - 'Cayman_Islands' and 'Guatemala' to 'Guatemala_City', - but prefer 'Mexico_City' to 'Mexico' because the country - of Mexico has several time zones. - Use '_' to represent a space. - Omit '.' from abbreviations in names, e.g. prefer 'St_Helena' - to 'St._Helena'. - Do not change established names if they only marginally - violate the above rules. For example, don't change - the existing name 'Rome' to 'Milan' merely because - Milan's population has grown to be somewhat greater - than Rome's. - If a name is changed, put its old spelling in the 'backward' file. - This means old spellings will continue to work. - -The file 'zone1970.tab' lists geographical locations used to name time -zone rules. It is intended to be an exhaustive list of names for -geographic regions as described above; this is a subset of the names -in the data. Although a 'zone1970.tab' location's longitude -corresponds to its LMT offset with one hour for every 15 degrees east -longitude, this relationship is not exact. - -Older versions of this package used a different naming scheme, -and these older names are still supported. -See the file 'backward' for most of these older names -(e.g., 'US/Eastern' instead of 'America/New_York'). -The other old-fashioned names still supported are -'WET', 'CET', 'MET', and 'EET' (see the file 'europe'). - -Older versions of this package defined legacy names that are -incompatible with the first rule of location names, but which are -still supported. These legacy names are mostly defined in the file -'etcetera'. Also, the file 'backward' defines the legacy names -'GMT0', 'GMT-0', 'GMT+0' and 'Canada/East-Saskatchewan', and the file -'northamerica' defines the legacy names 'EST5EDT', 'CST6CDT', -'MST7MDT', and 'PST8PDT'. - -Excluding 'backward' should not affect the other data. If -'backward' is excluded, excluding 'etcetera' should not affect the -remaining data. - - ------ Time zone abbreviations ----- - -When this package is installed, it generates time zone abbreviations -like 'EST' to be compatible with human tradition and POSIX. -Here are the general rules used for choosing time zone abbreviations, -in decreasing order of importance: - - Use three or more characters that are ASCII alphanumerics or '+' or '-'. - Previous editions of this database also used characters like - ' ' and '?', but these characters have a special meaning to - the shell and cause commands like - set `date` - to have unexpected effects. - Previous editions of this rule required upper-case letters, - but the Congressman who introduced Chamorro Standard Time - preferred "ChST", so lower-case letters are now allowed. - Also, POSIX from 2001 on relaxed the rule to allow '-', '+', - and alphanumeric characters from the portable character set - in the current locale. In practice ASCII alphanumerics and - '+' and '-' are safe in all locales. - - In other words, in the C locale the POSIX extended regular - expression [-+[:alnum:]]{3,} should match the abbreviation. - This guarantees that all abbreviations could have been - specified by a POSIX TZ string. - - Use abbreviations that are in common use among English-speakers, - e.g. 'EST' for Eastern Standard Time in North America. - We assume that applications translate them to other languages - as part of the normal localization process; for example, - a French application might translate 'EST' to 'HNE'. - - For zones whose times are taken from a city's longitude, use the - traditional xMT notation, e.g. 'PMT' for Paris Mean Time. - The only name like this in current use is 'GMT'. - - Use 'LMT' for local mean time of locations before the introduction - of standard time; see "Scope of the tz database". - - If there is no common English abbreviation, use numeric offsets like - -05 and +0830 that are generated by zic's %z notation. - - [The remaining guidelines predate the introduction of %z. - They are problematic as they mean tz data entries invent - notation rather than record it. These guidelines are now - deprecated and the plan is to gradually move to %z for - inhabited locations and to "-00" for uninhabited locations.] - - If there is no common English abbreviation, abbreviate the English - translation of the usual phrase used by native speakers. - If this is not available or is a phrase mentioning the country - (e.g. "Cape Verde Time"), then: - - When a country is identified with a single or principal zone, - append 'T' to the country's ISO code, e.g. 'CVT' for - Cape Verde Time. For summer time append 'ST'; - for double summer time append 'DST'; etc. - Otherwise, take the first three letters of an English place - name identifying each zone and append 'T', 'ST', etc. - as before; e.g. 'VLAST' for VLAdivostok Summer Time. - - Use UT (with time zone abbreviation '-00') for locations while - uninhabited. The leading '-' is a flag that the time - zone is in some sense undefined; this notation is - derived from Internet RFC 3339. - -Application writers should note that these abbreviations are ambiguous -in practice: e.g. 'CST' has a different meaning in China than -it does in the United States. In new applications, it's often better -to use numeric UT offsets like '-0600' instead of time zone -abbreviations like 'CST'; this avoids the ambiguity. - - ------ Accuracy of the tz database ----- - -The tz database is not authoritative, and it surely has errors. -Corrections are welcome and encouraged; see the file CONTRIBUTING. -Users requiring authoritative data should consult national standards -bodies and the references cited in the database's comments. - -Errors in the tz database arise from many sources: - - * The tz database predicts future time stamps, and current predictions - will be incorrect after future governments change the rules. - For example, if today someone schedules a meeting for 13:00 next - October 1, Casablanca time, and tomorrow Morocco changes its - daylight saving rules, software can mess up after the rule change - if it blithely relies on conversions made before the change. - - * The pre-1970 entries in this database cover only a tiny sliver of how - clocks actually behaved; the vast majority of the necessary - information was lost or never recorded. Thousands more zones would - be needed if the tz database's scope were extended to cover even - just the known or guessed history of standard time; for example, - the current single entry for France would need to split into dozens - of entries, perhaps hundreds. And in most of the world even this - approach would be misleading due to widespread disagreement or - indifference about what times should be observed. In her 2015 book - "The Global Transformation of Time, 1870-1950", Vanessa Ogle writes - "Outside of Europe and North America there was no system of time - zones at all, often not even a stable landscape of mean times, - prior to the middle decades of the twentieth century". See: - Timothy Shenk, Booked: A Global History of Time. Dissent 2015-12-17 - https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanessa-ogle - - * Most of the pre-1970 data entries come from unreliable sources, often - astrology books that lack citations and whose compilers evidently - invented entries when the true facts were unknown, without - reporting which entries were known and which were invented. - These books often contradict each other or give implausible entries, - and on the rare occasions when they are checked they are - typically found to be incorrect. - - * For the UK the tz database relies on years of first-class work done by - Joseph Myers and others; see . - Other countries are not done nearly as well. - - * Sometimes, different people in the same city would maintain clocks - that differed significantly. Railway time was used by railroad - companies (which did not always agree with each other), - church-clock time was used for birth certificates, etc. - Often this was merely common practice, but sometimes it was set by law. - For example, from 1891 to 1911 the UT offset in France was legally - 0:09:21 outside train stations and 0:04:21 inside. - - * Although a named location in the tz database stands for the - containing region, its pre-1970 data entries are often accurate for - only a small subset of that region. For example, Europe/London - stands for the United Kingdom, but its pre-1847 times are valid - only for locations that have London's exact meridian, and its 1847 - transition to GMT is known to be valid only for the L&NW and the - Caledonian railways. - - * The tz database does not record the earliest time for which a zone's - data entries are thereafter valid for every location in the region. - For example, Europe/London is valid for all locations in its - region after GMT was made the standard time, but the date of - standardization (1880-08-02) is not in the tz database, other than - in commentary. For many zones the earliest time of validity is - unknown. - - * The tz database does not record a region's boundaries, and in many - cases the boundaries are not known. For example, the zone - America/Kentucky/Louisville represents a region around the city of - Louisville, the boundaries of which are unclear. - - * Changes that are modeled as instantaneous transitions in the tz - database were often spread out over hours, days, or even decades. - - * Even if the time is specified by law, locations sometimes - deliberately flout the law. - - * Early timekeeping practices, even assuming perfect clocks, were - often not specified to the accuracy that the tz database requires. - - * Sometimes historical timekeeping was specified more precisely - than what the tz database can handle. For example, from 1909 to - 1937 Netherlands clocks were legally UT +00:19:32.13, but the tz - database cannot represent the fractional second. - - * Even when all the timestamp transitions recorded by the tz database - are correct, the tz rules that generate them may not faithfully - reflect the historical rules. For example, from 1922 until World - War II the UK moved clocks forward the day following the third - Saturday in April unless that was Easter, in which case it moved - clocks forward the previous Sunday. Because the tz database has no - way to specify Easter, these exceptional years are entered as - separate tz Rule lines, even though the legal rules did not change. - - * The tz database models pre-standard time using the proleptic Gregorian - calendar and local mean time (LMT), but many people used other - calendars and other timescales. For example, the Roman Empire used - the Julian calendar, and had 12 varying-length daytime hours with a - non-hour-based system at night. - - * Early clocks were less reliable, and data entries do not represent - clock error. - - * The tz database assumes Universal Time (UT) as an origin, even - though UT is not standardized for older time stamps. In the tz - database commentary, UT denotes a family of time standards that - includes Coordinated Universal Time (UTC) along with other variants - such as UT1 and GMT, with days starting at midnight. Although UT - equals UTC for modern time stamps, UTC was not defined until 1960, - so commentary uses the more-general abbreviation UT for time stamps - that might predate 1960. Since UT, UT1, etc. disagree slightly, - and since pre-1972 UTC seconds varied in length, interpretation of - older time stamps can be problematic when subsecond accuracy is - needed. - - * Civil time was not based on atomic time before 1972, and we don't - know the history of earth's rotation accurately enough to map SI - seconds to historical solar time to more than about one-hour - accuracy. See: Morrison LV, Stephenson FR. - Historical values of the Earth's clock error Delta T and the - calculation of eclipses. J Hist Astron. 2004;35:327-36 - ; - Historical values of the Earth's clock error. J Hist Astron. 2005;36:339 - . - - * The relationship between POSIX time (that is, UTC but ignoring leap - seconds) and UTC is not agreed upon after 1972. Although the POSIX - clock officially stops during an inserted leap second, at least one - proposed standard has it jumping back a second instead; and in - practice POSIX clocks more typically either progress glacially during - a leap second, or are slightly slowed while near a leap second. - - * The tz database does not represent how uncertain its information is. - Ideally it would contain information about when data entries are - incomplete or dicey. Partial temporal knowledge is a field of - active research, though, and it's not clear how to apply it here. - -In short, many, perhaps most, of the tz database's pre-1970 and future -time stamps are either wrong or misleading. Any attempt to pass the -tz database off as the definition of time should be unacceptable to -anybody who cares about the facts. In particular, the tz database's -LMT offsets should not be considered meaningful, and should not prompt -creation of zones merely because two locations differ in LMT or -transitioned to standard time at different dates. - - ------ Time and date functions ----- - -The tz code contains time and date functions that are upwards -compatible with those of POSIX. - -POSIX has the following properties and limitations. - -* In POSIX, time display in a process is controlled by the - environment variable TZ. Unfortunately, the POSIX TZ string takes - a form that is hard to describe and is error-prone in practice. - Also, POSIX TZ strings can't deal with other (for example, Israeli) - daylight saving time rules, or situations where more than two - time zone abbreviations are used in an area. - - The POSIX TZ string takes the following form: - - stdoffset[dst[offset][,date[/time],date[/time]]] - - where: - - std and dst - are 3 or more characters specifying the standard - and daylight saving time (DST) zone names. - Starting with POSIX.1-2001, std and dst may also be - in a quoted form like ""; this allows - "+" and "-" in the names. - offset - is of the form '[+-]hh:[mm[:ss]]' and specifies the - offset west of UT. 'hh' may be a single digit; 0<=hh<=24. - The default DST offset is one hour ahead of standard time. - date[/time],date[/time] - specifies the beginning and end of DST. If this is absent, - the system supplies its own rules for DST, and these can - differ from year to year; typically US DST rules are used. - time - takes the form 'hh:[mm[:ss]]' and defaults to 02:00. - This is the same format as the offset, except that a - leading '+' or '-' is not allowed. - date - takes one of the following forms: - Jn (1<=n<=365) - origin-1 day number not counting February 29 - n (0<=n<=365) - origin-0 day number counting February 29 if present - Mm.n.d (0[Sunday]<=d<=6[Saturday], 1<=n<=5, 1<=m<=12) - for the dth day of week n of month m of the year, - where week 1 is the first week in which day d appears, - and '5' stands for the last week in which day d appears - (which may be either the 4th or 5th week). - Typically, this is the only useful form; - the n and Jn forms are rarely used. - - Here is an example POSIX TZ string, for US Pacific time using rules - appropriate from 1987 through 2006: - - TZ='PST8PDT,M4.1.0/02:00,M10.5.0/02:00' - - This POSIX TZ string is hard to remember, and mishandles time stamps - before 1987 and after 2006. With this package you can use this - instead: - - TZ='America/Los_Angeles' - -* POSIX does not define the exact meaning of TZ values like "EST5EDT". - Typically the current US DST rules are used to interpret such values, - but this means that the US DST rules are compiled into each program - that does time conversion. This means that when US time conversion - rules change (as in the United States in 1987), all programs that - do time conversion must be recompiled to ensure proper results. - -* The TZ environment variable is process-global, which makes it hard - to write efficient, thread-safe applications that need access - to multiple time zones. - -* In POSIX, there's no tamper-proof way for a process to learn the - system's best idea of local wall clock. (This is important for - applications that an administrator wants used only at certain times - - without regard to whether the user has fiddled the "TZ" environment - variable. While an administrator can "do everything in UTC" to get - around the problem, doing so is inconvenient and precludes handling - daylight saving time shifts - as might be required to limit phone - calls to off-peak hours.) - -* POSIX provides no convenient and efficient way to determine the UT - offset and time zone abbreviation of arbitrary time stamps, - particularly for time zone settings that do not fit into the - POSIX model. - -* POSIX requires that systems ignore leap seconds. - -* The tz code attempts to support all the time_t implementations - allowed by POSIX. The time_t type represents a nonnegative count of - seconds since 1970-01-01 00:00:00 UTC, ignoring leap seconds. - In practice, time_t is usually a signed 64- or 32-bit integer; 32-bit - signed time_t values stop working after 2038-01-19 03:14:07 UTC, so - new implementations these days typically use a signed 64-bit integer. - Unsigned 32-bit integers are used on one or two platforms, - and 36-bit and 40-bit integers are also used occasionally. - Although earlier POSIX versions allowed time_t to be a - floating-point type, this was not supported by any practical - systems, and POSIX.1-2013 and the tz code both require time_t - to be an integer type. - -These are the extensions that have been made to the POSIX functions: - -* The "TZ" environment variable is used in generating the name of a file - from which time zone information is read (or is interpreted a la - POSIX); "TZ" is no longer constrained to be a three-letter time zone - name followed by a number of hours and an optional three-letter - daylight time zone name. The daylight saving time rules to be used - for a particular time zone are encoded in the time zone file; - the format of the file allows U.S., Australian, and other rules to be - encoded, and allows for situations where more than two time zone - abbreviations are used. - - It was recognized that allowing the "TZ" environment variable to - take on values such as "America/New_York" might cause "old" programs - (that expect "TZ" to have a certain form) to operate incorrectly; - consideration was given to using some other environment variable - (for example, "TIMEZONE") to hold the string used to generate the - time zone information file name. In the end, however, it was decided - to continue using "TZ": it is widely used for time zone purposes; - separately maintaining both "TZ" and "TIMEZONE" seemed a nuisance; - and systems where "new" forms of "TZ" might cause problems can simply - use TZ values such as "EST5EDT" which can be used both by - "new" programs (a la POSIX) and "old" programs (as zone names and - offsets). - -* The code supports platforms with a UT offset member in struct tm, - e.g., tm_gmtoff. - -* The code supports platforms with a time zone abbreviation member in - struct tm, e.g., tm_zone. - -* Since the "TZ" environment variable can now be used to control time - conversion, the "daylight" and "timezone" variables are no longer - needed. (These variables are defined and set by "tzset"; however, their - values will not be used by "localtime.") - -* Functions tzalloc, tzfree, localtime_rz, and mktime_z for - more-efficient thread-safe applications that need to use - multiple time zones. The tzalloc and tzfree functions - allocate and free objects of type timezone_t, and localtime_rz - and mktime_z are like localtime_r and mktime with an extra - timezone_t argument. The functions were inspired by NetBSD. - -* A function "tzsetwall" has been added to arrange for the system's - best approximation to local wall clock time to be delivered by - subsequent calls to "localtime." Source code for portable - applications that "must" run on local wall clock time should call - "tzsetwall();" if such code is moved to "old" systems that don't - provide tzsetwall, you won't be able to generate an executable program. - (These time zone functions also arrange for local wall clock time to be - used if tzset is called - directly or indirectly - and there's no "TZ" - environment variable; portable applications should not, however, rely - on this behavior since it's not the way SVR2 systems behave.) - -* Negative time_t values are supported, on systems where time_t is signed. - -* These functions can account for leap seconds, thanks to Bradley White. - -Points of interest to folks with other systems: - -* Code compatible with this package is already part of many platforms, - including GNU/Linux, Android, the BSDs, Chromium OS, Cygwin, AIX, iOS, - BlackBery 10, macOS, Microsoft Windows, OpenVMS, and Solaris. - On such hosts, the primary use of this package - is to update obsolete time zone rule tables. - To do this, you may need to compile the time zone compiler - 'zic' supplied with this package instead of using the system 'zic', - since the format of zic's input is occasionally extended, - and a platform may still be shipping an older zic. - -* The UNIX Version 7 "timezone" function is not present in this package; - it's impossible to reliably map timezone's arguments (a "minutes west - of GMT" value and a "daylight saving time in effect" flag) to a - time zone abbreviation, and we refuse to guess. - Programs that in the past used the timezone function may now examine - tzname[localtime(&clock)->tm_isdst] to learn the correct time - zone abbreviation to use. Alternatively, use - localtime(&clock)->tm_zone if this has been enabled. - -* The 4.2BSD gettimeofday function is not used in this package. - This formerly let users obtain the current UTC offset and DST flag, - but this functionality was removed in later versions of BSD. - -* In SVR2, time conversion fails for near-minimum or near-maximum - time_t values when doing conversions for places that don't use UT. - This package takes care to do these conversions correctly. - A comment in the source code tells how to get compatibly wrong - results. - -The functions that are conditionally compiled if STD_INSPIRED is defined -should, at this point, be looked on primarily as food for thought. They are -not in any sense "standard compatible" - some are not, in fact, specified in -*any* standard. They do, however, represent responses of various authors to -standardization proposals. - -Other time conversion proposals, in particular the one developed by folks at -Hewlett Packard, offer a wider selection of functions that provide capabilities -beyond those provided here. The absence of such functions from this package -is not meant to discourage the development, standardization, or use of such -functions. Rather, their absence reflects the decision to make this package -contain valid extensions to POSIX, to ensure its broad acceptability. If -more powerful time conversion functions can be standardized, so much the -better. - - ------ Interface stability ----- - -The tz code and data supply the following interfaces: - - * A set of zone names as per "Names of time zone rules" above. - - * Library functions described in "Time and date functions" above. - - * The programs tzselect, zdump, and zic, documented in their man pages. - - * The format of zic input files, documented in the zic man page. - - * The format of zic output files, documented in the tzfile man page. - - * The format of zone table files, documented in zone1970.tab. - - * The format of the country code file, documented in iso3166.tab. - - * The version number of the code and data, as the first line of - the text file 'version' in each release. - -Interface changes in a release attempt to preserve compatibility with -recent releases. For example, tz data files typically do not rely on -recently-added zic features, so that users can run older zic versions -to process newer data files. The tz-link.htm file describes how -releases are tagged and distributed. - -Interfaces not listed above are less stable. For example, users -should not rely on particular UT offsets or abbreviations for time -stamps, as data entries are often based on guesswork and these guesses -may be corrected or improved. - - ------ Calendrical issues ----- - -Calendrical issues are a bit out of scope for a time zone database, -but they indicate the sort of problems that we would run into if we -extended the time zone database further into the past. An excellent -resource in this area is Nachum Dershowitz and Edward M. Reingold, -Calendrical Calculations: Third Edition, Cambridge University Press (2008) -. -Other information and sources are given below. 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? - -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 one obvious typo 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, - Turgau, 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. - - ------ Time and time zones on Mars ----- - -Some people's work schedules use Mars time. Jet Propulsion Laboratory -(JPL) coordinators have kept Mars time on and off at least since 1997 -for the Mars Pathfinder mission. Some of their family members have -also adapted to Mars time. Dozens of special Mars watches were built -for JPL workers who kept Mars time during the Mars Exploration -Rovers mission (2004). These timepieces look like normal Seikos and -Citizens but use Mars seconds rather than terrestrial seconds. - -A Mars solar day is called a "sol" and has a mean period equal to -about 24 hours 39 minutes 35.244 seconds in terrestrial time. It is -divided into a conventional 24-hour clock, so each Mars second equals -about 1.02749125 terrestrial seconds. - -The prime meridian of Mars goes through the center of the crater -Airy-0, named in honor of the British astronomer who built the -Greenwich telescope that defines Earth's prime meridian. Mean solar -time on the Mars prime meridian is called Mars Coordinated Time (MTC). - -Each landed mission on Mars has adopted a different reference for -solar time keeping, so there is no real standard for Mars time zones. -For example, the Mars Exploration Rover project (2004) defined two -time zones "Local Solar Time A" and "Local Solar Time B" for its two -missions, each zone designed so that its time equals local true solar -time at approximately the middle of the nominal mission. Such a "time -zone" is not particularly suited for any application other than the -mission itself. - -Many calendars have been proposed for Mars, but none have achieved -wide acceptance. Astronomers often use Mars Sol Date (MSD) which is a -sequential count of Mars solar days elapsed since about 1873-12-29 -12:00 GMT. - -The tz database does not currently support Mars time, but it is -documented here in the hopes that support will be added eventually. - -Sources: - -Michael Allison and Robert Schmunk, -"Technical Notes on Mars Solar Time as Adopted by the Mars24 Sunclock" - (2012-08-08). - -Jia-Rui Chong, "Workdays Fit for a Martian", Los Angeles Times - -(2004-01-14), pp A1, A20-A21. - -Tom Chmielewski, "Jet Lag Is Worse on Mars", The Atlantic (2015-02-26) - - ------ - -This file is in the public domain, so clarified as of 2009-05-17 by -Arthur David Olson. - ------ -Local Variables: -coding: utf-8 -End: diff --git a/vendor/tzdata/africa b/vendor/tzdata/africa index f30c910..feb6017 100644 --- a/vendor/tzdata/africa +++ b/vendor/tzdata/africa @@ -1,3 +1,5 @@ +# tzdb data for Africa and environs + # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -6,15 +8,15 @@ # tz@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. -# From Paul Eggert (2014-10-31): +# From Paul Eggert (2018-05-27): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), # San Diego: ACS Publications, Inc. (2003). # Unfortunately this book contains many errors and cites no sources. # -# Gwillim Law writes that a good source -# for recent time zone data is the International Air Transport +# Many years ago Gwillim Law wrote that a good source +# for time zone data was the International Air Transport # Association's Standard Schedules Information Manual (IATA SSIM), # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. Except where otherwise noted, @@ -26,44 +28,40 @@ # # For data circa 1899, a common source is: # Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. -# http://www.jstor.org/stable/1774359 +# https://www.jstor.org/stable/1774359 # # A reliable and entertaining source about time zones is # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). # +# European-style abbreviations are commonly used along the Mediterranean. +# For sub-Saharan Africa abbreviations were less standardized. # Previous editions of this database used WAT, CAT, SAT, and EAT -# for +0:00 through +3:00, respectively, -# but Mark R V Murray reports that -# 'SAST' is the official abbreviation for +2:00 in the country of South Africa, -# 'CAT' is commonly used for +2:00 in countries north of South Africa, and -# 'WAT' is probably the best name for +1:00, as the common phrase for +# for UT +00 through +03, respectively, +# but in 1997 Mark R V Murray reported that +# 'SAST' is the official abbreviation for +02 in the country of South Africa, +# 'CAT' is commonly used for +02 in countries north of South Africa, and +# 'WAT' is probably the best name for +01, as the common phrase for # the area that includes Nigeria is "West Africa". -# He has heard of "Western Sahara Time" for +0:00 but can find no reference. -# -# To make things confusing, 'WAT' seems to have been used for -1:00 long ago; -# I'd guess that this was because people needed _some_ name for -1:00, -# and at the time, far west Africa was the only major land area in -1:00. -# This usage is now obsolete, as the last use of -1:00 on the African -# mainland seems to have been 1976 in Western Sahara. -# -# To summarize, the following abbreviations seem to have some currency: -# -1:00 WAT West Africa Time (no longer used) -# 0:00 GMT Greenwich Mean Time -# 2:00 CAT Central Africa Time -# 2:00 SAST South Africa Standard Time -# and Murray suggests the following abbreviation: -# 1:00 WAT West Africa Time -# I realize that this leads to 'WAT' being used for both -1:00 and 1:00 -# for times before 1976, but this is the best I can think of -# until we get more information. -# -# I invented the following abbreviations; corrections are welcome! -# 2:00 WAST West Africa Summer Time -# 2:30 BEAT British East Africa Time (no longer used) -# 2:45 BEAUT British East Africa Unified Time (no longer used) -# 3:00 CAST Central Africa Summer Time (no longer used) -# 3:00 SAST South Africa Summer Time (no longer used) -# 3:00 EAT East Africa Time +# +# To summarize, the following abbreviations seemed to have some currency: +# +00 GMT Greenwich Mean Time +# +02 CAT Central Africa Time +# +02 SAST South Africa Standard Time +# and Murray suggested the following abbreviation: +# +01 WAT West Africa Time +# Murray's suggestion seems to have caught on in news reports and the like. +# I vaguely recall 'WAT' also being used for -01 in the past but +# cannot now come up with solid citations. +# +# I invented the following abbreviations in the 1990s: +# +02 WAST West Africa Summer Time +# +03 CAST Central Africa Summer Time +# +03 SAST South Africa Summer Time +# +03 EAT East Africa Time +# 'EAT' seems to have caught on and is in current timestamps, and though +# the other abbreviations are rarer and are only in past timestamps, +# they are paired with better-attested non-DST abbreviations. +# Corrections are welcome. # Algeria # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -91,7 +89,7 @@ Rule Algeria 1980 only - Apr 25 0:00 1:00 S Rule Algeria 1980 only - Oct 31 2:00 0 - # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's # more precise 0:09:21. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time 0:00 Algeria WE%sT 1940 Feb 25 2:00 @@ -121,23 +119,23 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 # Cape Verde / Cabo Verde # -# Shanks gives 1907 for the transition to CVT. -# Perhaps the 1911-05-26 Portuguese decree -# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf -# merely made it official? +# From Paul Eggert (2018-02-16): +# Shanks gives 1907 for the transition to +02. +# For now, ignore that and follow the 1911-05-26 Portuguese decree +# (see Europe/Lisbon). # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Atlantic/Cape_Verde -1:34:04 - LMT 1907 # Praia - -2:00 - CVT 1942 Sep - -2:00 1:00 CVST 1945 Oct 15 - -2:00 - CVT 1975 Nov 25 2:00 - -1:00 - CVT +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia + -2:00 - -02 1942 Sep + -2:00 1:00 -01 1945 Oct 15 + -2:00 - -02 1975 Nov 25 2:00 + -1:00 - -01 # Central African Republic # See Africa/Lagos. # Chad -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena 1:00 - WAT 1979 Oct 14 1:00 1:00 WAST 1980 Mar 8 @@ -153,7 +151,7 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena # See Africa/Lagos. # Côte d'Ivoire / Ivory Coast -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Abidjan -0:16:08 - LMT 1912 0:00 - GMT Link Africa/Abidjan Africa/Bamako # Mali @@ -164,7 +162,6 @@ Link Africa/Abidjan Africa/Freetown # Sierra Leone Link Africa/Abidjan Africa/Lome # Togo Link Africa/Abidjan Africa/Nouakchott # Mauritania Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso -Link Africa/Abidjan Africa/Sao_Tome # São Tomé and Príncipe Link Africa/Abidjan Atlantic/St_Helena # St Helena # Djibouti @@ -224,7 +221,7 @@ Rule Egypt 2006 only - Sep 21 24:00 0 - # saving time in Egypt will end in the night of 2007-09-06 to 2007-09-07. # From Jesper Nørgaard Welen (2007-08-15): [The following agree:] # http://www.nentjes.info/Bill/bill5.htm -# http://www.timeanddate.com/worldclock/city.html?n=53 +# https://www.timeanddate.com/worldclock/city.html?n=53 # From Steffen Thorsen (2007-09-04): The official information...: # http://www.sis.gov.eg/En/EgyptOnline/Miscellaneous/000002/0207000000000000001580.htm Rule Egypt 2007 only - Sep Thu>=1 24:00 0 - @@ -262,8 +259,8 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 - # timeanddate[2] and another site I've found[3] also support that. # # [1] https://bugzilla.redhat.com/show_bug.cgi?id=492263 -# [2] http://www.timeanddate.com/worldclock/clockchange.html?n=53 -# [3] http://wwp.greenwichmeantime.com/time-zone/africa/egypt/ +# [2] https://www.timeanddate.com/worldclock/clockchange.html?n=53 +# [3] https://wwp.greenwichmeantime.com/time-zone/africa/egypt/ # From Arthur David Olson (2009-04-20): # In 2009 (and for the next several years), Ramadan ends before the fourth @@ -273,10 +270,10 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 - # From Steffen Thorsen (2009-08-11): # We have been able to confirm the August change with the Egyptian Cabinet # Information and Decision Support Center: -# http://www.timeanddate.com/news/time/egypt-dst-ends-2009.html +# https://www.timeanddate.com/news/time/egypt-dst-ends-2009.html # # The Middle East News Agency -# http://www.mena.org.eg/index.aspx +# https://www.mena.org.eg/index.aspx # also reports "Egypt starts winter time on August 21" # today in article numbered "71, 11/08/2009 12:25 GMT." # Only the title above is available without a subscription to their service, @@ -326,7 +323,7 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 - # Thursday of April.... Clocks will still be turned back for Ramadan, but # dates not yet announced.... # http://almogaz.com/news/weird-news/2015/04/05/1947105 ... -# http://www.timeanddate.com/news/time/egypt-starts-dst-2015.html +# https://www.timeanddate.com/news/time/egypt-starts-dst-2015.html # From Ahmed Nazmy (2015-04-20): # Egypt's ministers cabinet just announced ... that it will cancel DST at @@ -359,7 +356,7 @@ Rule Egypt 2014 only - Jun 26 24:00 0 - Rule Egypt 2014 only - Jul 31 24:00 1:00 S Rule Egypt 2014 only - Sep lastThu 24:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Cairo 2:05:09 - LMT 1900 Oct 2:00 Egypt EE%sT @@ -367,8 +364,20 @@ Zone Africa/Cairo 2:05:09 - LMT 1900 Oct # See Africa/Lagos. # Eritrea +# See Africa/Nairobi. + +# Eswatini (formerly Swaziland) +# See Africa/Johannesburg. + # Ethiopia # See Africa/Nairobi. +# +# Unfortunately tzdb records only Western clock time in use in Ethiopia, +# as the tzdb format is not up to properly recording a common Ethiopian +# timekeeping practice that is based on solar time. See: +# Mortada D. If you have a meeting in Ethiopia, you'd better double +# check the time. PRI's The World. 2015-01-30 15:15 -05. +# https://www.pri.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time # Gabon # See Africa/Lagos. @@ -377,40 +386,59 @@ Zone Africa/Cairo 2:05:09 - LMT 1900 Oct # See Africa/Abidjan. # Ghana -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S + +# From Paul Eggert (2018-01-30): # Whitman says DST was observed from 1931 to "the present"; -# Shanks & Pottenger say 1936 to 1942; -# and September 1 to January 1 is given by: -# Scott Keltie J, Epstein M (eds), The Statesman's Year-Book, -# 57th ed. Macmillan, London (1920), OCLC 609408015, pp xxviii. -# For lack of better info, assume DST was observed from 1920 to 1942. -Rule Ghana 1920 1942 - Sep 1 0:00 0:20 GHST -Rule Ghana 1920 1942 - Dec 31 0:00 0 GMT -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Shanks & Pottenger say 1936 to 1942 with 20 minutes of DST, +# with transitions on 09-01 and 12-31 at 00:00. +# Page 33 of Parish GCB, Colonial Reports - Annual. No. 1066. Gold +# Coast. Report for 1919. (March 1921), OCLC 784024077 +# http://libsysdigi.library.illinois.edu/ilharvest/africana/books2011-05/5530214/5530214_1919/5530214_1919_opt.pdf +# lists the Determination of the Time Ordinance, 1919, No. 18, +# "to advance the time observed locally by the space of twenty minutes +# during the last four months of each year; the object in view being +# to extend during those months the period of daylight-time available +# for evening recreation after office hours." +# Vanessa Ogle, The Global Transformation of Time, 1870-1950 (2015), p 33, +# writes "In 1919, the Gold Coast (Ghana as of 1957) made Greenwich +# time its legal time and simultaneously legalized a summer time of +# UTC - 00:20 minutes from March to October."; a footnote lists +# the ordinance as being dated 1919-11-24. +# The Crown Colonist, Volume 12 (1942), p 176, says "the Government +# intend advancing Gold Coast time half an hour ahead of G.M.T. +# The actual date of the alteration has not yet been announced." +# These sources are incomplete and contradictory. Possibly what is +# now Ghana observed different DST regimes in different years. For +# lack of better info, use Shanks except treat the minus sign as a +# typo, and assume DST started in 1920 not 1936. +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Ghana 1920 1942 - Sep 1 0:00 0:20 - +Rule Ghana 1920 1942 - Dec 31 0:00 0 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Accra -0:00:52 - LMT 1918 - 0:00 Ghana %s + 0:00 Ghana GMT/+0020 # Guinea # See Africa/Abidjan. # Guinea-Bissau # +# From Paul Eggert (2018-02-16): # Shanks gives 1911-05-26 for the transition to WAT, # evidently confusing the date of the Portuguese decree -# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf -# with the date that it took effect, namely 1912-01-01. +# (see Europe/Lisbon) with the date that it took effect. # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 - -1:00 - WAT 1975 +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u + -1:00 - -01 1975 0:00 - GMT # Kenya -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Nairobi 2:27:16 - LMT 1928 Jul 3:00 - EAT 1930 - 2:30 - BEAT 1940 - 2:45 - BEAUT 1960 + 2:30 - +0230 1940 + 2:45 - +0245 1960 3:00 - EAT Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia Link Africa/Nairobi Africa/Asmara # Eritrea @@ -426,18 +454,25 @@ Link Africa/Nairobi Indian/Mayotte # See Africa/Johannesburg. # Liberia -# From Paul Eggert (2006-03-22): -# In 1972 Liberia was the last country to switch -# from a UTC offset that was not a multiple of 15 or 20 minutes. -# Howse reports that it was in honor of their president's birthday. -# Shank & Pottenger report the date as May 1, whereas Howse reports Jan; -# go with Shanks & Pottenger. -# For Liberia before 1972, Shanks & Pottenger report -0:44, whereas Howse and -# Whitman each report -0:44:30; go with the more precise figure. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# +# From Paul Eggert (2017-03-02): +# +# The Nautical Almanac for the Year 1970, p 264, is the source for -0:44:30. +# +# In 1972 Liberia was the last country to switch from a UT offset +# that was not a multiple of 15 or 20 minutes. The 1972 change was on +# 1972-01-07, according to an entry dated 1972-01-04 on p 330 of: +# Presidential Papers: First year of the administration of +# President William R. Tolbert, Jr., July 23, 1971-July 31, 1972. +# Monrovia: Executive Mansion. +# +# Use the abbreviation "MMT" before 1972, as the more-accurate numeric +# abbreviation "-004430" would be one byte over the POSIX limit. +# +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Monrovia -0:43:08 - LMT 1882 -0:43:08 - MMT 1919 Mar # Monrovia Mean Time - -0:44:30 - LRT 1972 May # Liberia Time + -0:44:30 - MMT 1972 Jan 7 # approximately MMT 0:00 - GMT ############################################################################### @@ -446,11 +481,11 @@ Zone Africa/Monrovia -0:43:08 - LMT 1882 # From Even Scharning (2012-11-10): # Libya set their time one hour back at 02:00 on Saturday November 10. -# http://www.libyaherald.com/2012/11/04/clocks-to-go-back-an-hour-on-saturday/ +# https://www.libyaherald.com/2012/11/04/clocks-to-go-back-an-hour-on-saturday/ # Here is an official source [in Arabic]: http://ls.ly/fb6Yc # # Steffen Thorsen forwarded a translation (2012-11-10) in -# http://mm.icann.org/pipermail/tz/2012-November/018451.html +# https://mm.icann.org/pipermail/tz/2012-November/018451.html # # From Tim Parenti (2012-11-11): # Treat the 2012-11-10 change as a zone change from UTC+2 to UTC+1. @@ -461,7 +496,7 @@ Zone Africa/Monrovia -0:43:08 - LMT 1882 # From Even Scharning (2013-10-25): # The scheduled end of DST in Libya on Friday, October 25, 2013 was # cancelled yesterday.... -# http://www.libyaherald.com/2013/10/24/correction-no-time-change-tomorrow/ +# https://www.libyaherald.com/2013/10/24/correction-no-time-change-tomorrow/ # # From Paul Eggert (2013-10-25): # For now, assume they're reverting to the pre-2012 rules of permanent UT +02. @@ -484,7 +519,7 @@ Rule Libya 1997 only - Apr 4 0:00 1:00 S Rule Libya 1997 only - Oct 4 0:00 0 - Rule Libya 2013 only - Mar lastFri 1:00 1:00 S Rule Libya 2013 only - Oct lastFri 2:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Tripoli 0:52:44 - LMT 1920 1:00 Libya CE%sT 1959 2:00 - EET 1982 @@ -514,7 +549,7 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920 # basis.... # It seems that Mauritius observed daylight saving time from 1982-10-10 to # 1983-03-20 as well, but that was not successful.... -# http://www.timeanddate.com/news/time/mauritius-daylight-saving-time.html +# https://www.timeanddate.com/news/time/mauritius-daylight-saving-time.html # From Alex Krivenyshev (2008-06-25): # http://economicdevelopment.gov.mu/portal/site/Mainhomepage/menuitem.a42b24128104d9845dabddd154508a0c/?content_id=0a7cee8b5d69a110VgnVCM1000000a04a8c0RCRD @@ -582,7 +617,7 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920 # http://lexpress.mu/Story/3398~Beebeejaun---Les-objectifs-d-%C3%A9conomie-d-%C3%A9nergie-de-l-heure-d-%C3%A9t%C3%A9-ont-%C3%A9t%C3%A9-atteints- # # Our wrap-up: -# http://www.timeanddate.com/news/time/mauritius-dst-will-not-repeat.html +# https://www.timeanddate.com/news/time/mauritius-dst-will-not-repeat.html # From Arthur David Olson (2009-07-11): # The "mauritius-dst-will-not-repeat" wrapup includes this: @@ -590,13 +625,13 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920 # at 2am (or 02:00) local time..." # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Mauritius 1982 only - Oct 10 0:00 1:00 S +Rule Mauritius 1982 only - Oct 10 0:00 1:00 - Rule Mauritius 1983 only - Mar 21 0:00 0 - -Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 S +Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 - Rule Mauritius 2009 only - Mar lastSun 2:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis - 4:00 Mauritius MU%sT # Mauritius Time + 4:00 Mauritius +04/+05 # Agalega Is, Rodriguez # no information; probably like Indian/Mauritius @@ -614,7 +649,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # be one hour ahead of GMT between 1 June and 27 September, according to # Communication Minister and Government Spokesman, Khalid Naciri...." # -# http://www.worldtimezone.net/dst_news/dst_news_morocco01.html +# http://www.worldtimezone.com/dst_news/dst_news_morocco01.html # http://en.afrik.com/news11892.html # From Alex Krivenyshev (2008-05-09): @@ -627,7 +662,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # From Patrice Scattolin (2008-05-09): # According to this article: -# http://www.avmaroc.com/actualite/heure-dete-comment-a127896.html +# https://www.avmaroc.com/actualite/heure-dete-comment-a127896.html # (and republished here: ) # the changes occur at midnight: # @@ -649,7 +684,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # posted in English). # # The following Google query will generate many relevant hits: -# http://www.google.com/search?hl=en&q=Conseil+de+gouvernement+maroc+heure+avance&btnG=Search +# https://www.google.com/search?hl=en&q=Conseil+de+gouvernement+maroc+heure+avance&btnG=Search # From Steffen Thorsen (2008-08-27): # Morocco will change the clocks back on the midnight between August 31 @@ -660,7 +695,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # http://www.menara.ma/fr/Actualites/Maroc/Societe/ci.retour_a_l_heure_gmt_a_partir_du_dimanche_31_aout_a_minuit_officiel_.default # # We have some further details posted here: -# http://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html +# https://www.timeanddate.com/news/time/morocco-ends-dst-early-2008.html # From Steffen Thorsen (2009-03-17): # Morocco will observe DST from 2009-06-01 00:00 to 2009-08-21 00:00 according @@ -670,7 +705,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # (French) # # Our summary: -# http://www.timeanddate.com/news/time/morocco-starts-dst-2009.html +# https://www.timeanddate.com/news/time/morocco-starts-dst-2009.html # From Alexander Krivenyshev (2009-03-17): # Here is a link to official document from Royaume du Maroc Premier Ministre, @@ -693,7 +728,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # http://www.lavieeco.com/actualites/4099-le-maroc-passera-a-l-heure-d-ete-gmt1-le-2-mai.html # (French) # Our page: -# http://www.timeanddate.com/news/time/morocco-starts-dst-2010.html +# https://www.timeanddate.com/news/time/morocco-starts-dst-2010.html # From Dan Abitol (2011-03-30): # ...Rules for Africa/Casablanca are the following (24h format) @@ -710,7 +745,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # They said that the decision was already taken. # # More articles in the press -# http://www.yabiladi.com/articles/details/5058/secret-l-heure-d-ete-maroc-leve.html +# https://www.yabiladi.com/articles/details/5058/secret-l-heure-d-ete-maroc-leve.html # http://www.lematin.ma/Actualite/Express/Article.asp?id=148923 # http://www.lavieeco.com/actualite/Le-Maroc-passe-sur-GMT%2B1-a-partir-de-dim @@ -802,7 +837,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # 1433 (18 April 2012) and the decision of the Head of Government of # 16 N. 3-29-15 Chaaban 1435 (4 June 2015). # Source (french): -# http://lnt.ma/le-maroc-reculera-dune-heure-le-dimanche-14-juin/ +# https://lnt.ma/le-maroc-reculera-dune-heure-le-dimanche-14-juin/ # # From Milamber (2015-06-09): # http://www.mmsp.gov.ma/fr/actualites.aspx?id=863 @@ -811,19 +846,38 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # [The gov.ma announcement] would (probably) make the switch on 2015-07-19 go # from 03:00 to 04:00 rather than from 02:00 to 03:00, as in the patch.... # I think the patch is correct and the quoted text is wrong; the text in -# agrees +# agrees # with the patch. -# From Paul Eggert (2015-06-08): -# For now, guess that later spring and fall transitions will use 2015's rules, -# and guess that Morocco will switch to standard time at 03:00 the last -# Sunday before Ramadan, and back to DST at 02:00 the first Sunday after -# Ramadan. To implement this, transition dates for 2016 through 2037 were -# determined by running the following program under GNU Emacs 24.3, with the -# results integrated by hand into the table below. -# (let ((islamic-year 1437)) +# From Mohamed Essedik Najd (2018-10-26): +# Today, a Moroccan government council approved the perpetual addition +# of 60 minutes to the regular Moroccan timezone. +# From Matt Johnson (2018-10-28): +# http://www.sgg.gov.ma/Portals/1/BO/2018/BO_6720-bis_Ar.pdf +# +# From Maamar Abdelkader (2018-11-01): +# We usually move clocks back the previous week end and come back to the +1 +# the week end after.... The government does not announce yet the decision +# about this temporary change. But it s 99% sure that it will be the case, +# as in previous years. An unofficial survey was done these days, showing +# that 64% of asked people are ok for moving from +1 to +0 during Ramadan. +# https://leconomiste.com/article/1035870-enquete-l-economiste-sunergia-64-des-marocains-plebiscitent-le-gmt-pendant-ramadan + +# From Naoufal Semlali (2019-04-16): +# Morocco will be on GMT starting from Sunday, May 5th 2019 at 3am. +# The switch to GMT+1 will occur on Sunday, June 9th 2019 at 2am.... +# http://fr.le360.ma/societe/voici-la-date-du-retour-a-lheure-legale-au-maroc-188222 +# +# From Paul Eggert (2019-05-20): +# This agrees with our 2018-11-01 guess that the Moroccan government +# would continue the practice of falling back at 03:00 the last Sunday +# before Ramadan, and of springing forward at 02:00 the first Sunday after +# Ramadan, as this has been the practice since 2012. To implement this, +# transition dates for 2019 through 2087 were determined by running the +# following program under GNU Emacs 26.2. +# (let ((islamic-year 1440)) # (require 'cal-islam) -# (while (< islamic-year 1460) +# (while (< islamic-year 1511) # (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year))) # (b (calendar-islamic-to-absolute (list 10 1 islamic-year))) # (sunday 0)) @@ -834,74 +888,207 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis # (setq b (calendar-gregorian-from-absolute b)) # (insert # (format -# (concat "Rule\tMorocco\t%d\tonly\t-\t%s\t%2d\t 3:00\t0\t-\n" -# "Rule\tMorocco\t%d\tonly\t-\t%s\t%2d\t 2:00\t1:00\tS\n") +# (concat "Rule\tMorocco\t%d\tonly\t-\t%s\t%2d\t 3:00\t-1:00\t-\n" +# "Rule\tMorocco\t%d\tonly\t-\t%s\t%2d\t 2:00\t0\t-\n") # (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a)) # (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b))))) # (setq islamic-year (+ 1 islamic-year)))) # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S - -Rule Morocco 1939 only - Sep 12 0:00 1:00 S +Rule Morocco 1939 only - Sep 12 0:00 1:00 - Rule Morocco 1939 only - Nov 19 0:00 0 - -Rule Morocco 1940 only - Feb 25 0:00 1:00 S +Rule Morocco 1940 only - Feb 25 0:00 1:00 - Rule Morocco 1945 only - Nov 18 0:00 0 - -Rule Morocco 1950 only - Jun 11 0:00 1:00 S +Rule Morocco 1950 only - Jun 11 0:00 1:00 - Rule Morocco 1950 only - Oct 29 0:00 0 - -Rule Morocco 1967 only - Jun 3 12:00 1:00 S +Rule Morocco 1967 only - Jun 3 12:00 1:00 - Rule Morocco 1967 only - Oct 1 0:00 0 - -Rule Morocco 1974 only - Jun 24 0:00 1:00 S +Rule Morocco 1974 only - Jun 24 0:00 1:00 - Rule Morocco 1974 only - Sep 1 0:00 0 - -Rule Morocco 1976 1977 - May 1 0:00 1:00 S +Rule Morocco 1976 1977 - May 1 0:00 1:00 - Rule Morocco 1976 only - Aug 1 0:00 0 - Rule Morocco 1977 only - Sep 28 0:00 0 - -Rule Morocco 1978 only - Jun 1 0:00 1:00 S +Rule Morocco 1978 only - Jun 1 0:00 1:00 - Rule Morocco 1978 only - Aug 4 0:00 0 - -Rule Morocco 2008 only - Jun 1 0:00 1:00 S +Rule Morocco 2008 only - Jun 1 0:00 1:00 - Rule Morocco 2008 only - Sep 1 0:00 0 - -Rule Morocco 2009 only - Jun 1 0:00 1:00 S +Rule Morocco 2009 only - Jun 1 0:00 1:00 - Rule Morocco 2009 only - Aug 21 0:00 0 - -Rule Morocco 2010 only - May 2 0:00 1:00 S +Rule Morocco 2010 only - May 2 0:00 1:00 - Rule Morocco 2010 only - Aug 8 0:00 0 - -Rule Morocco 2011 only - Apr 3 0:00 1:00 S +Rule Morocco 2011 only - Apr 3 0:00 1:00 - Rule Morocco 2011 only - Jul 31 0:00 0 - -Rule Morocco 2012 2013 - Apr lastSun 2:00 1:00 S +Rule Morocco 2012 2013 - Apr lastSun 2:00 1:00 - Rule Morocco 2012 only - Jul 20 3:00 0 - -Rule Morocco 2012 only - Aug 20 2:00 1:00 S +Rule Morocco 2012 only - Aug 20 2:00 1:00 - Rule Morocco 2012 only - Sep 30 3:00 0 - Rule Morocco 2013 only - Jul 7 3:00 0 - -Rule Morocco 2013 only - Aug 10 2:00 1:00 S -Rule Morocco 2013 max - Oct lastSun 3:00 0 - -Rule Morocco 2014 2021 - Mar lastSun 2:00 1:00 S +Rule Morocco 2013 only - Aug 10 2:00 1:00 - +Rule Morocco 2013 2018 - Oct lastSun 3:00 0 - +Rule Morocco 2014 2018 - Mar lastSun 2:00 1:00 - Rule Morocco 2014 only - Jun 28 3:00 0 - -Rule Morocco 2014 only - Aug 2 2:00 1:00 S +Rule Morocco 2014 only - Aug 2 2:00 1:00 - Rule Morocco 2015 only - Jun 14 3:00 0 - -Rule Morocco 2015 only - Jul 19 2:00 1:00 S +Rule Morocco 2015 only - Jul 19 2:00 1:00 - Rule Morocco 2016 only - Jun 5 3:00 0 - -Rule Morocco 2016 only - Jul 10 2:00 1:00 S +Rule Morocco 2016 only - Jul 10 2:00 1:00 - Rule Morocco 2017 only - May 21 3:00 0 - -Rule Morocco 2017 only - Jul 2 2:00 1:00 S +Rule Morocco 2017 only - Jul 2 2:00 1:00 - Rule Morocco 2018 only - May 13 3:00 0 - -Rule Morocco 2018 only - Jun 17 2:00 1:00 S -Rule Morocco 2019 only - May 5 3:00 0 - -Rule Morocco 2019 only - Jun 9 2:00 1:00 S -Rule Morocco 2020 only - Apr 19 3:00 0 - -Rule Morocco 2020 only - May 24 2:00 1:00 S -Rule Morocco 2021 only - Apr 11 3:00 0 - -Rule Morocco 2021 only - May 16 2:00 1:00 S -Rule Morocco 2022 only - May 8 2:00 1:00 S -Rule Morocco 2023 only - Apr 23 2:00 1:00 S -Rule Morocco 2024 only - Apr 14 2:00 1:00 S -Rule Morocco 2025 only - Apr 6 2:00 1:00 S -Rule Morocco 2026 max - Mar lastSun 2:00 1:00 S -Rule Morocco 2036 only - Oct 19 3:00 0 - -Rule Morocco 2037 only - Oct 4 3:00 0 - - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Morocco 2018 only - Jun 17 2:00 1:00 - +Rule Morocco 2019 only - May 5 3:00 -1:00 - +Rule Morocco 2019 only - Jun 9 2:00 0 - +Rule Morocco 2020 only - Apr 19 3:00 -1:00 - +Rule Morocco 2020 only - May 24 2:00 0 - +Rule Morocco 2021 only - Apr 11 3:00 -1:00 - +Rule Morocco 2021 only - May 16 2:00 0 - +Rule Morocco 2022 only - Mar 27 3:00 -1:00 - +Rule Morocco 2022 only - May 8 2:00 0 - +Rule Morocco 2023 only - Mar 19 3:00 -1:00 - +Rule Morocco 2023 only - Apr 23 2:00 0 - +Rule Morocco 2024 only - Mar 10 3:00 -1:00 - +Rule Morocco 2024 only - Apr 14 2:00 0 - +Rule Morocco 2025 only - Feb 23 3:00 -1:00 - +Rule Morocco 2025 only - Apr 6 2:00 0 - +Rule Morocco 2026 only - Feb 15 3:00 -1:00 - +Rule Morocco 2026 only - Mar 22 2:00 0 - +Rule Morocco 2027 only - Feb 7 3:00 -1:00 - +Rule Morocco 2027 only - Mar 14 2:00 0 - +Rule Morocco 2028 only - Jan 23 3:00 -1:00 - +Rule Morocco 2028 only - Feb 27 2:00 0 - +Rule Morocco 2029 only - Jan 14 3:00 -1:00 - +Rule Morocco 2029 only - Feb 18 2:00 0 - +Rule Morocco 2029 only - Dec 30 3:00 -1:00 - +Rule Morocco 2030 only - Feb 10 2:00 0 - +Rule Morocco 2030 only - Dec 22 3:00 -1:00 - +Rule Morocco 2031 only - Jan 26 2:00 0 - +Rule Morocco 2031 only - Dec 14 3:00 -1:00 - +Rule Morocco 2032 only - Jan 18 2:00 0 - +Rule Morocco 2032 only - Nov 28 3:00 -1:00 - +Rule Morocco 2033 only - Jan 9 2:00 0 - +Rule Morocco 2033 only - Nov 20 3:00 -1:00 - +Rule Morocco 2033 only - Dec 25 2:00 0 - +Rule Morocco 2034 only - Nov 5 3:00 -1:00 - +Rule Morocco 2034 only - Dec 17 2:00 0 - +Rule Morocco 2035 only - Oct 28 3:00 -1:00 - +Rule Morocco 2035 only - Dec 2 2:00 0 - +Rule Morocco 2036 only - Oct 19 3:00 -1:00 - +Rule Morocco 2036 only - Nov 23 2:00 0 - +Rule Morocco 2037 only - Oct 4 3:00 -1:00 - +Rule Morocco 2037 only - Nov 15 2:00 0 - +Rule Morocco 2038 only - Sep 26 3:00 -1:00 - +Rule Morocco 2038 only - Oct 31 2:00 0 - +Rule Morocco 2039 only - Sep 18 3:00 -1:00 - +Rule Morocco 2039 only - Oct 23 2:00 0 - +Rule Morocco 2040 only - Sep 2 3:00 -1:00 - +Rule Morocco 2040 only - Oct 14 2:00 0 - +Rule Morocco 2041 only - Aug 25 3:00 -1:00 - +Rule Morocco 2041 only - Sep 29 2:00 0 - +Rule Morocco 2042 only - Aug 10 3:00 -1:00 - +Rule Morocco 2042 only - Sep 21 2:00 0 - +Rule Morocco 2043 only - Aug 2 3:00 -1:00 - +Rule Morocco 2043 only - Sep 6 2:00 0 - +Rule Morocco 2044 only - Jul 24 3:00 -1:00 - +Rule Morocco 2044 only - Aug 28 2:00 0 - +Rule Morocco 2045 only - Jul 9 3:00 -1:00 - +Rule Morocco 2045 only - Aug 20 2:00 0 - +Rule Morocco 2046 only - Jul 1 3:00 -1:00 - +Rule Morocco 2046 only - Aug 5 2:00 0 - +Rule Morocco 2047 only - Jun 23 3:00 -1:00 - +Rule Morocco 2047 only - Jul 28 2:00 0 - +Rule Morocco 2048 only - Jun 7 3:00 -1:00 - +Rule Morocco 2048 only - Jul 19 2:00 0 - +Rule Morocco 2049 only - May 30 3:00 -1:00 - +Rule Morocco 2049 only - Jul 4 2:00 0 - +Rule Morocco 2050 only - May 15 3:00 -1:00 - +Rule Morocco 2050 only - Jun 26 2:00 0 - +Rule Morocco 2051 only - May 7 3:00 -1:00 - +Rule Morocco 2051 only - Jun 11 2:00 0 - +Rule Morocco 2052 only - Apr 28 3:00 -1:00 - +Rule Morocco 2052 only - Jun 2 2:00 0 - +Rule Morocco 2053 only - Apr 13 3:00 -1:00 - +Rule Morocco 2053 only - May 25 2:00 0 - +Rule Morocco 2054 only - Apr 5 3:00 -1:00 - +Rule Morocco 2054 only - May 10 2:00 0 - +Rule Morocco 2055 only - Mar 28 3:00 -1:00 - +Rule Morocco 2055 only - May 2 2:00 0 - +Rule Morocco 2056 only - Mar 12 3:00 -1:00 - +Rule Morocco 2056 only - Apr 23 2:00 0 - +Rule Morocco 2057 only - Mar 4 3:00 -1:00 - +Rule Morocco 2057 only - Apr 8 2:00 0 - +Rule Morocco 2058 only - Feb 17 3:00 -1:00 - +Rule Morocco 2058 only - Mar 31 2:00 0 - +Rule Morocco 2059 only - Feb 9 3:00 -1:00 - +Rule Morocco 2059 only - Mar 16 2:00 0 - +Rule Morocco 2060 only - Feb 1 3:00 -1:00 - +Rule Morocco 2060 only - Mar 7 2:00 0 - +Rule Morocco 2061 only - Jan 16 3:00 -1:00 - +Rule Morocco 2061 only - Feb 27 2:00 0 - +Rule Morocco 2062 only - Jan 8 3:00 -1:00 - +Rule Morocco 2062 only - Feb 12 2:00 0 - +Rule Morocco 2062 only - Dec 31 3:00 -1:00 - +Rule Morocco 2063 only - Feb 4 2:00 0 - +Rule Morocco 2063 only - Dec 16 3:00 -1:00 - +Rule Morocco 2064 only - Jan 20 2:00 0 - +Rule Morocco 2064 only - Dec 7 3:00 -1:00 - +Rule Morocco 2065 only - Jan 11 2:00 0 - +Rule Morocco 2065 only - Nov 22 3:00 -1:00 - +Rule Morocco 2066 only - Jan 3 2:00 0 - +Rule Morocco 2066 only - Nov 14 3:00 -1:00 - +Rule Morocco 2066 only - Dec 19 2:00 0 - +Rule Morocco 2067 only - Nov 6 3:00 -1:00 - +Rule Morocco 2067 only - Dec 11 2:00 0 - +Rule Morocco 2068 only - Oct 21 3:00 -1:00 - +Rule Morocco 2068 only - Dec 2 2:00 0 - +Rule Morocco 2069 only - Oct 13 3:00 -1:00 - +Rule Morocco 2069 only - Nov 17 2:00 0 - +Rule Morocco 2070 only - Oct 5 3:00 -1:00 - +Rule Morocco 2070 only - Nov 9 2:00 0 - +Rule Morocco 2071 only - Sep 20 3:00 -1:00 - +Rule Morocco 2071 only - Oct 25 2:00 0 - +Rule Morocco 2072 only - Sep 11 3:00 -1:00 - +Rule Morocco 2072 only - Oct 16 2:00 0 - +Rule Morocco 2073 only - Aug 27 3:00 -1:00 - +Rule Morocco 2073 only - Oct 8 2:00 0 - +Rule Morocco 2074 only - Aug 19 3:00 -1:00 - +Rule Morocco 2074 only - Sep 23 2:00 0 - +Rule Morocco 2075 only - Aug 11 3:00 -1:00 - +Rule Morocco 2075 only - Sep 15 2:00 0 - +Rule Morocco 2076 only - Jul 26 3:00 -1:00 - +Rule Morocco 2076 only - Sep 6 2:00 0 - +Rule Morocco 2077 only - Jul 18 3:00 -1:00 - +Rule Morocco 2077 only - Aug 22 2:00 0 - +Rule Morocco 2078 only - Jul 10 3:00 -1:00 - +Rule Morocco 2078 only - Aug 14 2:00 0 - +Rule Morocco 2079 only - Jun 25 3:00 -1:00 - +Rule Morocco 2079 only - Jul 30 2:00 0 - +Rule Morocco 2080 only - Jun 16 3:00 -1:00 - +Rule Morocco 2080 only - Jul 21 2:00 0 - +Rule Morocco 2081 only - Jun 1 3:00 -1:00 - +Rule Morocco 2081 only - Jul 13 2:00 0 - +Rule Morocco 2082 only - May 24 3:00 -1:00 - +Rule Morocco 2082 only - Jun 28 2:00 0 - +Rule Morocco 2083 only - May 16 3:00 -1:00 - +Rule Morocco 2083 only - Jun 20 2:00 0 - +Rule Morocco 2084 only - Apr 30 3:00 -1:00 - +Rule Morocco 2084 only - Jun 11 2:00 0 - +Rule Morocco 2085 only - Apr 22 3:00 -1:00 - +Rule Morocco 2085 only - May 27 2:00 0 - +Rule Morocco 2086 only - Apr 14 3:00 -1:00 - +Rule Morocco 2086 only - May 19 2:00 0 - +Rule Morocco 2087 only - Mar 30 3:00 -1:00 - +Rule Morocco 2087 only - May 4 2:00 0 - +# For dates after the somewhat-arbitrary cutoff of 2087, assume that +# Morocco will no longer observe DST. At some point this table will +# need to be extended, though quite possibly Morocco will change the +# rules first. + +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26 - 0:00 Morocco WE%sT 1984 Mar 16 - 1:00 - CET 1986 - 0:00 Morocco WE%sT + 0:00 Morocco +00/+01 1984 Mar 16 + 1:00 - +01 1986 + 0:00 Morocco +00/+01 2018 Oct 28 3:00 + 1:00 Morocco +01/+00 # Western Sahara # @@ -915,17 +1102,18 @@ Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26 # since most of it was then controlled by Morocco. Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún - -1:00 - WAT 1976 Apr 14 - 0:00 Morocco WE%sT + -1:00 - -01 1976 Apr 14 + 0:00 Morocco +00/+01 2018 Oct 28 3:00 + 1:00 Morocco +01/+00 # Mozambique # # Shanks gives 1903-03-01 for the transition to CAT. # Perhaps the 1911-05-26 Portuguese decree -# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf +# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf # merely made it official? # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Maputo 2:10:20 - LMT 1903 Mar 2:00 - CAT Link Africa/Maputo Africa/Blantyre # Malawi @@ -936,9 +1124,21 @@ Link Africa/Maputo Africa/Kigali # Rwanda Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo Link Africa/Maputo Africa/Lusaka # Zambia + # Namibia -# The 1994-04-03 transition is from Shanks & Pottenger. -# Shanks & Pottenger report no DST after 1998-04; go with IATA. + +# From Arthur David Olson (2017-08-09): +# The text of the "Namibia Time Act, 1994" is available online at +# www.lac.org.na/laws/1994/811.pdf +# and includes this nugget: +# Notwithstanding the provisions of subsection (2) of section 1, the +# first winter period after the commencement of this Act shall +# commence at OOhOO on Monday 21 March 1994 and shall end at 02h00 on +# Sunday 4 September 1994. + +# From Michael Deckers (2017-04-06): +# ... both summer and winter time are called "standard" +# (which differs from the use in Ireland) ... # From Petronella Sibeene (2007-03-30): # http://allafrica.com/stories/200703300178.html @@ -949,27 +1149,64 @@ Link Africa/Maputo Africa/Lusaka # Zambia # the country are close to 40 minutes earlier in sunrise than the rest # of the country. # -# From Paul Eggert (2007-03-31): -# Apparently the Caprivi Strip informally observes Botswana time, but -# we have no details. In the meantime people there can use Africa/Gaborone. +# From Paul Eggert (2017-02-22): +# Although the Zambezi Region (formerly known as Caprivi) informally +# observes Botswana time, we have no details about historical practice. +# In the meantime people there can use Africa/Gaborone. +# See: Immanuel S. The Namibian. 2017-02-23. +# https://www.namibian.com.na/51480/read/Time-change-divides-lawmakers + +# From Steffen Thorsen (2017-08-09): +# Namibia is going to change their time zone to what is now their DST: +# https://www.newera.com.na/2017/02/23/namibias-winter-time-might-be-repealed/ +# This video is from the government decision: +# https://www.nbc.na/news/na-passes-namibia-time-bill-repealing-1994-namibia-time-act.8665 +# We have made the assumption so far that they will change their time zone at +# the same time they would normally start DST, the first Sunday in September: +# https://www.timeanddate.com/news/time/namibia-new-time-zone.html + +# From Paul Eggert (2017-04-09): +# Before the change, summer and winter time were both standard time legally. +# However in common parlance, winter time was considered to be DST. See, e.g.: +# http://www.nbc.na/news/namibias-winter-time-could-be-scrapped.2706 +# https://zone.my.na/news/times-are-changing-in-namibia +# https://www.newera.com.na/2017/02/23/namibias-winter-time-might-be-repealed/ +# Use plain "WAT" and "CAT" for the time zone abbreviations, to be compatible +# with Namibia's neighbors. # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Namibia 1994 max - Sep Sun>=1 2:00 1:00 S -Rule Namibia 1995 max - Apr Sun>=1 2:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Vanguard section, for zic and other parsers that support negative DST. +Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT +Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT +Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT +# Rearguard section, for parsers that do not support negative DST. +#Rule Namibia 1994 only - Mar 21 0:00 0 WAT +#Rule Namibia 1994 2017 - Sep Sun>=1 2:00 1:00 CAT +#Rule Namibia 1995 2017 - Apr Sun>=1 2:00 0 WAT +# End of rearguard section. + +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 - 1:30 - SWAT 1903 Mar # SW Africa Time + 1:30 - +0130 1903 Mar 2:00 - SAST 1942 Sep 20 2:00 2:00 1:00 SAST 1943 Mar 21 2:00 2:00 - SAST 1990 Mar 21 # independence - 2:00 - CAT 1994 Apr 3 - 1:00 Namibia WA%sT +# Vanguard section, for zic and other parsers that support negative DST. + 2:00 Namibia %s +# Rearguard section, for parsers that do not support negative DST. +# 2:00 - CAT 1994 Mar 21 0:00 +# From Paul Eggert (2017-04-07): +# The official date of the 2017 rule change was 2017-10-24. See: +# http://www.lac.org.na/laws/annoSTAT/Namibian%20Time%20Act%209%20of%202017.pdf +# 1:00 Namibia %s 2017 Oct 24 +# 2:00 - CAT +# End of rearguard section. # Niger # See Africa/Lagos. # Nigeria -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Lagos 0:13:36 - LMT 1919 Sep 1:00 - WAT Link Africa/Lagos Africa/Bangui # Central African Republic @@ -983,9 +1220,9 @@ Link Africa/Lagos Africa/Niamey # Niger Link Africa/Lagos Africa/Porto-Novo # Benin # Réunion -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Denis - 4:00 - RET # Réunion Time + 4:00 - +04 # # Crozet Islands also observes Réunion time; see the 'antarctica' file. # @@ -1014,13 +1251,38 @@ Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Denis # Inaccessible, Nightingale: uninhabited # São Tomé and Príncipe + +# See Europe/Lisbon for info about the 1912 transition. + +# From Steffen Thorsen (2018-01-08): +# Multiple sources tell that São Tomé changed from UTC to UTC+1 as +# they entered the year 2018. +# From Michael Deckers (2018-01-08): +# the switch is from 01:00 to 02:00 ... [Decree No. 25/2017] +# http://www.mnec.gov.st/index.php/publicacoes/documentos/file/90-decreto-lei-n-25-2017 + +# From Vadim Nasardinov (2018-12-29): +# São Tomé and Príncipe is about to do the following on Jan 1, 2019: +# https://www.stp-press.st/2018/12/05/governo-jesus-ja-decidiu-repor-hora-legal-sao-tomense/ +# +# From Michael Deckers (2018-12-30): +# https://www.legis-palop.org/download.jsp?idFile=102818 +# ... [The legal time of the country, which coincides with universal +# coordinated time, will be restituted at 2 o'clock on day 1 of January, 2019.] + +Zone Africa/Sao_Tome 0:26:56 - LMT 1884 + -0:36:45 - LMT 1912 Jan 1 00:00u # Lisbon MT + 0:00 - GMT 2018 Jan 1 01:00 + 1:00 - WAT 2019 Jan 1 02:00 + 0:00 - GMT + # Senegal # See Africa/Abidjan. # Seychelles -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Mahe 3:41:48 - LMT 1906 Jun # Victoria - 4:00 - SCT # Seychelles Time + 4:00 - +04 # From Paul Eggert (2001-05-30): # Aldabra, Farquhar, and Desroches, originally dependencies of the # Seychelles, were transferred to the British Indian Ocean Territory @@ -1038,41 +1300,52 @@ Zone Indian/Mahe 3:41:48 - LMT 1906 Jun # Victoria # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 - Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8 1:30 - SAST 1903 Mar 2:00 SA SAST Link Africa/Johannesburg Africa/Maseru # Lesotho -Link Africa/Johannesburg Africa/Mbabane # Swaziland +Link Africa/Johannesburg Africa/Mbabane # Eswatini # # Marion and Prince Edward Is # scientific station since 1947 # no information # Sudan -# + # From # Sudan News Agency (2000-01-13), # also reported by Michaël De Beukelaer-Dossche via Steffen Thorsen: # Clocks will be moved ahead for 60 minutes all over the Sudan as of noon # Saturday.... This was announced Thursday by Caretaker State Minister for # Manpower Abdul-Rahman Nur-Eddin. + +# From Ahmed Atyya, National Telecommunications Corp. (NTC), Sudan (2017-10-17): +# ... the Republic of Sudan is going to change the time zone from (GMT+3:00) +# to (GMT+ 2:00) starting from Wednesday 1 November 2017. # +# From Paul Eggert (2017-10-18): +# A scanned copy (in Arabic) of Cabinet Resolution No. 352 for the +# year 2017 can be found as an attachment in email today from Yahia +# Abdalla of NTC, archived at: +# https://mm.icann.org/pipermail/tz/2017-October/025333.html + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Sudan 1970 only - May 1 0:00 1:00 S Rule Sudan 1970 1985 - Oct 15 0:00 0 - Rule Sudan 1971 only - Apr 30 0:00 1:00 S Rule Sudan 1972 1985 - Apr lastSun 0:00 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Khartoum 2:10:08 - LMT 1931 2:00 Sudan CA%sT 2000 Jan 15 12:00 - 3:00 - EAT + 3:00 - EAT 2017 Nov 1 + 2:00 - CAT # South Sudan -Link Africa/Khartoum Africa/Juba - -# Swaziland -# See Africa/Johannesburg. +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Africa/Juba 2:06:28 - LMT 1931 + 2:00 Sudan CA%sT 2000 Jan 15 12:00 + 3:00 - EAT # Tanzania # See Africa/Nairobi. @@ -1107,11 +1380,11 @@ Link Africa/Khartoum Africa/Juba # According to several news sources, Tunisia will not observe DST this year. # (Arabic) # http://www.elbashayer.com/?page=viewn&nid=42546 -# http://www.babnet.net/kiwidetail-15295.asp +# https://www.babnet.net/kiwidetail-15295.asp # # We have also confirmed this with the US embassy in Tunisia. # We have a wrap-up about this on the following page: -# http://www.timeanddate.com/news/time/tunisia-cancels-dst-2009.html +# https://www.timeanddate.com/news/time/tunisia-cancels-dst-2009.html # From Alexander Krivenyshev (2009-03-17): # Here is a link to Tunis Afrique Presse News Agency @@ -1175,7 +1448,7 @@ Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 - # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's # more precise 0:09:21. # Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Africa/Tunis 0:40:44 - LMT 1881 May 12 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time 1:00 Tunisia CE%sT diff --git a/vendor/tzdata/antarctica b/vendor/tzdata/antarctica index 6da1aef..2059983 100644 --- a/vendor/tzdata/antarctica +++ b/vendor/tzdata/antarctica @@ -1,3 +1,5 @@ +# tzdb data for Antarctica and environs + # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -11,7 +13,7 @@ # for information. # Unless otherwise specified, we have no time zone information. -# FORMAT is '-00' and GMTOFF is 0 for locations while uninhabited. +# 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 @@ -26,7 +28,7 @@ # Heard Island, McDonald Islands (uninhabited) # previously sealers and scientific personnel wintered # Margaret Turner reports -# http://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html +# 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. # @@ -47,7 +49,7 @@ # http://www.aad.gov.au/default.asp?casid=37079 # # We have more background information here: -# http://www.timeanddate.com/news/time/antarctica-new-times.html +# 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: ... @@ -62,20 +64,21 @@ # - Mawson station stays on UTC+5. # # Background: -# http://www.timeanddate.com/news/time/antartica-time-changes-2010.html +# 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". -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# 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 + 11:00 - +11 2018 Mar 11 4:00 + 8:00 - +08 Zone Antarctica/Davis 0 - -00 1957 Jan 13 7:00 - +07 1964 Nov 0 - -00 1969 Feb @@ -110,7 +113,8 @@ Zone Antarctica/Mawson 0 - -00 1954 Feb 13 # 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 have always used Santiago time; use TZ='America/Santiago'. +# 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 @@ -138,18 +142,18 @@ Zone Antarctica/Mawson 0 - -00 1954 Feb 13 # St Paul Island - near Amsterdam, uninhabited # fishing stations operated variously 1819/1931 # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français 5:00 - +05 # # year-round base in the main continent # Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11 -# (2005-12-05) +# (2005-12-05) # # Another base at Port-Martin, 50km east, began operation in 1947. # It was destroyed by fire on 1952-01-14. # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/DumontDUrville 0 - -00 1947 10:00 - +10 1952 Jan 14 0 - -00 1956 Nov @@ -177,7 +181,7 @@ Zone Antarctica/DumontDUrville 0 - -00 1947 # Syowa station, which is the first antarctic station of Japan, # was established on 1957-01-29. Since Syowa station is still the main # station of Japan, it's appropriate for the principal location. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Syowa 0 - -00 1957 Jan 29 3:00 - +03 # See: @@ -227,7 +231,7 @@ Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02 #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 GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Troll 0 - -00 2005 Feb 12 0:00 Troll %s @@ -301,7 +305,7 @@ Zone Antarctica/Vostok 0 - -00 1957 Dec 16 # From Paul Eggert (2002-10-22) # says Rothera is -03 all year. # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Rothera 0 - -00 1976 Dec 1 -3:00 - -03 diff --git a/vendor/tzdata/asia b/vendor/tzdata/asia index c6f63b5..b29c896 100644 --- a/vendor/tzdata/asia +++ b/vendor/tzdata/asia @@ -1,3 +1,5 @@ +# tzdb data for Asia and environs + # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -6,15 +8,15 @@ # tz@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. -# From Paul Eggert (2015-08-08): +# From Paul Eggert (2019-07-11): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), # San Diego: ACS Publications, Inc. (2003). # Unfortunately this book contains many errors and cites no sources. # -# Gwillim Law writes that a good source -# for recent time zone data is the International Air Transport +# Many years ago Gwillim Law wrote that a good source +# for time zone data was the International Air Transport # Association's Standard Schedules Information Manual (IATA SSIM), # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. Except where otherwise noted, @@ -26,7 +28,7 @@ # # For data circa 1899, a common source is: # Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. -# http://www.jstor.org/stable/1774359 +# https://www.jstor.org/stable/1774359 # # For Russian data circa 1919, a source is: # Byalokoz EL. New Counting of Time in Russia since July 1, 1919. @@ -35,29 +37,27 @@ # A reliable and entertaining source about time zones is # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). # -# I invented the abbreviations marked '*' in the following table; -# the rest are from earlier versions of this file, or from other sources. -# Corrections are welcome! +# The following alphabetic abbreviations appear in these tables +# (corrections are welcome): # std dst # LMT Local Mean Time # 2:00 EET EEST Eastern European Time # 2:00 IST IDT Israel -# 3:00 AST ADT Arabia* -# 3:30 IRST IRDT Iran* -# 4:00 GST Gulf* # 5:30 IST India -# 7:00 ICT Indochina, most times and locations* # 7:00 WIB west Indonesia (Waktu Indonesia Barat) # 8:00 WITA central Indonesia (Waktu Indonesia Tengah) # 8:00 CST China -# 8:00 IDT Indochina, 1943-45, 1947-55, 1960-75 (some locations)* -# 8:00 JWST Western Standard Time (Japan, 1896/1937)* -# 8:30 KST KDT Korea when at +0830* -# 9:00 JCST Central Standard Time (Japan, 1896/1937) +# 8:00 HKT HKST Hong Kong (HKWT* for Winter Time in late 1941) +# 8:00 PST PDT* Philippines +# 8:30 KST KDT Korea when at +0830 # 9:00 WIT east Indonesia (Waktu Indonesia Timur) # 9:00 JST JDT Japan # 9:00 KST KDT Korea when at +09 -# 9:30 ACST Australian Central Standard Time +# *I invented the abbreviations HKWT and PDT; see below. +# Otherwise, these tables typically use numeric abbreviations like +03 +# and +0330 for integer hour and minute UT offsets. Although earlier +# editions invented alphabetic time zone abbreviations for every +# offset, this did not reflect common practice. # # See the 'europe' file for Russia and Turkey in Asia. @@ -65,7 +65,7 @@ # Incorporates data for Singapore from Robert Elz' asia 1.1, as well as # additional information from Tom Yap, Sun Microsystems Intercontinental # Technical Support (including a page from the Official Airline Guide - -# Worldwide Edition). The names for time zones are guesses. +# Worldwide Edition). ############################################################################### @@ -74,20 +74,20 @@ Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 - Rule EUAsia 1996 max - Oct lastSun 1:00u 0 - -Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 S +Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 - Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 - Rule E-EurAsia 1996 max - Oct lastSun 0:00 0 - -Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 S +Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 - Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 - Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 - -Rule RussiaAsia 1985 2011 - Mar lastSun 2:00s 1:00 S -Rule RussiaAsia 1996 2011 - Oct lastSun 2:00s 0 - +Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 - +Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 - # Afghanistan -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kabul 4:36:48 - LMT 1890 - 4:00 - AFT 1945 - 4:30 - AFT + 4:00 - +04 1945 + 4:30 - +0430 # Armenia # From Paul Eggert (2006-03-22): @@ -114,13 +114,17 @@ Zone Asia/Kabul 4:36:48 - LMT 1890 # or # (brief) # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 - +Rule Armenia 2011 only - Oct lastSun 2:00s 0 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 3:00 - +03 1957 Mar 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s 3:00 RussiaAsia +03/+04 1995 Sep 24 2:00s 4:00 - +04 1997 - 4:00 RussiaAsia +04/+05 + 4:00 RussiaAsia +04/+05 2011 + 4:00 Armenia +04/+05 # Azerbaijan @@ -132,14 +136,14 @@ Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 # From Steffen Thorsen (2016-03-17): # ... the Azerbaijani Cabinet of Ministers has cancelled switching to # daylight saving time.... -# http://www.azernews.az/azerbaijan/94137.html +# https://www.azernews.az/azerbaijan/94137.html # http://vestnikkavkaza.net/news/Azerbaijani-Cabinet-of-Ministers-cancels-daylight-saving-time.html # http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 S +Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 - Rule Azer 1997 2015 - Oct lastSun 5:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Baku 3:19:24 - LMT 1924 May 2 3:00 - +03 1957 Mar 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s @@ -173,11 +177,11 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2 # the 19th and 20th, and they have not set the end date yet. # # Some sources: -# http://in.reuters.com/article/southAsiaNews/idINIndia-40017620090601 +# https://in.reuters.com/article/southAsiaNews/idINIndia-40017620090601 # http://bdnews24.com/details.php?id=85889&cid=2 # # Our wrap-up: -# http://www.timeanddate.com/news/time/bangladesh-daylight-saving-2009.html +# https://www.timeanddate.com/news/time/bangladesh-daylight-saving-2009.html # From A. N. M. Kamrus Saadat (2009-06-15): # Finally we've got the official mail regarding DST start time where DST start @@ -224,24 +228,23 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2 # http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Dhaka 2009 only - Jun 19 23:00 1:00 S +Rule Dhaka 2009 only - Jun 19 23:00 1:00 - Rule Dhaka 2009 only - Dec 31 24:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dhaka 6:01:40 - LMT 1890 5:53:20 - HMT 1941 Oct # Howrah Mean Time? - 6:30 - BURT 1942 May 15 # Burma Time - 5:30 - IST 1942 Sep - 6:30 - BURT 1951 Sep 30 - 6:00 - DACT 1971 Mar 26 # Dacca Time - 6:00 - BDT 2009 - 6:00 Dhaka BD%sT + 6:30 - +0630 1942 May 15 + 5:30 - +0530 1942 Sep + 6:30 - +0630 1951 Sep 30 + 6:00 - +06 2009 + 6:00 Dhaka +06/+07 # Bhutan -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Thimphu 5:58:36 - LMT 1947 Aug 15 # or Thimbu - 5:30 - IST 1987 Oct - 6:00 - BTT # Bhutan Time + 5:30 - +0530 1987 Oct + 6:00 - +06 # British Indian Ocean Territory # Whitman and the 1995 CIA time zone map say 5:00, but the @@ -249,27 +252,33 @@ Zone Asia/Thimphu 5:58:36 - LMT 1947 Aug 15 # or Thimbu # We have no information as to when standard time was introduced; # assume it occurred in 1907, the same year as Mauritius (which # then contained the Chagos Archipelago). -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Chagos 4:49:40 - LMT 1907 - 5:00 - IOT 1996 # BIOT Time - 6:00 - IOT + 5:00 - +05 1996 + 6:00 - +06 # Brunei -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Brunei 7:39:40 - LMT 1926 Mar # Bandar Seri Begawan - 7:30 - BNT 1933 - 8:00 - BNT + 7:30 - +0730 1933 + 8:00 - +08 # Burma / Myanmar # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Yangon 6:24:40 - LMT 1880 # or Rangoon - 6:24:40 - RMT 1920 # Rangoon Mean Time? - 6:30 - BURT 1942 May # Burma Time - 9:00 - JST 1945 May 3 - 6:30 - MMT # Myanmar Time +# From Paul Eggert (2017-04-20): +# Page 27 of Reed & Low (cited for Asia/Kolkata) says "Rangoon local time is +# used upon the railways and telegraphs of Burma, and is 6h. 24m. 47s. ahead +# of Greenwich." This refers to the period before Burma's transition to +0630, +# a transition for which Shanks is the only source. + +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Asia/Yangon 6:24:47 - LMT 1880 # or Rangoon + 6:24:47 - RMT 1920 # Rangoon local time + 6:30 - +0630 1942 May + 9:00 - +09 1945 May 3 + 6:30 - +0630 # Cambodia # See Asia/Bangkok. @@ -277,6 +286,29 @@ Zone Asia/Yangon 6:24:40 - LMT 1880 # or Rangoon # China +# From Paul Eggert (2018-10-02): +# The following comes from Table 1 of: +# Li Yu. Research on the daylight saving movement in 1940s Shanghai. +# Nanjing Journal of Social Sciences. 2014;(2):144-50. +# http://oversea.cnki.net/kns55/detail.aspx?dbname=CJFD2014&filename=NJSH201402020 +# The table lists dates only; I am guessing 00:00 and 24:00 transition times. +# Also, the table lists the planned end of DST in 1949, but the corresponding +# zone line cuts this off on May 28, when the Communists took power. +# +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Shang 1940 only - Jun 1 0:00 1:00 D +Rule Shang 1940 only - Oct 12 24:00 0 S +Rule Shang 1941 only - Mar 15 0:00 1:00 D +Rule Shang 1941 only - Nov 1 24:00 0 S +Rule Shang 1942 only - Jan 31 0:00 1:00 D +Rule Shang 1945 only - Sep 1 24:00 0 S +Rule Shang 1946 only - May 15 0:00 1:00 D +Rule Shang 1946 only - Sep 30 24:00 0 S +Rule Shang 1947 only - Apr 15 0:00 1:00 D +Rule Shang 1947 only - Oct 31 24:00 0 S +Rule Shang 1948 1949 - May 1 0:00 1:00 D +Rule Shang 1948 1949 - Sep 30 24:00 0 S #plan + # From Guy Harris: # People's Republic of China. Yes, they really have only one time zone. @@ -303,18 +335,33 @@ Zone Asia/Yangon 6:24:40 - LMT 1880 # or Rangoon # time - sort of", Los Angeles Times, 1986-05-05 ... [says] that China began # observing daylight saving time in 1986. -# From Paul Eggert (2014-06-30): -# Shanks & Pottenger have China switching to a single time zone in 1980, but -# this doesn't seem to be correct. They also write that China observed summer -# DST from 1986 through 1991, which seems to match the above commentary, so -# go with them for DST rules as follows: +# From P Chan (2018-05-07): +# The start and end time of DST in China [from 1986 on] should be 2:00 +# (i.e. 2:00 to 3:00 at the start and 2:00 to 1:00 at the end).... +# Government notices about summer time: +# +# 1986-04-12 http://www.zj.gov.cn/attach/zfgb/198608.pdf p.21-22 +# (To establish summer time from 1986. On 4 May, set the clocks ahead one hour +# at 2 am. On 14 September, set the clocks backward one hour at 2 am.) +# +# 1987-02-15 http://www.gov.cn/gongbao/shuju/1987/gwyb198703.pdf p.114 +# (Summer time in 1987 to start from 12 April until 13 September) +# +# 1987-09-09 http://www.gov.cn/gongbao/shuju/1987/gwyb198721.pdf p.709 +# (From 1988, summer time to start from 2 am of the first Sunday of mid-April +# until 2 am of the first Sunday of mid-September) +# +# 1992-03-03 http://www.gov.cn/gongbao/shuju/1992/gwyb199205.pdf p.152 +# (To suspend summer time from 1992) +# +# The first page of People's Daily on 12 April 1988 stating that summer time +# to begin on 17 April. +# http://data.people.com.cn/pic/101p/1988/04/1988041201.jpg + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Shang 1940 only - Jun 3 0:00 1:00 D -Rule Shang 1940 1941 - Oct 1 0:00 0 S -Rule Shang 1941 only - Mar 16 0:00 1:00 D -Rule PRC 1986 only - May 4 0:00 1:00 D -Rule PRC 1986 1991 - Sep Sun>=11 0:00 0 S -Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D +Rule PRC 1986 only - May 4 2:00 1:00 D +Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S +Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D # From Anthony Fok (2001-12-20): # BTW, I did some research on-line and found some info regarding these five @@ -323,7 +370,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D # # From Jesper Nørgaard Welen (2006-07-14): # I have investigated the timezones around 1970 on the -# http://www.astro.com/atlas site [with provinces and county +# https://www.astro.com/atlas site [with provinces and county # boundaries summarized below].... A few other exceptions were two # counties on the Sichuan side of the Xizang-Sichuan border, # counties Dege and Baiyu which lies on the Sichuan side and are @@ -332,14 +379,15 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D # (could be true), for the moment I am assuming that those two # counties are mistakes in the astro.com data. -# From Paul Eggert (2014-06-30): +# From Paul Eggert (2017-01-05): # Alois Treindl kindly sent me translations of the following two sources: # # (1) -# Guo Qingsheng (National Time-Service Center, CAS, Xi'an 710600, China) +# Guo Qing-sheng (National Time-Service Center, CAS, Xi'an 710600, China) # Beijing Time at the Beginning of the PRC # China Historical Materials of Science and Technology -# (Zhongguo ke ji shi liao, 中国科技史料), Vol. 24, No. 1 (2003) +# (Zhongguo ke ji shi liao, 中国科技史料). 2003;24(1):5-9. +# http://oversea.cnki.net/kcms/detail/detail.aspx?filename=ZGKS200301000&dbname=CJFD2003 # It gives evidence that at the beginning of the PRC, Beijing time was # officially apparent solar time! However, Guo also says that the # evidence is dubious, as the relevant institute of astronomy had not @@ -390,28 +438,26 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D # mainly observed in coastal areas), the five zones were: # # Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT +08:30 -# Asia/Harbin (currently a link to Asia/Shanghai) +# Now part of Asia/Shanghai; its pre-1970 times are not recorded here. # Heilongjiang (except Mohe county), Jilin # # Zhongyuan Time ("Central plain Time") UT +08 -# Asia/Shanghai +# Now part of Asia/Shanghai. # most of China -# This currently represents most other zones as well, -# as apparently these regions have been the same since 1970. # Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest. # Guo says Shanghai switched to UT +08 "from the end of the 19th century". # -# Long-shu Time (probably due to Long and Shu being two names of the area) UT +07 -# Asia/Chongqing (currently a link to Asia/Shanghai) +# Long-shu Time (probably as Long and Shu were two names of the area) UT +07 +# Now part of Asia/Shanghai; its pre-1970 times are not recorded here. # Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan; -# most of Gansu; west Inner Mongolia; west Qinghai; and the Guangdong +# most of Gansu; west Inner Mongolia; east Qinghai; and the Guangdong # counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing, # Yangchun, Yangjiang, Yu'nan, and Yunfu. # # Xin-zang Time ("Xinjiang-Tibet Time") UT +06 -# Asia/Urumqi -# This currently represents Kunlun Time as well, -# as apparently the two regions have been the same since 1970. +# This region is now part of either Asia/Urumqi or Asia/Shanghai with +# current boundaries uncertain; times before 1970 for areas that +# disagree with Ürümqi or Shanghai are not recorded here. # The Gansu counties Aksay, Anxi, Dunhuang, Subei; west Qinghai; # the Guangdong counties Xuwen, Haikang, Suixi, Lianjiang, # Zhanjiang, Wuchuan, Huazhou, Gaozhou, Maoming, Dianbai, and Xinyi; @@ -422,7 +468,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D # Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan. # # Kunlun Time UT +05:30 -# Asia/Kashgar (currently a link to Asia/Urumqi) +# This region is now in the same status as Xin-zang Time (see above). # West Tibet, including Pulan, Aheqi, Shufu, Shule; # West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke, # Zhaosu, Tekesi, Gongliu, Chabuchaer, Huocheng, Bole, Pishan, Suiding, @@ -477,7 +523,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D # From David Cochrane (2014-03-26): # Just a confirmation that Ürümqi time was implemented in Ürümqi on 1 Feb 1986: -# http://content.time.com/time/magazine/article/0,9171,960684,00.html +# https://content.time.com/time/magazine/article/0,9171,960684,00.html # From Luther Ma (2014-04-22): # I have interviewed numerous people of various nationalities and from @@ -515,15 +561,15 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D # that the sort of users who prefer Asia/Urumqi now typically ignored the # +08 mandate back then. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # Beijing time, used throughout China; represented by Shanghai. Zone Asia/Shanghai 8:05:43 - LMT 1901 - 8:00 Shang C%sT 1949 + 8:00 Shang C%sT 1949 May 28 8:00 PRC C%sT # Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) Zone Asia/Urumqi 5:50:20 - LMT 1928 - 6:00 - XJT + 6:00 - +06 # Hong Kong (Xianggang) @@ -540,23 +586,132 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928 # obtained from # http://www.hko.gov.hk/gts/time/Summertime.htm -# From Arthur David Olson (2009-10-28): +# From Phake Nick (2018-10-27): +# According to Singaporean newspaper +# http://eresources.nlb.gov.sg/newspapers/Digitised/Article/singfreepresswk19041102-1.2.37 +# the day that Hong Kong start using GMT+8 should be Oct 30, 1904. +# +# From Paul Eggert (2018-11-17): +# Hong Kong had a time ball near the Marine Police Station, Tsim Sha Tsui. +# "The ball was raised manually each day and dropped at exactly 1pm +# (except on Sundays and Government holidays)." +# Dyson AD. From Time Ball to Atomic Clock. Hong Kong Government. 1983. +# +# "From 1904 October 30 the time-ball at Hong Kong has been dropped by order +# of the Governor of the Colony at 17h 0m 0s G.M.T., which is 23m 18s.14 in +# advance of 1h 0m 0s of Hong Kong mean time." +# Hollis HP. Universal Time, Longitudes, and Geodesy. Mon Not R Astron Soc. +# 1905-02-10;65(4):405-6. https://doi.org/10.1093/mnras/65.4.382 +# +# From Joseph Myers (2018-11-18): +# An astronomer before 1925 referring to GMT would have been using the old +# astronomical convention where the day started at noon, not midnight. +# +# From Steve Allen (2018-11-17): +# Meteorological Observations made at the Hongkong Observatory in the year 1904 +# page 4 +# ... the log of drop times in Table II shows that on Sunday 1904-10-30 the +# ball was dropped. So that looks like a special case drop for the sake +# of broadcasting the new local time. +# +# From Phake Nick (2018-11-18): +# According to The Hong Kong Weekly Press, 1904-10-29, p.324, the +# governor of Hong Kong at the time stated that "We are further desired to +# make it known that the change will be effected by firing the gun and by the +# dropping of the Ball at 23min. 18sec. before one." +# From Paul Eggert (2018-11-18): +# See for this; unfortunately Flash is required. + +# From Phake Nick (2018-10-26): +# I went to check microfilm records stored at Hong Kong Public Library.... +# on September 30 1941, according to Ta Kung Pao (Hong Kong edition), it was +# stated that fallback would occur on the next day (the 1st)'s "03:00 am (Hong +# Kong Time 04:00 am)" and the clock will fall back for a half hour. (03:00 +# probably refer to the time commonly used in mainland China at the time given +# the paper's background) ... the sunrise/sunset time given by South China +# Morning Post for October 1st was indeed moved by half an hour compares to +# before. After that, in December, the battle to capture Hong Kong started and +# the library doesn't seems to have any record stored about press during that +# period of time. Some media resumed publication soon after that within the +# same month, but there were not much information about time there. Later they +# started including a radio program guide when they restored radio service, +# explicitly mentioning it use Tokyo standard time, and later added a note +# saying it's half an hour ahead of the old Hong Kong standard time, and it +# also seems to indicate that Hong Kong was not using GMT+8 when it was +# captured by Japan. +# +# Image of related sections on newspaper: +# * 1941-09-30, Ta Kung Pao (Hong Kong), "Winter Time start tomorrow". +# https://i.imgur.com/6waY51Z.jpg (Chinese) +# * 1941-09-29, South China Morning Post, Information on sunrise/sunset +# time and other things for September 30 and October 1. +# https://i.imgur.com/kCiUR78.jpg +# * 1942-02-05. The Hong Kong News, Radio Program Guide. +# https://i.imgur.com/eVvDMzS.jpg +# * 1941-06-14. Hong Kong Daily Press, Daylight Saving from 3am Tomorrow. +# https://i.imgur.com/05KkvtC.png +# * 1941-09-30, Hong Kong Daily Press, Winter Time Warning. +# https://i.imgur.com/dge4kFJ.png + +# From Paul Eggert (2019-07-11): +# "Hong Kong winter time" is considered to be daylight saving. +# "Hong Kong had adopted daylight saving on June 15 as a wartime measure, +# clocks moving forward one hour until October 1, when they would be put back +# by just half an hour for 'Hong Kong Winter time', so that daylight saving +# operated year round." -- Low Z. The longest day: when wartime Hong Kong +# introduced daylight saving. South China Morning Post. 2019-06-28. +# https://www.scmp.com/magazines/post-magazine/short-reads/article/3016281/longest-day-when-wartime-hong-kong-introduced + +# From P Chan (2018-12-31): +# * According to the Hong Kong Daylight-Saving Regulations, 1941, the +# 1941 spring-forward transition was at 03:00. +# http://sunzi.lib.hku.hk/hkgro/view/g1941/304271.pdf +# http://sunzi.lib.hku.hk/hkgro/view/g1941/305516.pdf +# * According to some articles from South China Morning Post, +08 was +# resumed on 1945-11-18 at 02:00. +# https://i.imgur.com/M2IsZ3c.png +# https://i.imgur.com/iOPqrVo.png +# https://i.imgur.com/fffcGDs.png +# * Some newspapers ... said the 1946 spring-forward transition was on +# 04-21 at 00:00. The Kung Sheung Evening News 1946-04-20 (Chinese) +# https://i.imgur.com/ZSzent0.png +# https://mmis.hkpl.gov.hk///c/portal/cover?c=QF757YsWv5%2FH7zGe%2FKF%2BFLYsuqGhRBfe p.4 +# The Kung Sheung Daily News 1946-04-21 (Chinese) +# https://i.imgur.com/7ecmRlcm.png +# https://mmis.hkpl.gov.hk///c/portal/cover?c=QF757YsWv5%2BQBGt1%2BwUj5qG2GqtwR3Wh p.4 +# * According to the Summer Time Ordinance (1946), the fallback +# transitions between 1946 and 1952 were at 03:30 Standard Time (+08) +# http://oelawhk.lib.hku.hk/archive/files/bb74b06a74d5294620a15de560ab33c6.pdf +# * Some other laws and regulations related to DST from 1953 to 1979 +# Summer Time Ordinance 1953 +# https://i.imgur.com/IOlJMav.jpg +# Summer Time (Amendment) Ordinance 1965 +# https://i.imgur.com/8rofeLa.jpg +# Interpretation and General Clauses Ordinance (1966) +# https://i.imgur.com/joy3msj.jpg +# Emergency (Summer Time) Regulation 1973 +# Interpretation and General Clauses (Amendment) Ordinance 1977 +# https://i.imgur.com/RaNqnc4.jpg +# Resolution of the Legislative Council passed on 9 May 1979 +# https://www.legco.gov.hk/yr78-79/english/lc_sitg/hansard/h790509.pdf#page=39 + +# From Paul Eggert (2019-05-31): # Here are the dates given at -# http://www.hko.gov.hk/gts/time/Summertime.htm -# as of 2009-10-28: +# https://www.hko.gov.hk/gts/time/Summertime.htm +# as of 2014-06-19: # Year Period -# 1941 1 Apr to 30 Sep +# 1941 15 Jun to 30 Sep # 1942 Whole year # 1943 Whole year # 1944 Whole year # 1945 Whole year # 1946 20 Apr to 1 Dec -# 1947 13 Apr to 30 Dec +# 1947 13 Apr to 30 Nov # 1948 2 May to 31 Oct # 1949 3 Apr to 30 Oct # 1950 2 Apr to 29 Oct # 1951 1 Apr to 28 Oct -# 1952 6 Apr to 25 Oct +# 1952 6 Apr to 2 Nov # 1953 5 Apr to 1 Nov # 1954 21 Mar to 31 Oct # 1955 20 Mar to 6 Nov @@ -585,37 +740,31 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928 # 1978 Nil # 1979 13 May to 21 Oct # 1980 to Now Nil -# The page does not give start or end times of day. -# The page does not give a start date for 1942. -# The page does not givw an end date for 1945. -# The Japanese occupation of Hong Kong began on 1941-12-25. -# The Japanese surrender of Hong Kong was signed 1945-09-15. -# For lack of anything better, use start of those days as the transition times. +# The page does not give times of day for transitions, +# or dates for the 1942 and 1945 transitions. +# The Japanese occupation of Hong Kong began 1941-12-25. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule HK 1941 only - Apr 1 3:30 1:00 S -Rule HK 1941 only - Sep 30 3:30 0 - -Rule HK 1946 only - Apr 20 3:30 1:00 S -Rule HK 1946 only - Dec 1 3:30 0 - -Rule HK 1947 only - Apr 13 3:30 1:00 S -Rule HK 1947 only - Dec 30 3:30 0 - -Rule HK 1948 only - May 2 3:30 1:00 S -Rule HK 1948 1951 - Oct lastSun 3:30 0 - -Rule HK 1952 only - Oct 25 3:30 0 - +Rule HK 1946 only - Apr 21 0:00 1:00 S +Rule HK 1946 only - Dec 1 3:30s 0 - +Rule HK 1947 only - Apr 13 3:30s 1:00 S +Rule HK 1947 only - Nov 30 3:30s 0 - +Rule HK 1948 only - May 2 3:30s 1:00 S +Rule HK 1948 1952 - Oct Sun>=28 3:30s 0 - Rule HK 1949 1953 - Apr Sun>=1 3:30 1:00 S -Rule HK 1953 only - Nov 1 3:30 0 - +Rule HK 1953 1964 - Oct Sun>=31 3:30 0 - Rule HK 1954 1964 - Mar Sun>=18 3:30 1:00 S -Rule HK 1954 only - Oct 31 3:30 0 - -Rule HK 1955 1964 - Nov Sun>=1 3:30 0 - Rule HK 1965 1976 - Apr Sun>=16 3:30 1:00 S Rule HK 1965 1976 - Oct Sun>=16 3:30 0 - Rule HK 1973 only - Dec 30 3:30 1:00 S -Rule HK 1979 only - May Sun>=8 3:30 1:00 S -Rule HK 1979 only - Oct Sun>=16 3:30 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 - 8:00 HK HK%sT 1941 Dec 25 - 9:00 - JST 1945 Sep 15 +Rule HK 1979 only - May 13 3:30 1:00 S +Rule HK 1979 only - Oct 21 3:30 0 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 0:36:42 + 8:00 - HKT 1941 Jun 15 3:00 + 8:00 1:00 HKST 1941 Oct 1 4:00 + 8:00 0:30 HKWT 1941 Dec 25 + 9:00 - JST 1945 Nov 18 2:00 8:00 HK HK%sT ############################################################################### @@ -634,7 +783,7 @@ Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 # (both in Okinawa) adopt the Western Standard Time which is based on # 120E. The adoption began from Jan 1, 1896. The original text can be # found on Wikisource: -# http://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時) +# https://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時) # ... This could be the first adoption of time zone in Taiwan, because # during the Qing Dynasty, it seems that there was no time zone # declared officially. @@ -645,17 +794,17 @@ Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 # time", in which abolished the adoption of Western Standard Time in # western islands (listed above), which means the whole Japan # territory, including later occupations, adopt Japan Central Time -# (UTC+9). The adoption began on Oct 1, 1937. The original text can +# (UT+9). The adoption began on Oct 1, 1937. The original text can # be found on Wikisource: -# http://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件 +# https://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件 # -# That is, the time zone of Taipei switched to UTC+9 on Oct 1, 1937. +# That is, the time zone of Taipei switched to UT+9 on Oct 1, 1937. # From Yu-Cheng Chuang (2014-07-02): -# I've found more evidence about when the time zone was switched from UTC+9 -# back to UTC+8 after WW2. I believe it was on Sep 21, 1945. In a document +# I've found more evidence about when the time zone was switched from UT+9 +# back to UT+8 after WW2. I believe it was on Sep 21, 1945. In a document # during Japanese era [1] in which the officer told the staff to change time -# zone back to Western Standard Time (UTC+8) on Sep 21. And in another +# zone back to Western Standard Time (UT+8) on Sep 21. And in another # history page of National Cheng Kung University [2], on Sep 21 there is a # note "from today, switch back to Western Standard Time". From these two # materials, I believe that the time zone change happened on Sep 21. And @@ -739,33 +888,149 @@ Rule Taiwan 1974 1975 - Oct 1 0:00 0 S Rule Taiwan 1979 only - Jul 1 0:00 1:00 D Rule Taiwan 1979 only - Oct 1 0:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # Taipei or Taibei or T'ai-pei Zone Asia/Taipei 8:06:00 - LMT 1896 Jan 1 - 8:00 - JWST 1937 Oct 1 + 8:00 - CST 1937 Oct 1 9:00 - JST 1945 Sep 21 1:00 8:00 Taiwan C%sT # Macau (Macao, Aomen) +# +# From P Chan (2018-05-10): +# * LegisMac +# http://legismac.safp.gov.mo/legismac/descqry/Descqry.jsf?lang=pt +# A database for searching titles of legal documents of Macau in +# Chinese and Portuguese. The term "HORÁRIO DE VERÃO" can be used for +# searching decrees about summer time. +# * Archives of Macao +# http://www.archives.gov.mo/en/bo/ +# It contains images of old official gazettes. +# * The Macao Meteorological and Geophysical Bureau have a page listing the +# summer time history. But it is not complete and has some mistakes. +# http://www.smg.gov.mo/smg/geophysics/e_t_Summer%20Time.htm +# Macau adopted GMT+8 on 30 Oct 1904 to follow Hong Kong. Clocks were +# advanced by 25 minutes and 50 seconds. Which means the LMT used was +# +7:34:10. As stated in the "Portaria No. 204" dated 21 October 1904 +# and published in the Official Gazette on 29 October 1904. +# http://igallery.icm.gov.mo/Images/Archives/BO/MO_AH_PUB_BO_1904_10/MO_AH_PUB_BO_1904_10_00025_Grey.JPG +# +# Therefore the 1911 decree of Portugal did not change time in Macau. +# +# From LegisMac, here is a list of decrees that changed the time ... +# [Decree Gazette-no. date; titles omitted in this quotation] +# DIL 732 BOCM 51 1941.12.20 +# DIL 764 BOCM 9S 1942.04.30 +# DIL 781 BOCM 21 1942.10.10 +# PT 3434 BOCM 8S 1943.04.17 +# PT 3504 BOCM 20 1943.09.25 +# PT 3843 BOCM 39 1945.09.29 +# PT 3961 BOCM 17 1946.04.27 +# PT 4026 BOCM 39 1946.09.28 +# PT 4153 BOCM 16 1947.04.10 +# PT 4271 BOCM 48 1947.11.29 +# PT 4374 BOCM 18 1948.05.01 +# PT 4465 BOCM 44 1948.10.30 +# PT 4590 BOCM 14 1949.04.02 +# PT 4666 BOCM 44 1949.10.29 +# PT 4771 BOCM 12 1950.03.25 +# PT 4838 BOCM 43 1950.10.28 +# PT 4946 BOCM 12 1951.03.24 +# PT 5025 BO 43 1951.10.27 +# PT 5149 BO 14 1952.04.05 +# PT 5251 BO 43 1952.10.25 +# PT 5366 BO 13 1953.03.28 +# PT 5444 BO 44 1953.10.31 +# PT 5540 BO 12 1954.03.20 +# PT 5589 BO 44 1954.10.30 +# PT 5676 BO 12 1955.03.19 +# PT 5739 BO 45 1955.11.05 +# PT 5823 BO 11 1956.03.17 +# PT 5891 BO 44 1956.11.03 +# PT 5981 BO 12 1957.03.23 +# PT 6064 BO 43 1957.10.26 +# PT 6172 BO 12 1958.03.22 +# PT 6243 BO 43 1958.10.25 +# PT 6341 BO 12 1959.03.21 +# PT 6411 BO 43 1959.10.24 +# PT 6514 BO 11 1960.03.12 +# PT 6584 BO 44 1960.10.29 +# PT 6721 BO 10 1961.03.11 +# PT 6815 BO 43 1961.10.28 +# PT 6947 BO 10 1962.03.10 +# PT 7080 BO 43 1962.10.27 +# PT 7218 BO 12 1963.03.23 +# PT 7340 BO 43 1963.10.26 +# PT 7491 BO 11 1964.03.14 +# PT 7664 BO 43 1964.10.24 +# PT 7846 BO 15 1965.04.10 +# PT 7979 BO 42 1965.10.16 +# PT 8146 BO 15 1966.04.09 +# PT 8252 BO 41 1966.10.08 +# PT 8429 BO 15 1967.04.15 +# PT 8540 BO 41 1967.10.14 +# PT 8735 BO 15 1968.04.13 +# PT 8860 BO 41 1968.10.12 +# PT 9035 BO 16 1969.04.19 +# PT 9156 BO 42 1969.10.18 +# PT 9328 BO 15 1970.04.11 +# PT 9418 BO 41 1970.10.10 +# PT 9587 BO 14 1971.04.03 +# PT 9702 BO 41 1971.10.09 +# PT 38-A/72 BO 14 1972.04.01 +# PT 126-A/72 BO 41 1972.10.07 +# PT 61/73 BO 14 1973.04.07 +# PT 182/73 BO 40 1973.10.06 +# PT 282/73 BO 51 1973.12.22 +# PT 177/74 BO 41 1974.10.12 +# PT 51/75 BO 15 1975.04.12 +# PT 173/75 BO 41 1975.10.11 +# PT 67/76/M BO 14 1976.04.03 +# PT 169/76/M BO 41 1976.10.09 +# PT 78/79/M BO 19 1979.05.12 +# PT 166/79/M BO 42 1979.10.20 +# Note that DIL 732 does not belong to "HORÁRIO DE VERÃO" according to +# LegisMac.... Note that between 1942 and 1945, the time switched +# between GMT+9 and GMT+10. Also in 1965 and 1965 the DST ended at 2:30am. + +# From Paul Eggert (2018-05-10): +# The 1904 decree says that Macau changed from the meridian of +# Fortaleza do Monte, presumably the basis for the 7:34:10 for LMT. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Macau 1961 1962 - Mar Sun>=16 3:30 1:00 S -Rule Macau 1961 1964 - Nov Sun>=1 3:30 0 - -Rule Macau 1963 only - Mar Sun>=16 0:00 1:00 S -Rule Macau 1964 only - Mar Sun>=16 3:30 1:00 S -Rule Macau 1965 only - Mar Sun>=16 0:00 1:00 S -Rule Macau 1965 only - Oct 31 0:00 0 - -Rule Macau 1966 1971 - Apr Sun>=16 3:30 1:00 S -Rule Macau 1966 1971 - Oct Sun>=16 3:30 0 - -Rule Macau 1972 1974 - Apr Sun>=15 0:00 1:00 S -Rule Macau 1972 1973 - Oct Sun>=15 0:00 0 - -Rule Macau 1974 1977 - Oct Sun>=15 3:30 0 - -Rule Macau 1975 1977 - Apr Sun>=15 3:30 1:00 S -Rule Macau 1978 1980 - Apr Sun>=15 0:00 1:00 S -Rule Macau 1978 1980 - Oct Sun>=15 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Macau 7:34:20 - LMT 1912 Jan 1 - 8:00 Macau MO%sT 1999 Dec 20 # return to China - 8:00 PRC C%sT +Rule Macau 1942 1943 - Apr 30 23:00 1:00 - +Rule Macau 1942 only - Nov 17 23:00 0 - +Rule Macau 1943 only - Sep 30 23:00 0 S +Rule Macau 1946 only - Apr 30 23:00s 1:00 D +Rule Macau 1946 only - Sep 30 23:00s 0 S +Rule Macau 1947 only - Apr 19 23:00s 1:00 D +Rule Macau 1947 only - Nov 30 23:00s 0 S +Rule Macau 1948 only - May 2 23:00s 1:00 D +Rule Macau 1948 only - Oct 31 23:00s 0 S +Rule Macau 1949 1950 - Apr Sat>=1 23:00s 1:00 D +Rule Macau 1949 1950 - Oct lastSat 23:00s 0 S +Rule Macau 1951 only - Mar 31 23:00s 1:00 D +Rule Macau 1951 only - Oct 28 23:00s 0 S +Rule Macau 1952 1953 - Apr Sat>=1 23:00s 1:00 D +Rule Macau 1952 only - Nov 1 23:00s 0 S +Rule Macau 1953 1954 - Oct lastSat 23:00s 0 S +Rule Macau 1954 1956 - Mar Sat>=17 23:00s 1:00 D +Rule Macau 1955 only - Nov 5 23:00s 0 S +Rule Macau 1956 1964 - Nov Sun>=1 03:30 0 S +Rule Macau 1957 1964 - Mar Sun>=18 03:30 1:00 D +Rule Macau 1965 1973 - Apr Sun>=16 03:30 1:00 D +Rule Macau 1965 1966 - Oct Sun>=16 02:30 0 S +Rule Macau 1967 1976 - Oct Sun>=16 03:30 0 S +Rule Macau 1973 only - Dec 30 03:30 1:00 D +Rule Macau 1975 1976 - Apr Sun>=16 03:30 1:00 D +Rule Macau 1979 only - May 13 03:30 1:00 D +Rule Macau 1979 only - Oct Sun>=16 03:30 0 S + +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Asia/Macau 7:34:10 - LMT 1904 Oct 30 + 8:00 - CST 1941 Dec 21 23:00 + 9:00 Macau +09/+10 1945 Sep 30 24:00 + 8:00 Macau C%sT ############################################################################### @@ -784,6 +1049,12 @@ Zone Asia/Macau 7:34:20 - LMT 1912 Jan 1 # Looks like the time zone split in Cyprus went through last night. # http://cyprus-mail.com/2016/10/30/cyprus-new-division-two-time-zones-now-reality/ +# From Paul Eggert (2017-10-18): +# Northern Cyprus will reinstate winter time on October 29, thus +# staying in sync with the rest of Cyprus. See: Anastasiou A. +# Cyprus to remain united in time. Cyprus Mail 2017-10-17. +# https://cyprus-mail.com/2017/10/17/cyprus-remain-united-time/ + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Cyprus 1975 only - Apr 13 0:00 1:00 S Rule Cyprus 1975 only - Oct 12 0:00 0 - @@ -794,14 +1065,15 @@ Rule Cyprus 1977 only - Sep 25 0:00 0 - Rule Cyprus 1978 only - Oct 2 0:00 0 - Rule Cyprus 1979 1997 - Sep lastSun 0:00 0 - Rule Cyprus 1981 1998 - Mar lastSun 0:00 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Nicosia 2:13:28 - LMT 1921 Nov 14 2:00 Cyprus EE%sT 1998 Sep 2:00 EUAsia EE%sT Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14 2:00 Cyprus EE%sT 1998 Sep 2:00 EUAsia EE%sT 2016 Sep 8 - 3:00 - +03 + 3:00 - +03 2017 Oct 29 1:00u + 2:00 EUAsia EE%sT # Classically, Cyprus belongs to Asia; e.g. see Herodotus, Histories, I.72. # However, for various reasons many users expect to find it under Europe. @@ -842,7 +1114,7 @@ Link Asia/Nicosia Europe/Nicosia # Byalokoz 1919 says Georgia was 2:59:11. # Go with Byalokoz. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Tbilisi 2:59:11 - LMT 1880 2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time 3:00 - +03 1957 Mar @@ -861,7 +1133,7 @@ Zone Asia/Tbilisi 2:59:11 - LMT 1880 # From João Carrascalão, brother of the former governor of East Timor, in # East Timor may be late for its millennium -# (1999-12-26/31): +# (1999-12-26/31): # Portugal tried to change the time forward in 1974 because the sun # rises too early but the suggestion raised a lot of problems with the # Timorese and I still don't think it would work today because it @@ -879,32 +1151,82 @@ Zone Asia/Tbilisi 2:59:11 - LMT 1880 # which will be permanent, with no seasonal adjustment, will happen at # midnight on Saturday, September 16. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dili 8:22:20 - LMT 1912 Jan 1 - 8:00 - TLT 1942 Feb 21 23:00 # E Timor Time - 9:00 - JST 1945 Sep 23 - 9:00 - TLT 1976 May 3 - 8:00 - WITA 2000 Sep 17 0:00 - 9:00 - TLT + 8:00 - +08 1942 Feb 21 23:00 + 9:00 - +09 1976 May 3 + 8:00 - +08 2000 Sep 17 0:00 + 9:00 - +09 # India +# British astronomer Henry Park Hollis disliked India Standard Time's offset: +# "A new time system has been proposed for India, Further India, and Burmah. +# The scheme suggested is that the times of the meridians 5½ and 6½ hours +# east of Greenwich should be adopted in these territories. No reason is +# given why hourly meridians five hours and six hours east should not be +# chosen; a plan which would bring the time of India into harmony with +# that of almost the whole of the civilised world." +# Hollis HP. Universal Time, Longitudes, and Geodesy. Mon Not R Astron Soc. +# 1905-02-10;65(4):405-6. https://doi.org/10.1093/mnras/65.4.382 + # From Ian P. Beacock, in "A brief history of (modern) time", The Atlantic -# http://www.theatlantic.com/technology/archive/2015/12/the-creation-of-modern-time/421419/ +# https://www.theatlantic.com/technology/archive/2015/12/the-creation-of-modern-time/421419/ # (2015-12-22): # In January 1906, several thousand cotton-mill workers rioted on the # outskirts of Bombay.... They were protesting the proposed abolition of # local time in favor of Indian Standard Time.... Journalists called this # dispute the "Battle of the Clocks." It lasted nearly half a century. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Kolkata 5:53:28 - LMT 1880 # Kolkata - 5:53:20 - HMT 1941 Oct # Howrah Mean Time? - 6:30 - BURT 1942 May 15 # Burma Time +# From Paul Eggert (2017-04-20): +# Good luck trying to nail down old timekeeping records in India. +# "... in the nineteenth century ... Madras Observatory took its magnetic +# measurements on Göttingen time, its meteorological measurements on Madras +# (local) time, dropped its time ball on Greenwich (ocean navigator's) time, +# and distributed civil (local time)." -- Bartky IR. Selling the true time: +# 19th-century timekeeping in america. Stanford U Press (2000), 247 note 19. +# "A more potent cause of resistance to the general adoption of the present +# standard time lies in the fact that it is Madras time. The citizen of +# Bombay, proud of being 'primus in Indis' and of Calcutta, equally proud of +# his city being the Capital of India, and - for a part of the year - the Seat +# of the Supreme Government, alike look down on Madras, and refuse to change +# the time they are using, for that of what they regard as a benighted +# Presidency; while Madras, having for long given the standard time to the +# rest of India, would resist the adoption of any other Indian standard in its +# place." -- Oldham RD. On Time in India: a suggestion for its improvement. +# Proceedings of the Asiatic Society of Bengal (April 1899), 49-55. +# +# "In 1870 ... Madras time - 'now used by the telegraph and regulated from the +# only government observatory' - was suggested as a standard railway time, +# first to be adopted on the Great Indian Peninsular Railway (GIPR).... +# Calcutta, Bombay, and Karachi, were to be allowed to continue with their +# local time for civil purposes." - Prasad R. Tracks of Change: Railways and +# Everyday Life in Colonial India. Cambridge University Press (2016), 145. +# +# Reed S, Low F. The Indian Year Book 1936-37. Bennett, Coleman, pp 27-8. +# https://archive.org/details/in.ernet.dli.2015.282212 +# This lists +052110 as Madras local time used in railways, and says that on +# 1906-01-01 railways and telegraphs in India switched to +0530. Some +# municipalities retained their former time, and the time in Calcutta +# continued to depend on whether you were at the railway station or at +# government offices. Government time was at +055320 (according to Shanks) or +# at +0554 (according to the Indian Year Book). Railway time is more +# appropriate for our purposes, as it was better documented, it is what we do +# elsewhere (e.g., Europe/London before 1880), and after 1906 it was +# consistent in the region now identified by Asia/Kolkata. So, use railway +# time for 1870-1941. Shanks is our only (and dubious) source for the +# 1941-1945 data. + +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 # Kolkata + 5:53:20 - HMT 1870 # Howrah Mean Time? + 5:21:10 - MMT 1906 Jan 1 # Madras local time + 5:30 - IST 1941 Oct + 5:30 1:00 +0630 1942 May 15 5:30 - IST 1942 Sep - 5:30 1:00 IST 1945 Oct 15 + 5:30 1:00 +0630 1945 Oct 15 5:30 - IST -# The following are like Asia/Kolkata: +# Since 1970 the following are like Asia/Kolkata: # Andaman Is # Lakshadweep (Laccadive, Minicoy and Amindivi Is) # Nicobar Is @@ -947,39 +1269,39 @@ Zone Asia/Kolkata 5:53:28 - LMT 1880 # Kolkata # WITA - +08 - Waktu Indonesia Tengah (Indonesia central time) # WIT - +09 - Waktu Indonesia Timur (Indonesia eastern time) # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # Java, Sumatra Zone Asia/Jakarta 7:07:12 - LMT 1867 Aug 10 # Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13, # but this must be a typo. 7:07:12 - BMT 1923 Dec 31 23:47:12 # Batavia - 7:20 - JAVT 1932 Nov # Java Time - 7:30 - WIB 1942 Mar 23 - 9:00 - JST 1945 Sep 23 - 7:30 - WIB 1948 May - 8:00 - WIB 1950 May - 7:30 - WIB 1964 + 7:20 - +0720 1932 Nov + 7:30 - +0730 1942 Mar 23 + 9:00 - +09 1945 Sep 23 + 7:30 - +0730 1948 May + 8:00 - +08 1950 May + 7:30 - +0730 1964 7:00 - WIB # west and central Borneo Zone Asia/Pontianak 7:17:20 - LMT 1908 May 7:17:20 - PMT 1932 Nov # Pontianak MT - 7:30 - WIB 1942 Jan 29 - 9:00 - JST 1945 Sep 23 - 7:30 - WIB 1948 May - 8:00 - WIB 1950 May - 7:30 - WIB 1964 + 7:30 - +0730 1942 Jan 29 + 9:00 - +09 1945 Sep 23 + 7:30 - +0730 1948 May + 8:00 - +08 1950 May + 7:30 - +0730 1964 8:00 - WITA 1988 Jan 1 7:00 - WIB # Sulawesi, Lesser Sundas, east and south Borneo Zone Asia/Makassar 7:57:36 - LMT 1920 7:57:36 - MMT 1932 Nov # Macassar MT - 8:00 - WITA 1942 Feb 9 - 9:00 - JST 1945 Sep 23 + 8:00 - +08 1942 Feb 9 + 9:00 - +09 1945 Sep 23 8:00 - WITA # Maluku Islands, West Papua, Papua Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov - 9:00 - WIT 1944 Sep 1 - 9:30 - ACST 1964 + 9:00 - +09 1944 Sep 1 + 9:30 - +0930 1964 9:00 - WIT # Iran @@ -1011,8 +1333,6 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # for at least the last 5 years. Before that, for a few years, the # date used was the first Thursday night of Farvardin and the last # Thursday night of Shahrivar, but I can't give exact dates.... -# I have also changed the abbreviations to what is considered correct -# here in Iran, IRST for regular time and IRDT for daylight saving time. # # From Roozbeh Pournader (2005-04-05): # The text of the Iranian law, in effect since 1925, clearly mentions @@ -1020,12 +1340,65 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # leap year calculation involved. There has never been any serious # plan to change that law.... # -# From Paul Eggert (2006-03-22): +# From Paul Eggert (2018-11-30): # Go with Shanks & Pottenger before Sept. 1991, and with Pournader thereafter. -# I used Ed Reingold's cal-persia in GNU Emacs 21.2 to check Persian dates, -# stopping after 2037 when 32-bit time_t's overflow. -# That cal-persia used Birashk's approximation, which disagrees with the solar -# calendar predictions for the year 2025, so I corrected those dates by hand. +# I used the following code in GNU Emacs 26.1 to generate the "Rule Iran" +# lines from 2008 through 2087. Emacs 26.1 uses Ed Reingold's +# cal-persia implementation of Birashk's approximation, which in the +# 2008-2087 range disagrees with the astronomical Persian calendar +# for Persian years 1404 (Gregorian 2025) and 1437 (Gregorian 2058), so +# the following code special-cases those years. See Table 15.1, page 264, of: +# Edward M. Reingold and Nachum Dershowitz, Calendrical Calculations: +# The Ultimate Edition, Cambridge University Press (2018). +# https://www.cambridge.org/fr/academic/subjects/computer-science/computing-general-interest/calendrical-calculations-ultimate-edition-4th-edition +# Page 258, footnote 2, of this book says there is some dispute over what will +# happen in 2091 (and some other years after that), so this code +# stops in 2087, as 2088 and 2089 agree with the "max" rule below. +# (cl-loop +# initially (require 'cal-persia) +# with first-persian-year = 1387 +# with last-persian-year = 1466 +# ;; Exceptional years in the above range, +# ;; from Reingold & Dershowitz Table 15.1, page 264: +# with exceptional-persian-years = '(1404 1437) +# with range-start = nil +# for persian-year from first-persian-year to last-persian-year +# do +# (let* +# ((exceptional-year-offset +# (if (member persian-year exceptional-persian-years) 1 0)) +# (beg-dst-absolute +# (+ (calendar-persian-to-absolute (list 1 1 persian-year)) +# exceptional-year-offset)) +# (end-dst-absolute +# (+ (calendar-persian-to-absolute (list 6 30 persian-year)) +# exceptional-year-offset)) +# (next-year-beg-dst-absolute +# (+ (calendar-persian-to-absolute (list 1 1 (1+ persian-year))) +# (if (member (1+ persian-year) exceptional-persian-years) 1 0))) +# (beg-dst (calendar-gregorian-from-absolute beg-dst-absolute)) +# (end-dst (calendar-gregorian-from-absolute end-dst-absolute)) +# (next-year-beg-dst (calendar-gregorian-from-absolute +# next-year-beg-dst-absolute)) +# (year (calendar-extract-year beg-dst)) +# (range-end (if range-start year "only"))) +# (setq range-start (or range-start year)) +# (when (or (/= (calendar-extract-day beg-dst) +# (calendar-extract-day next-year-beg-dst)) +# (= persian-year last-persian-year)) +# (insert +# (format +# "Rule\tIran\t%d\t%s\t-\t%s\t%2d\t24:00\t1:00\t-\n" +# range-start range-end +# (calendar-month-name (calendar-extract-month beg-dst) t) +# (calendar-extract-day beg-dst))) +# (insert +# (format +# "Rule\tIran\t%d\t%s\t-\t%s\t%2d\t24:00\t0\t-\n" +# range-start range-end +# (calendar-month-name (calendar-extract-month end-dst) t) +# (calendar-extract-day end-dst))) +# (setq range-start nil)))) # # From Oscar van Vlijmen (2005-03-30), writing about future # discrepancies between cal-persia and the Iranian calendar: @@ -1048,7 +1421,7 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # From Reuters (2007-09-16), with a heads-up from Jesper Nørgaard Welen: # ... the Guardian Council ... approved a law on Sunday to re-introduce # daylight saving time ... -# http://uk.reuters.com/article/oilRpt/idUKBLA65048420070916 +# https://uk.reuters.com/article/oilRpt/idUKBLA65048420070916 # # From Roozbeh Pournader (2007-11-05): # This is quoted from Official Gazette of the Islamic Republic of @@ -1060,68 +1433,120 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # thirtieth day of Shahrivar. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Iran 1978 1980 - Mar 21 0:00 1:00 D -Rule Iran 1978 only - Oct 21 0:00 0 S -Rule Iran 1979 only - Sep 19 0:00 0 S -Rule Iran 1980 only - Sep 23 0:00 0 S -Rule Iran 1991 only - May 3 0:00 1:00 D -Rule Iran 1992 1995 - Mar 22 0:00 1:00 D -Rule Iran 1991 1995 - Sep 22 0:00 0 S -Rule Iran 1996 only - Mar 21 0:00 1:00 D -Rule Iran 1996 only - Sep 21 0:00 0 S -Rule Iran 1997 1999 - Mar 22 0:00 1:00 D -Rule Iran 1997 1999 - Sep 22 0:00 0 S -Rule Iran 2000 only - Mar 21 0:00 1:00 D -Rule Iran 2000 only - Sep 21 0:00 0 S -Rule Iran 2001 2003 - Mar 22 0:00 1:00 D -Rule Iran 2001 2003 - Sep 22 0:00 0 S -Rule Iran 2004 only - Mar 21 0:00 1:00 D -Rule Iran 2004 only - Sep 21 0:00 0 S -Rule Iran 2005 only - Mar 22 0:00 1:00 D -Rule Iran 2005 only - Sep 22 0:00 0 S -Rule Iran 2008 only - Mar 21 0:00 1:00 D -Rule Iran 2008 only - Sep 21 0:00 0 S -Rule Iran 2009 2011 - Mar 22 0:00 1:00 D -Rule Iran 2009 2011 - Sep 22 0:00 0 S -Rule Iran 2012 only - Mar 21 0:00 1:00 D -Rule Iran 2012 only - Sep 21 0:00 0 S -Rule Iran 2013 2015 - Mar 22 0:00 1:00 D -Rule Iran 2013 2015 - Sep 22 0:00 0 S -Rule Iran 2016 only - Mar 21 0:00 1:00 D -Rule Iran 2016 only - Sep 21 0:00 0 S -Rule Iran 2017 2019 - Mar 22 0:00 1:00 D -Rule Iran 2017 2019 - Sep 22 0:00 0 S -Rule Iran 2020 only - Mar 21 0:00 1:00 D -Rule Iran 2020 only - Sep 21 0:00 0 S -Rule Iran 2021 2023 - Mar 22 0:00 1:00 D -Rule Iran 2021 2023 - Sep 22 0:00 0 S -Rule Iran 2024 only - Mar 21 0:00 1:00 D -Rule Iran 2024 only - Sep 21 0:00 0 S -Rule Iran 2025 2027 - Mar 22 0:00 1:00 D -Rule Iran 2025 2027 - Sep 22 0:00 0 S -Rule Iran 2028 2029 - Mar 21 0:00 1:00 D -Rule Iran 2028 2029 - Sep 21 0:00 0 S -Rule Iran 2030 2031 - Mar 22 0:00 1:00 D -Rule Iran 2030 2031 - Sep 22 0:00 0 S -Rule Iran 2032 2033 - Mar 21 0:00 1:00 D -Rule Iran 2032 2033 - Sep 21 0:00 0 S -Rule Iran 2034 2035 - Mar 22 0:00 1:00 D -Rule Iran 2034 2035 - Sep 22 0:00 0 S -# -# The following rules are approximations starting in the year 2038. -# These are the best post-2037 approximations available, given the -# restrictions of a single rule using a Gregorian-based data format. +Rule Iran 1978 1980 - Mar 20 24:00 1:00 - +Rule Iran 1978 only - Oct 20 24:00 0 - +Rule Iran 1979 only - Sep 18 24:00 0 - +Rule Iran 1980 only - Sep 22 24:00 0 - +Rule Iran 1991 only - May 2 24:00 1:00 - +Rule Iran 1992 1995 - Mar 21 24:00 1:00 - +Rule Iran 1991 1995 - Sep 21 24:00 0 - +Rule Iran 1996 only - Mar 20 24:00 1:00 - +Rule Iran 1996 only - Sep 20 24:00 0 - +Rule Iran 1997 1999 - Mar 21 24:00 1:00 - +Rule Iran 1997 1999 - Sep 21 24:00 0 - +Rule Iran 2000 only - Mar 20 24:00 1:00 - +Rule Iran 2000 only - Sep 20 24:00 0 - +Rule Iran 2001 2003 - Mar 21 24:00 1:00 - +Rule Iran 2001 2003 - Sep 21 24:00 0 - +Rule Iran 2004 only - Mar 20 24:00 1:00 - +Rule Iran 2004 only - Sep 20 24:00 0 - +Rule Iran 2005 only - Mar 21 24:00 1:00 - +Rule Iran 2005 only - Sep 21 24:00 0 - +Rule Iran 2008 only - Mar 20 24:00 1:00 - +Rule Iran 2008 only - Sep 20 24:00 0 - +Rule Iran 2009 2011 - Mar 21 24:00 1:00 - +Rule Iran 2009 2011 - Sep 21 24:00 0 - +Rule Iran 2012 only - Mar 20 24:00 1:00 - +Rule Iran 2012 only - Sep 20 24:00 0 - +Rule Iran 2013 2015 - Mar 21 24:00 1:00 - +Rule Iran 2013 2015 - Sep 21 24:00 0 - +Rule Iran 2016 only - Mar 20 24:00 1:00 - +Rule Iran 2016 only - Sep 20 24:00 0 - +Rule Iran 2017 2019 - Mar 21 24:00 1:00 - +Rule Iran 2017 2019 - Sep 21 24:00 0 - +Rule Iran 2020 only - Mar 20 24:00 1:00 - +Rule Iran 2020 only - Sep 20 24:00 0 - +Rule Iran 2021 2023 - Mar 21 24:00 1:00 - +Rule Iran 2021 2023 - Sep 21 24:00 0 - +Rule Iran 2024 only - Mar 20 24:00 1:00 - +Rule Iran 2024 only - Sep 20 24:00 0 - +Rule Iran 2025 2027 - Mar 21 24:00 1:00 - +Rule Iran 2025 2027 - Sep 21 24:00 0 - +Rule Iran 2028 2029 - Mar 20 24:00 1:00 - +Rule Iran 2028 2029 - Sep 20 24:00 0 - +Rule Iran 2030 2031 - Mar 21 24:00 1:00 - +Rule Iran 2030 2031 - Sep 21 24:00 0 - +Rule Iran 2032 2033 - Mar 20 24:00 1:00 - +Rule Iran 2032 2033 - Sep 20 24:00 0 - +Rule Iran 2034 2035 - Mar 21 24:00 1:00 - +Rule Iran 2034 2035 - Sep 21 24:00 0 - +Rule Iran 2036 2037 - Mar 20 24:00 1:00 - +Rule Iran 2036 2037 - Sep 20 24:00 0 - +Rule Iran 2038 2039 - Mar 21 24:00 1:00 - +Rule Iran 2038 2039 - Sep 21 24:00 0 - +Rule Iran 2040 2041 - Mar 20 24:00 1:00 - +Rule Iran 2040 2041 - Sep 20 24:00 0 - +Rule Iran 2042 2043 - Mar 21 24:00 1:00 - +Rule Iran 2042 2043 - Sep 21 24:00 0 - +Rule Iran 2044 2045 - Mar 20 24:00 1:00 - +Rule Iran 2044 2045 - Sep 20 24:00 0 - +Rule Iran 2046 2047 - Mar 21 24:00 1:00 - +Rule Iran 2046 2047 - Sep 21 24:00 0 - +Rule Iran 2048 2049 - Mar 20 24:00 1:00 - +Rule Iran 2048 2049 - Sep 20 24:00 0 - +Rule Iran 2050 2051 - Mar 21 24:00 1:00 - +Rule Iran 2050 2051 - Sep 21 24:00 0 - +Rule Iran 2052 2053 - Mar 20 24:00 1:00 - +Rule Iran 2052 2053 - Sep 20 24:00 0 - +Rule Iran 2054 2055 - Mar 21 24:00 1:00 - +Rule Iran 2054 2055 - Sep 21 24:00 0 - +Rule Iran 2056 2057 - Mar 20 24:00 1:00 - +Rule Iran 2056 2057 - Sep 20 24:00 0 - +Rule Iran 2058 2059 - Mar 21 24:00 1:00 - +Rule Iran 2058 2059 - Sep 21 24:00 0 - +Rule Iran 2060 2062 - Mar 20 24:00 1:00 - +Rule Iran 2060 2062 - Sep 20 24:00 0 - +Rule Iran 2063 only - Mar 21 24:00 1:00 - +Rule Iran 2063 only - Sep 21 24:00 0 - +Rule Iran 2064 2066 - Mar 20 24:00 1:00 - +Rule Iran 2064 2066 - Sep 20 24:00 0 - +Rule Iran 2067 only - Mar 21 24:00 1:00 - +Rule Iran 2067 only - Sep 21 24:00 0 - +Rule Iran 2068 2070 - Mar 20 24:00 1:00 - +Rule Iran 2068 2070 - Sep 20 24:00 0 - +Rule Iran 2071 only - Mar 21 24:00 1:00 - +Rule Iran 2071 only - Sep 21 24:00 0 - +Rule Iran 2072 2074 - Mar 20 24:00 1:00 - +Rule Iran 2072 2074 - Sep 20 24:00 0 - +Rule Iran 2075 only - Mar 21 24:00 1:00 - +Rule Iran 2075 only - Sep 21 24:00 0 - +Rule Iran 2076 2078 - Mar 20 24:00 1:00 - +Rule Iran 2076 2078 - Sep 20 24:00 0 - +Rule Iran 2079 only - Mar 21 24:00 1:00 - +Rule Iran 2079 only - Sep 21 24:00 0 - +Rule Iran 2080 2082 - Mar 20 24:00 1:00 - +Rule Iran 2080 2082 - Sep 20 24:00 0 - +Rule Iran 2083 only - Mar 21 24:00 1:00 - +Rule Iran 2083 only - Sep 21 24:00 0 - +Rule Iran 2084 2086 - Mar 20 24:00 1:00 - +Rule Iran 2084 2086 - Sep 20 24:00 0 - +Rule Iran 2087 only - Mar 21 24:00 1:00 - +Rule Iran 2087 only - Sep 21 24:00 0 - +# +# The following rules are approximations starting in the year 2088. +# These are the best post-2088 approximations available, given the +# restrictions of a single rule using ordinary Gregorian dates. # At some point this table will need to be extended, though quite # possibly Iran will change the rules first. -Rule Iran 2036 max - Mar 21 0:00 1:00 D -Rule Iran 2036 max - Sep 21 0:00 0 S +Rule Iran 2088 max - Mar 20 24:00 1:00 - +Rule Iran 2088 max - Sep 20 24:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Tehran 3:25:44 - LMT 1916 3:25:44 - TMT 1946 # Tehran Mean Time - 3:30 - IRST 1977 Nov - 4:00 Iran IR%sT 1979 - 3:30 Iran IR%sT + 3:30 - +0330 1977 Nov + 4:00 Iran +04/+05 1979 + 3:30 Iran +0330/+0430 # Iraq @@ -1147,25 +1572,25 @@ Zone Asia/Tehran 3:25:44 - LMT 1916 # http://www.aswataliraq.info/look/article.tpl?id=2047&IdLanguage=17&IdPublication=4&NrArticle=71743&NrIssue=1&NrSection=10 # # We have published a short article in English about the change: -# http://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html +# https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Iraq 1982 only - May 1 0:00 1:00 D -Rule Iraq 1982 1984 - Oct 1 0:00 0 S -Rule Iraq 1983 only - Mar 31 0:00 1:00 D -Rule Iraq 1984 1985 - Apr 1 0:00 1:00 D -Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 S -Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 D +Rule Iraq 1982 only - May 1 0:00 1:00 - +Rule Iraq 1982 1984 - Oct 1 0:00 0 - +Rule Iraq 1983 only - Mar 31 0:00 1:00 - +Rule Iraq 1984 1985 - Apr 1 0:00 1:00 - +Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 - +Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 - # IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the ':01' is a typo. # Shanks & Pottenger say Iraq did not observe DST 1992/1997; ignore this. # -Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 D -Rule Iraq 1991 2007 - Oct 1 3:00s 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 - +Rule Iraq 1991 2007 - Oct 1 3:00s 0 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Baghdad 2:57:40 - LMT 1890 2:57:36 - BMT 1918 # Baghdad Mean Time? - 3:00 - AST 1982 May - 3:00 Iraq A%sT + 3:00 - +03 1982 May + 3:00 Iraq +03/+04 ############################################################################### @@ -1226,6 +1651,24 @@ Rule Zion 1974 only - Jul 7 0:00 1:00 D Rule Zion 1974 only - Oct 13 0:00 0 S Rule Zion 1975 only - Apr 20 0:00 1:00 D Rule Zion 1975 only - Aug 31 0:00 0 S + +# From Alois Treindl (2019-03-06): +# http://www.moin.gov.il/Documents/שעון%20קיץ/clock-50-years-7-2014.pdf +# From Isaac Starkman (2019-03-06): +# Summer time was in that period in 1980 and 1984, see +# https://www.ynet.co.il/articles/0,7340,L-3951073,00.html +# You can of course read it in translation. +# I checked the local newspapers for that years. +# It started on midnight and end at 01.00 am. +# From Paul Eggert (2019-03-06): +# Also see this thread about the moin.gov.il URL: +# https://mm.icann.org/pipermail/tz/2018-November/027194.html +Rule Zion 1980 only - Aug 2 0:00 1:00 D +Rule Zion 1980 only - Sep 13 1:00 0 S +Rule Zion 1984 only - May 5 0:00 1:00 D +Rule Zion 1984 only - Aug 25 1:00 0 S + +# From Shanks & Pottenger: Rule Zion 1985 only - Apr 14 0:00 1:00 D Rule Zion 1985 only - Sep 15 0:00 0 S Rule Zion 1986 only - May 18 0:00 1:00 D @@ -1348,32 +1791,15 @@ Rule Zion 2004 only - Sep 22 1:00 0 S # # ftp://ftp.cs.huji.ac.il/pub/tz/announcements/2005+beyond.ps -# From Paul Eggert (2012-10-26): -# I used Ephraim Silverberg's dst-israel.el program -# (2005-02-20) -# along with Ed Reingold's cal-hebrew in GNU Emacs 21.4, -# to generate the transitions from 2005 through 2012. -# (I replaced "lastFri" with "Fri>=26" by hand.) -# The spring transitions all correspond to the following Rule: -# -# Rule Zion 2005 2012 - Mar Fri>=26 2:00 1:00 D -# -# but older zic implementations (e.g., Solaris 8) do not support -# "Fri>=26" to mean April 1 in years like 2005, so for now we list the -# springtime transitions explicitly. - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Zion 2005 only - Apr 1 2:00 1:00 D +Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D Rule Zion 2005 only - Oct 9 2:00 0 S -Rule Zion 2006 2010 - Mar Fri>=26 2:00 1:00 D Rule Zion 2006 only - Oct 1 2:00 0 S Rule Zion 2007 only - Sep 16 2:00 0 S Rule Zion 2008 only - Oct 5 2:00 0 S Rule Zion 2009 only - Sep 27 2:00 0 S Rule Zion 2010 only - Sep 12 2:00 0 S -Rule Zion 2011 only - Apr 1 2:00 1:00 D Rule Zion 2011 only - Oct 2 2:00 0 S -Rule Zion 2012 only - Mar Fri>=26 2:00 1:00 D Rule Zion 2012 only - Sep 23 2:00 0 S # From Ephraim Silverberg (2013-06-27): @@ -1389,7 +1815,7 @@ Rule Zion 2012 only - Sep 23 2:00 0 S Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D Rule Zion 2013 max - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Jerusalem 2:20:54 - LMT 1880 2:20:40 - JMT 1918 # Jerusalem Mean Time? 2:00 Zion I%sT @@ -1418,22 +1844,41 @@ Zone Asia/Jerusalem 2:20:54 - LMT 1880 # of the Japanese wanted to scrap daylight-saving time, as opposed to 30% who # wanted to keep it.) -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger write that DST in Japan during those years was as follows: +# From Takayuki Nikai (2018-01-19): +# The source of information is Japanese law. +# http://www.shugiin.go.jp/internet/itdb_housei.nsf/html/houritsu/00219480428029.htm +# http://www.shugiin.go.jp/internet/itdb_housei.nsf/html/houritsu/00719500331039.htm +# ... In summary, it is written as follows. From 24:00 on the first Saturday +# in May, until 0:00 on the day after the second Saturday in September. + +# From Phake Nick (2018-09-27): +# [T]he webpage authored by National Astronomical Observatory of Japan +# https://eco.mtk.nao.ac.jp/koyomi/wiki/BBFEB9EF2FB2C6BBFEB9EF.html +# ... mentioned that using Showa 23 (year 1948) as example, 13pm of September +# 11 in summer time will equal to 0am of September 12 in standard time. +# It cited a document issued by the Liaison Office which briefly existed +# during the postwar period of Japan, where the detail on implementation +# of the summer time is described in the document. +# https://eco.mtk.nao.ac.jp/koyomi/wiki/BBFEB9EF2FB2C6BBFEB9EFB2C6BBFEB9EFA4CEBCC2BBDCA4CBA4C4A4A4A4C6.pdf +# The text in the document do instruct a fall back to occur at +# September 11, 13pm in summer time, while ordinary citizens can +# change the clock before they sleep. +# +# From Paul Eggert (2018-09-27): +# This instruction is equivalent to "Sat>=8 25:00", so use that. zic treats +# it like "Sun>=9 01:00", which is not quite the same but is the best we can +# do in any POSIX or C platform. The "25:00" assumes zic from 2007 or later, +# which should be safe now. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Japan 1948 only - May Sun>=1 2:00 1:00 D -Rule Japan 1948 1951 - Sep Sat>=8 2:00 0 S -Rule Japan 1949 only - Apr Sun>=1 2:00 1:00 D -Rule Japan 1950 1951 - May Sun>=1 2:00 1:00 D -# but the only locations using it (for birth certificates, presumably, since -# their audience is astrologers) were US military bases. For now, assume -# that for most purposes daylight-saving time was observed; otherwise, what -# would have been the point of the 1951 poll? +Rule Japan 1948 only - May Sat>=1 24:00 1:00 D +Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S +Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D +Rule Japan 1950 1951 - May Sat>=1 24:00 1:00 D # From Hideyuki Suzuki (1998-11-09): # 'Tokyo' usually stands for the former location of Tokyo Astronomical -# Observatory: 139 degrees 44' 40.90" E (9h 18m 58.727s), -# 35 degrees 39' 16.0" N. +# Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N. # This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996' # edited by National Astronomical Observatory of Japan.... # JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST). @@ -1441,10 +1886,10 @@ Rule Japan 1950 1951 - May Sun>=1 2:00 1:00 D # From Hideyuki Suzuki (1998-11-16): # The ordinance No. 51 (1886) established "standard time" in Japan, -# which stands for the time on 135 degrees E. +# which stands for the time on 135° E. # In the ordinance No. 167 (1895), "standard time" was renamed to "central # standard time". And the same ordinance also established "western standard -# time", which stands for the time on 120 degrees E.... But "western standard +# time", which stands for the time on 120° E.... But "western standard # time" was abolished in the ordinance No. 529 (1937). In the ordinance No. # 167, there is no mention regarding for what place western standard time is # standard.... @@ -1455,19 +1900,19 @@ Rule Japan 1950 1951 - May Sun>=1 2:00 1:00 D # From Yu-Cheng Chuang (2013-07-12): # ...the Meiji Emperor announced Ordinance No. 167 of Meiji Year 28 "The clause # about standard time" ... The adoption began from Jan 1, 1896. -# http://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時) +# https://ja.wikisource.org/wiki/標準時ニ關スル件_(公布時) # # ...the Showa Emperor announced Ordinance No. 529 of Showa Year 12 ... which # means the whole Japan territory, including later occupations, adopt Japan -# Central Time (UTC+9). The adoption began on Oct 1, 1937. -# http://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件 +# Central Time (UT+9). The adoption began on Oct 1, 1937. +# https://ja.wikisource.org/wiki/明治二十八年勅令第百六十七號標準時ニ關スル件中改正ノ件 -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u - 9:00 - JST 1896 Jan 1 - 9:00 - JCST 1937 Oct 1 9:00 Japan J%sT -# Since 1938, all Japanese possessions have been like Asia/Tokyo. +# Since 1938, all Japanese possessions have been like Asia/Tokyo, +# except that Truk (Chuuk), Ponape (Pohnpei), and Jaluit (Kosrae) did not +# switch from +10 to +09 until 1941-04-01; see the 'australasia' file. # Jordan # @@ -1524,7 +1969,7 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u # Official, in Arabic: # http://www.petra.gov.jo/public_news/Nws_NewsDetails.aspx?Menu_ID=&Site_Id=2&lang=1&NewsID=133230&CatID=14 # ... Our background/permalink about it -# http://www.timeanddate.com/news/time/jordan-reverses-dst-decision.html +# https://www.timeanddate.com/news/time/jordan-reverses-dst-decision.html # ... # http://www.petra.gov.jo/Public_News/Nws_NewsDetails.aspx?lang=2&site_id=1&NewsID=133313&Type=P # ... says midnight for the coming one and 1:00 for the ones in the future @@ -1565,7 +2010,7 @@ Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 - Rule Jordan 2013 only - Dec 20 0:00 0 - Rule Jordan 2014 max - Mar lastThu 24:00 1:00 S Rule Jordan 2014 max - Oct lastFri 0:00s 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Amman 2:23:44 - LMT 1931 2:00 Jordan EE%sT @@ -1606,8 +2051,8 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # text. # # According to Izvestia newspaper No. 68 (23334) from 1991-03-20 -# (page 6; available at http://libinfo.org/newsr/newsr2574.djvu via -# http://libinfo.org/index.php?id=58564) on 1991-03-31 at 2:00 during +# -- page 6; available at http://libinfo.org/newsr/newsr2574.djvu via +# http://libinfo.org/index.php?id=58564 -- on 1991-03-31 at 2:00 during # transition to "summer" time: # Republic of Georgia, Latvian SSR, Lithuanian SSR, SSR Moldova, # Estonian SSR; Komi ASSR; Kaliningrad oblast; Nenets autonomous okrug @@ -1623,7 +2068,7 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # Apparently there were last minute changes. Apparently Kazakh act No. 170 # was one of such changes. # -# https://ru.wikipedia.org/wiki/Декретное время +# https://ru.wikipedia.org/wiki/Декретное_время # claims that Sovetskaya Rossiya newspaper on 1991-03-29 published that # Nenets autonomous okrug, Komi and Kazakhstan (excluding Uralsk oblast) # were to not move clocks and Uralsk oblast was to move clocks @@ -1741,10 +2186,28 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # Kazakh 1992-01-13 act appears to provide the same rules and 1992-03-27 # act was to be enacted on the last Sunday of March 1992. -# From Paul Eggert (2016-11-07): -# The tables below reflect Golosunov's remarks, with exceptions as noted. +# From Stepan Golosunov (2016-11-08): +# Turgai reorganization should affect only southern part of Qostanay +# oblast. Which should probably be separated into Asia/Arkalyk zone. +# (There were also 1970, 1988 and 1990 Turgai oblast reorganizations +# according to wikipedia.) +# +# [For Qostanay] http://www.ng.kz/gazeta/195/hranit/ +# suggests that clocks were to be moved 40 minutes backwards on +# 1920-01-01 to the fourth time belt. But I do not understand +# how that could happen.... +# +# [For Atyrau and Oral] 1919 decree +# (http://www.worldtimezone.com/dst_news/dst_news_russia-1919-02-08.html +# and in Byalokoz) lists Ural river (plus 10 versts on its left bank) in +# the third time belt (before 1930 this means +03). + +# From Alexander Konzurovski (2018-12-20): +# Qyzyolrda Region (Asia/Qyzylorda) is changing its time zone from +# UTC+6 to UTC+5 effective December 21st, 2018. The legal document is +# located here: http://adilet.zan.kz/rus/docs/P1800000817 (russian language). -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # # Almaty (formerly Alma-Ata), representing most locations in Kazakhstan # This includes KZ-AKM, KZ-ALA, KZ-ALM, KZ-AST, KZ-BAY, KZ-VOS, KZ-ZHA, @@ -1756,8 +2219,6 @@ Zone Asia/Almaty 5:07:48 - LMT 1924 May 2 # or Alma-Ata 6:00 RussiaAsia +06/+07 2004 Oct 31 2:00s 6:00 - +06 # Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.) (KZ-KZY) -# This currently includes Qostanay (aka Kostanay, Kustanay) (KZ-KUS); -# see comments below. Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 5:00 - +05 1981 Apr 1 @@ -1768,21 +2229,22 @@ Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 5:00 RussiaAsia +05/+06 1992 Jan 19 2:00s 6:00 RussiaAsia +06/+07 1992 Mar 29 2:00s 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s - 6:00 - +06 -# The following zone is like Asia/Qyzylorda except for being one -# hour earlier from 1991-09-29 to 1992-03-29. The 1991/2 rules for -# Qostenay are unclear partly because of the 1997 Turgai -# reorganization, so this zone is commented out for now. -#Zone Asia/Qostanay 4:14:20 - LMT 1924 May 2 -# 4:00 - +04 1930 Jun 21 -# 5:00 - +05 1981 Apr 1 -# 5:00 1:00 +06 1981 Oct 1 -# 6:00 - +06 1982 Apr 1 -# 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s -# 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s -# 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s -# 6:00 - +06 + 6:00 - +06 2018 Dec 21 0:00 + 5:00 - +05 # +# Qostanay (aka Kostanay, Kustanay) (KZ-KUS) +# The 1991/2 rules are unclear partly because of the 1997 Turgai +# reorganization. +Zone Asia/Qostanay 4:14:28 - LMT 1924 May 2 + 4:00 - +04 1930 Jun 21 + 5:00 - +05 1981 Apr 1 + 5:00 1:00 +06 1981 Oct 1 + 6:00 - +06 1982 Apr 1 + 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s + 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s + 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s + 6:00 - +06 + # Aqtöbe (aka Aktobe, formerly Aktyubinsk) (KZ-AKT) Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 @@ -1795,7 +2257,7 @@ Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2 5:00 - +05 # Mangghystaū (KZ-MAN) # Aqtau was not founded until 1963, but it represents an inhabited region, -# so include time stamps before 1963. +# so include timestamps before 1963. Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 5:00 - +05 1981 Oct 1 @@ -1808,7 +2270,7 @@ Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 # Atyraū (KZ-ATY) is like Mangghystaū except it switched from # +04/+05 to +05/+06 in spring 1999, not fall 1994. Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2 - 4:00 - +04 1930 Jun 21 + 3:00 - +03 1930 Jun 21 5:00 - +05 1981 Oct 1 6:00 - +06 1982 Apr 1 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s @@ -1820,7 +2282,7 @@ Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2 # From Paul Eggert (2016-03-18): # The 1989 transition is from USSR act No. 227 (1989-03-14). Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk - 4:00 - +04 1930 Jun 21 + 3:00 - +03 1930 Jun 21 5:00 - +05 1981 Apr 1 5:00 1:00 +06 1981 Oct 1 6:00 - +06 1982 Apr 1 @@ -1843,11 +2305,11 @@ Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk # From 2005-08-12 our GMT-offset is +6, w/o any daylight saving. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 S +Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 - Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 - -Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 S +Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 - Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 5:00 - +05 1930 Jun 21 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s @@ -1866,9 +2328,9 @@ Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 # between 1987 and 1988 ... # From Sanghyuk Jung (2014-10-29): -# http://mm.icann.org/pipermail/tz/2014-October/021830.html +# https://mm.icann.org/pipermail/tz/2014-October/021830.html # According to the Korean Wikipedia -# http://ko.wikipedia.org/wiki/한국_표준시 +# https://ko.wikipedia.org/wiki/한국_표준시 # [oldid=12896437 2014-09-04 08:03 UTC] # DST in Republic of Korea was as follows.... And I checked old # newspapers in Korean, all articles correspond with data in Wikipedia. @@ -1876,21 +2338,43 @@ Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 # started at June 1 in that year. For another example, the article in # 1988 said that DST started at 2:00 AM in that year. +# From Phake Nick (2018-10-27): +# 1. According to official announcement from Korean government, the DST end +# date in South Korea should be +# 1955-09-08 without specifying time +# http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0027977557 +# 1956-09-29 without specifying time +# http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0027978341 +# 1957-09-21 24 o'clock +# http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0027979690#3 +# 1958-09-20 24 o'clock +# http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0027981189 +# 1959-09-19 24 o'clock +# http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0027982974#2 +# 1960-09-17 24 o'clock +# http://theme.archives.go.kr/next/common/viewEbook.do?singleData=N&archiveEventId=0028044104 +# ... +# 2.... https://namu.wiki/w/대한민국%20표준시 ... [says] +# when Korea was using GMT+8:30 as standard time, the international +# aviation/marine/meteorological industry in the country refused to +# follow and continued to use GMT+9:00 for interoperability. + + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule ROK 1948 only - Jun 1 0:00 1:00 D -Rule ROK 1948 only - Sep 13 0:00 0 S -Rule ROK 1949 only - Apr 3 0:00 1:00 D -Rule ROK 1949 1951 - Sep Sun>=8 0:00 0 S -Rule ROK 1950 only - Apr 1 0:00 1:00 D -Rule ROK 1951 only - May 6 0:00 1:00 D -Rule ROK 1955 only - May 5 0:00 1:00 D -Rule ROK 1955 only - Sep 9 0:00 0 S -Rule ROK 1956 only - May 20 0:00 1:00 D -Rule ROK 1956 only - Sep 30 0:00 0 S -Rule ROK 1957 1960 - May Sun>=1 0:00 1:00 D -Rule ROK 1957 1960 - Sep Sun>=18 0:00 0 S -Rule ROK 1987 1988 - May Sun>=8 2:00 1:00 D -Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S +Rule ROK 1948 only - Jun 1 0:00 1:00 D +Rule ROK 1948 only - Sep 12 24:00 0 S +Rule ROK 1949 only - Apr 3 0:00 1:00 D +Rule ROK 1949 1951 - Sep Sat>=7 24:00 0 S +Rule ROK 1950 only - Apr 1 0:00 1:00 D +Rule ROK 1951 only - May 6 0:00 1:00 D +Rule ROK 1955 only - May 5 0:00 1:00 D +Rule ROK 1955 only - Sep 8 24:00 0 S +Rule ROK 1956 only - May 20 0:00 1:00 D +Rule ROK 1956 only - Sep 29 24:00 0 S +Rule ROK 1957 1960 - May Sun>=1 0:00 1:00 D +Rule ROK 1957 1960 - Sep Sat>=17 24:00 0 S +Rule ROK 1987 1988 - May Sun>=8 2:00 1:00 D +Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S # From Paul Eggert (2016-08-23): # The Korean Wikipedia entry gives the following sources for UT offsets: @@ -1923,20 +2407,36 @@ Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S # There is no common English-language abbreviation for this time zone. # Use KST, as that's what we already use for 1954-1961 in ROK. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# From Kang Seonghoon (2018-04-29): +# North Korea will revert its time zone from UTC+8:30 (PYT; Pyongyang +# Time) back to UTC+9 (KST; Korea Standard Time). +# +# From Seo Sanghyeon (2018-04-30): +# Rodong Sinmun 2018-04-30 announced Pyongyang Time transition plan. +# https://www.nknews.org/kcna/wp-content/uploads/sites/5/2018/04/rodong-2018-04-30.pdf +# ... the transition date is 2018-05-05 ... Citation should be Decree +# No. 2232 of April 30, 2018, of the Presidium of the Supreme People's +# Assembly, as published in Rodong Sinmun. +# From Tim Parenti (2018-04-29): +# It appears to be the front page story at the top in the right-most column. +# +# From Paul Eggert (2018-05-04): +# The BBC reported that the transition was from 23:30 to 24:00 today. +# https://www.bbc.com/news/world-asia-44010705 + +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Seoul 8:27:52 - LMT 1908 Apr 1 8:30 - KST 1912 Jan 1 - 9:00 - JCST 1937 Oct 1 9:00 - JST 1945 Sep 8 - 9:00 - KST 1954 Mar 21 + 9:00 ROK K%sT 1954 Mar 21 8:30 ROK K%sT 1961 Aug 10 9:00 ROK K%sT Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1 8:30 - KST 1912 Jan 1 - 9:00 - JCST 1937 Oct 1 9:00 - JST 1945 Aug 24 9:00 - KST 2015 Aug 15 00:00 - 8:30 - KST + 8:30 - KST 2018 May 4 23:30 + 9:00 - KST ############################################################################### @@ -1973,45 +2473,44 @@ Rule Lebanon 1992 only - Oct 4 0:00 0 - Rule Lebanon 1993 max - Mar lastSun 0:00 1:00 S Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 - Rule Lebanon 1999 max - Oct lastSun 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Beirut 2:22:00 - LMT 1880 2:00 Lebanon EE%sT # Malaysia # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 TS # one-Third Summer +Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 - Rule NBorneo 1935 1941 - Dec 14 0:00 0 - # # peninsular Malaysia # taken from Mok Ly Yng (2003-10-30) # http://www.math.nus.edu.sg/aslaksen/teaching/timezone.html -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kuala_Lumpur 6:46:46 - LMT 1901 Jan 1 6:55:25 - SMT 1905 Jun 1 # Singapore M.T. - 7:00 - MALT 1933 Jan 1 # Malaya Time - 7:00 0:20 MALST 1936 Jan 1 - 7:20 - MALT 1941 Sep 1 - 7:30 - MALT 1942 Feb 16 - 9:00 - JST 1945 Sep 12 - 7:30 - MALT 1982 Jan 1 - 8:00 - MYT # Malaysia Time + 7:00 - +07 1933 Jan 1 + 7:00 0:20 +0720 1936 Jan 1 + 7:20 - +0720 1941 Sep 1 + 7:30 - +0730 1942 Feb 16 + 9:00 - +09 1945 Sep 12 + 7:30 - +0730 1982 Jan 1 + 8:00 - +08 # Sabah & Sarawak # From Paul Eggert (2014-08-12): # The data entries here are mostly from Shanks & Pottenger, but the 1942, 1945 # and 1982 transition dates are from Mok Ly Yng. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kuching 7:21:20 - LMT 1926 Mar - 7:30 - BORT 1933 # Borneo Time - 8:00 NBorneo BOR%sT 1942 Feb 16 - 9:00 - JST 1945 Sep 12 - 8:00 - BORT 1982 Jan 1 - 8:00 - MYT + 7:30 - +0730 1933 + 8:00 NBorneo +08/+0820 1942 Feb 16 + 9:00 - +09 1945 Sep 12 + 8:00 - +08 # Maldives -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Indian/Maldives 4:54:00 - LMT 1880 # Male - 4:54:00 - MMT 1960 # Male Mean Time - 5:00 - MVT # Maldives Time +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé + 4:54:00 - MMT 1960 # Malé Mean Time + 5:00 - +05 # Mongolia @@ -2093,7 +2592,7 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male # +08:00 instead. Different sources appear to disagree with the tz # database on this, e.g.: # -# http://www.timeanddate.com/worldclock/city.html?n=1026 +# https://www.timeanddate.com/worldclock/city.html?n=1026 # http://www.worldtimeserver.com/current_time_in_MN.aspx # # both say GMT+08:00. @@ -2125,7 +2624,7 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male # http://zasag.mn/news/view/8969 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Mongol 1983 1984 - Apr 1 0:00 1:00 S +Rule Mongol 1983 1984 - Apr 1 0:00 1:00 - Rule Mongol 1983 only - Oct 1 0:00 0 - # Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00, # but McDow says the 2001 switches occurred at 02:00. Also, IATA SSIM @@ -2138,37 +2637,41 @@ Rule Mongol 1983 only - Oct 1 0:00 0 - # correction of 02:00 (in the previous edition) not being done correctly # in the latest edition; so ignore it for now. -Rule Mongol 1985 1998 - Mar lastSun 0:00 1:00 S +# From Ganbold Tsagaankhuu (2017-02-09): +# Mongolian Government meeting has concluded today to cancel daylight +# saving time adoption in Mongolia. Source: http://zasag.mn/news/view/16192 + +Rule Mongol 1985 1998 - Mar lastSun 0:00 1:00 - Rule Mongol 1984 1998 - Sep lastSun 0:00 0 - # IATA SSIM (1999-09) says Mongolia no longer observes DST. -Rule Mongol 2001 only - Apr lastSat 2:00 1:00 S +Rule Mongol 2001 only - Apr lastSat 2:00 1:00 - Rule Mongol 2001 2006 - Sep lastSat 2:00 0 - -Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 S -Rule Mongol 2015 max - Mar lastSat 2:00 1:00 S -Rule Mongol 2015 max - Sep lastSat 0:00 0 - +Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 - +Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 - +Rule Mongol 2015 2016 - Sep lastSat 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # Hovd, a.k.a. Chovd, Dund-Us, Dzhargalant, Khovd, Jirgalanta Zone Asia/Hovd 6:06:36 - LMT 1905 Aug - 6:00 - HOVT 1978 # Hovd Time - 7:00 Mongol HOV%sT + 6:00 - +06 1978 + 7:00 Mongol +07/+08 # Ulaanbaatar, a.k.a. Ulan Bataar, Ulan Bator, Urga Zone Asia/Ulaanbaatar 7:07:32 - LMT 1905 Aug - 7:00 - ULAT 1978 # Ulaanbaatar Time - 8:00 Mongol ULA%sT + 7:00 - +07 1978 + 8:00 Mongol +08/+09 # Choibalsan, a.k.a. Bajan Tümen, Bajan Tumen, Chojbalsan, # Choybalsan, Sanbejse, Tchoibalsan Zone Asia/Choibalsan 7:38:00 - LMT 1905 Aug - 7:00 - ULAT 1978 - 8:00 - ULAT 1983 Apr - 9:00 Mongol CHO%sT 2008 Mar 31 # Choibalsan Time - 8:00 Mongol CHO%sT + 7:00 - +07 1978 + 8:00 - +08 1983 Apr + 9:00 Mongol +09/+10 2008 Mar 31 + 8:00 Mongol +08/+09 # Nepal -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Kathmandu 5:41:16 - LMT 1920 - 5:30 - IST 1986 - 5:45 - NPT # Nepal Time + 5:30 - +0530 1986 + 5:45 - +0545 # Oman # See Asia/Dubai. @@ -2219,7 +2722,7 @@ Zone Asia/Kathmandu 5:41:16 - LMT 1920 # help reduce load shedding by approving the closure of commercial centres at # 9pm and moving clocks forward by one hour for the next three months. ...." # -# http://www.worldtimezone.net/dst_news/dst_news_pakistan01.html +# http://www.worldtimezone.com/dst_news/dst_news_pakistan01.html # http://www.dailytimes.com.pk/default.asp?page=2008%5C05%5C15%5Cstory_15-5-2008_pg1_4 # From Arthur David Olson (2008-05-19): @@ -2285,7 +2788,7 @@ Zone Asia/Kathmandu 5:41:16 - LMT 1920 # # We have confirmed this year's end date with both with the Ministry of # Water and Power and the Pakistan Electric Power Company: -# http://www.timeanddate.com/news/time/pakistan-ends-dst09.html +# https://www.timeanddate.com/news/time/pakistan-ends-dst09.html # From Christoph Göhre (2009-10-01): # [T]he German Consulate General in Karachi reported me today that Pakistan @@ -2315,12 +2818,12 @@ Rule Pakistan 2008 only - Jun 1 0:00 1:00 S Rule Pakistan 2008 2009 - Nov 1 0:00 0 - Rule Pakistan 2009 only - Apr 15 0:00 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Karachi 4:28:12 - LMT 1907 - 5:30 - IST 1942 Sep - 5:30 1:00 IST 1945 Oct 15 - 5:30 - IST 1951 Sep 30 - 5:00 - KART 1971 Mar 26 # Karachi Time + 5:30 - +0530 1942 Sep + 5:30 1:00 +0630 1945 Oct 15 + 5:30 - +0530 1951 Sep 30 + 5:00 - +05 1971 Mar 26 5:00 Pakistan PK%sT # Pakistan Time # Palestine @@ -2467,7 +2970,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # # We are not sure if Gaza will do the same, last year they had a different # end date, we will keep this page updated: -# http://www.timeanddate.com/news/time/westbank-gaza-dst-2009.html +# https://www.timeanddate.com/news/time/westbank-gaza-dst-2009.html # From Alexander Krivenyshev (2009-09-02): # Seems that Gaza Strip will go back to Winter Time same date as West Bank. @@ -2505,7 +3008,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # the clocks were set back one hour at 2010-08-11 00:00:00 local time in # Gaza and the West Bank. # Some more background info: -# http://www.timeanddate.com/news/time/westbank-gaza-end-dst-2010.html +# https://www.timeanddate.com/news/time/westbank-gaza-end-dst-2010.html # From Steffen Thorsen (2011-08-26): # Gaza and the West Bank did go back to standard time in the beginning of @@ -2515,7 +3018,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # # http://www.maannews.net/eng/ViewDetails.aspx?ID=416217 # Additional info: -# http://www.timeanddate.com/news/time/palestine-dst-2011.html +# https://www.timeanddate.com/news/time/palestine-dst-2011.html # From Alexander Krivenyshev (2011-08-27): # According to the article in The Jerusalem Post: @@ -2525,7 +3028,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # The Hamas government said on Saturday that it won't observe summertime after # the Muslim feast of Id al-Fitr, which begins on Tuesday..." # ... -# http://www.jpost.com/MiddleEast/Article.aspx?id=235650 +# https://www.jpost.com/MiddleEast/Article.aspx?id=235650 # http://www.worldtimezone.com/dst_news/dst_news_gazastrip05.html # The rules for Egypt are stolen from the 'africa' file. @@ -2546,7 +3049,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # http://safa.ps/details/news/74352/%D8%A8%D8%AF%D8%A1-%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%AA-%D8%A7%D9%84%D8%B5%D9%8A%D9%81%D9%8A-%D8%A8%D8%A7%D9%84%D8%B6%D9%81%D8%A9-%D9%88%D8%BA%D8%B2%D8%A9-%D9%84%D9%8A%D9%84%D8%A9-%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D8%A9.html # # Our brief summary: -# http://www.timeanddate.com/news/time/gaza-west-bank-dst-2012.html +# https://www.timeanddate.com/news/time/gaza-west-bank-dst-2012.html # From Steffen Thorsen (2013-03-26): # The following news sources tells that Palestine will "start daylight saving @@ -2566,11 +3069,11 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # From Steffen Thorsen (2015-03-03): # Sources such as http://www.alquds.com/news/article/view/id/548257 -# and http://www.raya.ps/ar/news/890705.html say Palestine areas will +# and https://www.raya.ps/ar/news/890705.html say Palestine areas will # start DST on 2015-03-28 00:00 which is one day later than expected. # # From Paul Eggert (2015-03-03): -# http://www.timeanddate.com/time/change/west-bank/ramallah?year=2014 +# https://www.timeanddate.com/time/change/west-bank/ramallah?year=2014 # says that the fall 2014 transition was Oct 23 at 24:00. # From Hannah Kreitem (2016-03-09): @@ -2578,9 +3081,6 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # [Google translation]: "The Council also decided to start daylight # saving in Palestine as of one o'clock on Saturday morning, # 2016-03-26, to provide the clock 60 minutes ahead." -# -# From Paul Eggert (2016-03-12): -# Predict spring transitions on March's last Saturday at 01:00 from now on. # From Sharef Mustafa (2016-10-19): # [T]he Palestinian cabinet decision (Mar 8th 2016) published on @@ -2594,8 +3094,32 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # # From Paul Eggert (2016-10-19): # It's also consistent with predictions in the following URLs today: -# http://www.timeanddate.com/time/change/gaza-strip/gaza -# http://www.timeanddate.com/time/change/west-bank/hebron +# https://www.timeanddate.com/time/change/gaza-strip/gaza +# https://www.timeanddate.com/time/change/west-bank/hebron + +# From Sharef Mustafa (2018-03-16): +# Palestine summer time will start on Mar 24th 2018 by advancing the +# clock by 60 minutes as per Palestinian cabinet decision published on +# the official website, though the decree did not specify the exact +# time of the time shift. +# http://www.palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e7a42ab7-ee23-435a-b9c8-a4f7e81f3817 + +# From Even Scharning (2019-03-23): +# http://pnn.ps/news/401130 +# http://palweather.ps/ar/node/50136.html +# +# From Sharif Mustafa (2019-03-26): +# The Palestinian cabinet announced today that the switch to DST will +# be on Fri Mar 29th 2019 by advancing the clock by 60 minutes. +# The decree signing date is Mar 12th but it was not published till today. +# The decree does not specify the exact time of switch. +# http://palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e54e9ea1-50ee-4137-84df-0d6c78da259b +# +# From Even Scharning (2019-04-10): +# Our source in Palestine said it happened Friday 29 at 00:00 local time.... +# +# From Paul Eggert (2019-04-10): +# For now, guess spring-ahead transitions are March's last Friday at 00:00. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S @@ -2626,10 +3150,11 @@ Rule Palestine 2012 only - Sep 21 1:00 0 - Rule Palestine 2013 only - Sep Fri>=21 0:00 0 - Rule Palestine 2014 2015 - Oct Fri>=21 0:00 0 - Rule Palestine 2015 only - Mar lastFri 24:00 1:00 S -Rule Palestine 2016 max - Mar lastSat 1:00 1:00 S +Rule Palestine 2016 2018 - Mar Sat>=24 1:00 1:00 S Rule Palestine 2016 max - Oct lastSat 1:00 0 - +Rule Palestine 2019 max - Mar lastFri 0:00 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct 2:00 Zion EET/EEST 1948 May 15 2:00 EgyptAsia EE%sT 1967 Jun 5 @@ -2654,11 +3179,16 @@ Zone Asia/Hebron 2:20:23 - LMT 1900 Oct # no information # Philippines + +# From Paul Eggert (2018-11-18): +# The Spanish initially used American (west-of-Greenwich) time. +# It is unknown what time Manila kept when the British occupied it from +# 1762-10-06 through 1764-04; for now assume it kept American time. # On 1844-08-16, Narciso Clavería, governor-general of the # Philippines, issued a proclamation announcing that 1844-12-30 was to # be immediately followed by 1845-01-01; see R.H. van Gent's # History of the International Date Line -# http://www.staff.science.uu.nl/~gent0113/idl/idl_philippines.htm +# https://www.staff.science.uu.nl/~gent0113/idl/idl_philippines.htm # The rest of the data entries are from Shanks & Pottenger. # From Jesper Nørgaard Welen (2006-04-26): @@ -2675,38 +3205,73 @@ Zone Asia/Hebron 2:20:23 - LMT 1900 Oct # Philippine Star 2014-08-05 # http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time +# From Paul Goyette (2018-06-15): +# In the Philippines, there is a national law, Republic Act No. 10535 +# which declares the official time here as "Philippine Standard Time". +# The act [1] even specifies use of PST as the abbreviation, although +# the FAQ provided by PAGASA [2] uses the "acronym PhST to distinguish +# it from the Pacific Standard Time (PST)." +# [1] http://www.officialgazette.gov.ph/2013/05/15/republic-act-no-10535/ +# [2] https://www1.pagasa.dost.gov.ph/index.php/astronomy/philippine-standard-time#republic-act-10535 +# +# From Paul Eggert (2018-06-19): +# I surveyed recent news reports, and my impression is that "PST" is +# more popular among reliable English-language news sources. This is +# not just a measure of Google hit counts: it's also the sizes and +# influence of the sources. There is no current abbreviation for DST, +# so use "PDT", the usual American style. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Phil 1936 only - Nov 1 0:00 1:00 S -Rule Phil 1937 only - Feb 1 0:00 0 - -Rule Phil 1954 only - Apr 12 0:00 1:00 S -Rule Phil 1954 only - Jul 1 0:00 0 - -Rule Phil 1978 only - Mar 22 0:00 1:00 S -Rule Phil 1978 only - Sep 21 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Phil 1936 only - Nov 1 0:00 1:00 D +Rule Phil 1937 only - Feb 1 0:00 0 S +Rule Phil 1954 only - Apr 12 0:00 1:00 D +Rule Phil 1954 only - Jul 1 0:00 0 S +Rule Phil 1978 only - Mar 22 0:00 1:00 D +Rule Phil 1978 only - Sep 21 0:00 0 S +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31 8:04:00 - LMT 1899 May 11 - 8:00 Phil PH%sT 1942 May + 8:00 Phil P%sT 1942 May 9:00 - JST 1944 Nov - 8:00 Phil PH%sT + 8:00 Phil P%sT # Qatar -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha - 4:00 - GST 1972 Jun - 3:00 - AST + 4:00 - +04 1972 Jun + 3:00 - +03 Link Asia/Qatar Asia/Bahrain # Saudi Arabia # -# From Paul Eggert (2014-07-15): +# From Paul Eggert (2018-08-29): # Time in Saudi Arabia and other countries in the Arabian peninsula was not -# standardized until relatively recently; we don't know when, and possibly it +# standardized until 1968 or so; we don't know exactly when, and possibly it # has never been made official. Richard P Hunt, in "Islam city yielding to # modern times", New York Times (1961-04-09), p 20, wrote that only airlines # observed standard time, and that people in Jeddah mostly observed quasi-solar # time, doing so by setting their watches at sunrise to 6 o'clock (or to 12 # o'clock for "Arab" time). # +# Timekeeping differed depending on who you were and which part of Saudi +# Arabia you were in. In 1969, Elias Antar wrote that although a common +# practice had been to set one's watch to 12:00 (i.e., midnight) at sunset - +# which meant that the time on one side of a mountain could differ greatly from +# the time on the other side - many foreigners set their watches to 6pm +# instead, while airlines instead used UTC +03 (except in Dhahran, where they +# used UTC +04), Aramco used UTC +03 with DST, and the Trans-Arabian Pipe Line +# Company used Aramco time in eastern Saudi Arabia and airline time in western. +# (The American Military Aid Advisory Group used plain UTC.) Antar writes, +# "A man named Higgins, so the story goes, used to run a local power +# station. One day, the whole thing became too much for Higgins and he +# assembled his staff and laid down the law. 'I've had enough of this,' he +# shrieked. 'It is now 12 o'clock Higgins Time, and from now on this station is +# going to run on Higgins Time.' And so, until last year, it did." See: +# Antar E. Dinner at When? Saudi Aramco World, 1969 March/April. 2-3. +# http://archive.aramcoworld.com/issue/196902/dinner.at.when.htm +# Also see: Antar EN. Arabian flying is confusing. +# Port Angeles (WA) Evening News. 1965-03-10. page 3. +# # The TZ database cannot represent quasi-solar time; airline time is the best # we can do. The 1946 foreign air news digest of the U.S. Civil Aeronautics # Board (OCLC 42299995) reported that the "... Arabian Government, inaugurated @@ -2716,28 +3281,28 @@ Link Asia/Qatar Asia/Bahrain # # Shanks & Pottenger also state that until 1968-05-01 Saudi Arabia had two # time zones; the other zone, at UT +04, was in the far eastern part of -# the country. Ignore this, as it's before our 1970 cutoff. +# the country. Presumably this is documenting airline time. Ignore this, +# as it's before our 1970 cutoff. # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14 - 3:00 - AST + 3:00 - +03 Link Asia/Riyadh Asia/Aden # Yemen Link Asia/Riyadh Asia/Kuwait # Singapore # taken from Mok Ly Yng (2003-10-30) # http://www.math.nus.edu.sg/aslaksen/teaching/timezone.html -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1 6:55:25 - SMT 1905 Jun 1 # Singapore M.T. - 7:00 - MALT 1933 Jan 1 # Malaya Time - 7:00 0:20 MALST 1936 Jan 1 - 7:20 - MALT 1941 Sep 1 - 7:30 - MALT 1942 Feb 16 - 9:00 - JST 1945 Sep 12 - 7:30 - MALT 1965 Aug 9 # independence - 7:30 - SGT 1982 Jan 1 # Singapore Time - 8:00 - SGT + 7:00 - +07 1933 Jan 1 + 7:00 0:20 +0720 1936 Jan 1 + 7:20 - +0720 1941 Sep 1 + 7:30 - +0730 1942 Feb 16 + 9:00 - +09 1945 Sep 12 + 7:30 - +0730 1982 Jan 1 + 8:00 - +08 # Spratly Is # no information @@ -2792,12 +3357,12 @@ Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1 # even worse. For now, let's use a numeric abbreviation; we can # switch to "SLST" if it catches on. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Colombo 5:19:24 - LMT 1880 5:19:32 - MMT 1906 # Moratuwa Mean Time 5:30 - +0530 1942 Jan 5 - 5:30 0:30 +0530/+06 1942 Sep - 5:30 1:00 +0530/+0630 1945 Oct 16 2:00 + 5:30 0:30 +06 1942 Sep + 5:30 1:00 +0630 1945 Oct 16 2:00 5:30 - +0530 1996 May 25 0:00 6:30 - +0630 1996 Oct 26 0:30 6:00 - +06 2006 Apr 15 0:30 @@ -2923,7 +3488,7 @@ Rule Syria 2007 only - Nov Fri>=1 0:00 0 - # We have not found any sources saying anything about when DST ends this year. # # Our summary -# http://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html +# https://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html # From Steffen Thorsen (2009-10-27): # The Syrian Arab News Network on 2009-09-29 reported that Syria will @@ -2950,7 +3515,7 @@ Rule Syria 2007 only - Nov Fri>=1 0:00 0 - # http://www.sana.sy/ara/2/2012/03/26/408215.htm # # Our brief summary: -# http://www.timeanddate.com/news/time/syria-dst-2012.html +# https://www.timeanddate.com/news/time/syria-dst-2012.html # From Arthur David Olson (2012-03-27): # Assume last Friday in March going forward XXX. @@ -2962,13 +3527,13 @@ Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S Rule Syria 2012 max - Mar lastFri 0:00 1:00 S Rule Syria 2009 max - Oct lastFri 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq 2:00 Syria EE%sT # Tajikistan # From Shanks & Pottenger. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 5:00 - +05 1930 Jun 21 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s @@ -2976,16 +3541,16 @@ Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 5:00 - +05 # Thailand -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Bangkok 6:42:04 - LMT 1880 6:42:04 - BMT 1920 Apr # Bangkok Mean Time - 7:00 - ICT + 7:00 - +07 Link Asia/Bangkok Asia/Phnom_Penh # Cambodia Link Asia/Bangkok Asia/Vientiane # Laos # Turkmenistan # From Shanks & Pottenger. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad 4:00 - +04 1930 Jun 21 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00 @@ -2993,14 +3558,14 @@ Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad 5:00 - +05 # United Arab Emirates -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Dubai 3:41:12 - LMT 1920 - 4:00 - GST + 4:00 - +04 Link Asia/Dubai Asia/Muscat # Oman # Uzbekistan # Byalokoz 1919 says Uzbekistan was 4:27:53. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 5:00 - +05 1981 Apr 1 @@ -3033,13 +3598,13 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 # is quoted verbatim in: # http://www.thoigian.com.vn/?mPage=P80D01 # is translated by Brian Inglis in: -# http://mm.icann.org/pipermail/tz/2014-October/021654.html +# https://mm.icann.org/pipermail/tz/2014-October/021654.html # and is the basis for the information below. # # The 1906 transition was effective July 1 and standardized Indochina to -# Phù Liễn Observatory, legally 104 deg. 17'17" east of Paris. +# Phù Liễn Observatory, legally 104° 17' 17" east of Paris. # It's unclear whether this meant legal Paris Mean Time (00:09:21) or -# the Paris Meridian (2 deg. 20'14.03" E); the former yields 07:06:30.1333... +# the Paris Meridian (2° 20' 14.03" E); the former yields 07:06:30.1333... # and the latter 07:06:29.333... so either way it rounds to 07:06:30, # which is used below even though the modern-day Phù Liễn Observatory # is closer to 07:06:31. Abbreviate Phù Liễn Mean Time as PLMT. @@ -3048,7 +3613,7 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 # and in South Vietnam in particular (after 1954): # To 07:00 on 1911-05-01. # To 08:00 on 1942-12-31 at 23:00. -# To 09:00 in 1945-03-14 at 23:00. +# To 09:00 on 1945-03-14 at 23:00. # To 07:00 on 1945-09-02 in Vietnam. # To 08:00 on 1947-04-01 in French-controlled Indochina. # To 07:00 on 1955-07-01 in South Vietnam. @@ -3066,17 +3631,29 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 # Lê Thành Lân: "Lịch hai thế kỷ (1802-2010) và các lịch vĩnh cửu", # NXB Thuận Hoá, Huế, 1995. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Ho_Chi_Minh 7:06:40 - LMT 1906 Jul 1 - 7:06:30 - PLMT 1911 May 1 - 7:00 - ICT 1942 Dec 31 23:00 - 8:00 - IDT 1945 Mar 14 23:00 - 9:00 - JST 1945 Sep 2 - 7:00 - ICT 1947 Apr 1 - 8:00 - IDT 1955 Jul 1 - 7:00 - ICT 1959 Dec 31 23:00 - 8:00 - IDT 1975 Jun 13 - 7:00 - ICT + 7:06:30 - PLMT 1911 May 1 # Phù Liễn MT + 7:00 - +07 1942 Dec 31 23:00 + 8:00 - +08 1945 Mar 14 23:00 + 9:00 - +09 1945 Sep 2 + 7:00 - +07 1947 Apr 1 + 8:00 - +08 1955 Jul 1 + 7:00 - +07 1959 Dec 31 23:00 + 8:00 - +08 1975 Jun 13 + 7:00 - +07 + +# From Paul Eggert (2019-02-19): +# +# The Ho Chi Minh entry suffices for most purposes as it agrees with all of +# Vietnam since 1975-06-13. Presumably clocks often changed in south Vietnam +# in the early 1970s as locations changed hands during the war; however the +# details are unknown and would likely be too voluminous for this database. +# +# For timestamps in north Vietnam back to 1970 (the tzdb cutoff), +# use Asia/Bangkok; see the VN entries in the file zone1970.tab. +# For timestamps before 1970, see Asia/Hanoi in the file 'backzone'. + # Yemen # See Asia/Riyadh. diff --git a/vendor/tzdata/australasia b/vendor/tzdata/australasia index 0bca53e..ac44c04 100644 --- a/vendor/tzdata/australasia +++ b/vendor/tzdata/australasia @@ -1,3 +1,5 @@ +# tzdb data for Australasia and environs, and for much of the Pacific + # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -23,7 +25,7 @@ Rule Aus 1943 only - Oct 3 2:00 1:00 D # says W Australia didn't use DST in 1943/1944. Ignore Whitman's claim that # 1944/1945 was just like 1943/1944. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # Northern Territory Zone Australia/Darwin 8:43:20 - LMT 1895 Feb 9:00 - ACST 1899 May @@ -44,8 +46,8 @@ Zone Australia/Perth 7:43:24 - LMT 1895 Dec 8:00 Aus AW%sT 1943 Jul 8:00 AW AW%sT Zone Australia/Eucla 8:35:28 - LMT 1895 Dec - 8:45 Aus ACW%sT 1943 Jul - 8:45 AW ACW%sT + 8:45 Aus +0845/+0945 1943 Jul + 8:45 AW +0845/+0945 # Queensland # @@ -100,7 +102,7 @@ Rule AS 2006 only - Apr 2 2:00s 0 S Rule AS 2007 only - Mar lastSun 2:00s 0 S Rule AS 2008 max - Apr Sun>=1 2:00s 0 S Rule AS 2008 max - Oct Sun>=1 2:00s 1:00 D -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Australia/Adelaide 9:14:20 - LMT 1895 Feb 9:00 - ACST 1899 May 9:30 Aus AC%sT 1971 @@ -132,7 +134,7 @@ Rule AT 2001 max - Oct Sun>=1 2:00s 1:00 D Rule AT 2006 only - Apr Sun>=1 2:00s 0 S Rule AT 2007 only - Mar lastSun 2:00s 0 S Rule AT 2008 max - Apr Sun>=1 2:00s 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Australia/Hobart 9:49:16 - LMT 1895 Sep 10:00 - AEST 1916 Oct 1 2:00 10:00 1:00 AEDT 1917 Feb @@ -160,7 +162,7 @@ Rule AV 2006 only - Apr Sun>=1 2:00s 0 S Rule AV 2007 only - Mar lastSun 2:00s 0 S Rule AV 2008 max - Apr Sun>=1 2:00s 0 S Rule AV 2008 max - Oct Sun>=1 2:00s 1:00 D -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Australia/Melbourne 9:39:52 - LMT 1895 Feb 10:00 Aus AE%sT 1971 10:00 AV AE%sT @@ -183,7 +185,7 @@ Rule AN 2006 only - Apr Sun>=1 2:00s 0 S Rule AN 2007 only - Mar lastSun 2:00s 0 S Rule AN 2008 max - Apr Sun>=1 2:00s 0 S Rule AN 2008 max - Oct Sun>=1 2:00s 1:00 D -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Australia/Sydney 10:04:52 - LMT 1895 Feb 10:00 Aus AE%sT 1971 10:00 AN AE%sT @@ -196,23 +198,24 @@ Zone Australia/Broken_Hill 9:25:48 - LMT 1895 Feb # Lord Howe Island # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule LH 1981 1984 - Oct lastSun 2:00 1:00 D -Rule LH 1982 1985 - Mar Sun>=1 2:00 0 S -Rule LH 1985 only - Oct lastSun 2:00 0:30 D -Rule LH 1986 1989 - Mar Sun>=15 2:00 0 S -Rule LH 1986 only - Oct 19 2:00 0:30 D -Rule LH 1987 1999 - Oct lastSun 2:00 0:30 D -Rule LH 1990 1995 - Mar Sun>=1 2:00 0 S -Rule LH 1996 2005 - Mar lastSun 2:00 0 S -Rule LH 2000 only - Aug lastSun 2:00 0:30 D -Rule LH 2001 2007 - Oct lastSun 2:00 0:30 D -Rule LH 2006 only - Apr Sun>=1 2:00 0 S -Rule LH 2007 only - Mar lastSun 2:00 0 S -Rule LH 2008 max - Apr Sun>=1 2:00 0 S -Rule LH 2008 max - Oct Sun>=1 2:00 0:30 D +Rule LH 1981 1984 - Oct lastSun 2:00 1:00 - +Rule LH 1982 1985 - Mar Sun>=1 2:00 0 - +Rule LH 1985 only - Oct lastSun 2:00 0:30 - +Rule LH 1986 1989 - Mar Sun>=15 2:00 0 - +Rule LH 1986 only - Oct 19 2:00 0:30 - +Rule LH 1987 1999 - Oct lastSun 2:00 0:30 - +Rule LH 1990 1995 - Mar Sun>=1 2:00 0 - +Rule LH 1996 2005 - Mar lastSun 2:00 0 - +Rule LH 2000 only - Aug lastSun 2:00 0:30 - +Rule LH 2001 2007 - Oct lastSun 2:00 0:30 - +Rule LH 2006 only - Apr Sun>=1 2:00 0 - +Rule LH 2007 only - Mar lastSun 2:00 0 - +Rule LH 2008 max - Apr Sun>=1 2:00 0 - +Rule LH 2008 max - Oct Sun>=1 2:00 0:30 - Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb 10:00 - AEST 1981 Mar - 10:30 LH LH%sT + 10:30 LH +1030/+1130 1985 Jul + 10:30 LH +1030/+11 # Australian miscellany # @@ -250,19 +253,19 @@ Zone Antarctica/Macquarie 0 - -00 1899 Nov 0 - -00 1948 Mar 25 10:00 Aus AE%sT 1967 10:00 AT AE%sT 2010 Apr 4 3:00 - 11:00 - MIST # Macquarie I Standard Time + 11:00 - +11 # Christmas -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Christmas 7:02:52 - LMT 1895 Feb - 7:00 - CXT # Christmas Island Time + 7:00 - +07 # Cocos (Keeling) Is # These islands were ruled by the Ross family from about 1830 to 1978. # We don't know when standard time was introduced; for now, we guess 1900. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Indian/Cocos 6:27:40 - LMT 1900 - 6:30 - CCT # Cocos Islands Time + 6:30 - +0630 # Fiji @@ -292,7 +295,7 @@ Zone Indian/Cocos 6:27:40 - LMT 1900 # http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=1096:3310-cabinet-approves-change-in-daylight-savings-dates&catid=49:cabinet-releases&Itemid=166 # # A bit more background info here: -# http://www.timeanddate.com/news/time/fiji-dst-ends-march-2010.html +# https://www.timeanddate.com/news/time/fiji-dst-ends-march-2010.html # From Alexander Krivenyshev (2010-10-24): # According to Radio Fiji and Fiji Times online, Fiji will end DST 3 @@ -356,101 +359,176 @@ Zone Indian/Cocos 6:27:40 - LMT 1900 # clocks go forward an hour at 2am to 3am.... Daylight Saving will # end at 3.00am on Sunday 15th January 2017." -# From Paul Eggert (2016-10-03): -# For now, guess DST from 02:00 the first Sunday in November to -# 03:00 the third Sunday in January. Although ad hoc, it matches -# transitions since late 2014 and seems more likely to match future -# practice than guessing no DST. +# From Paul Eggert (2017-08-21): +# Dominic Fok writes (2017-08-20) that DST ends 2018-01-14, citing +# Extraordinary Government of Fiji Gazette Supplement No. 21 (2017-08-27), +# [Legal Notice No. 41] of an order of the previous day by J Usamate. + +# From Raymond Kumar (2018-07-13): +# http://www.fijitimes.com/government-approves-2018-daylight-saving/ +# ... The daylight saving period will end at 3am on Sunday January 13, 2019. + +# From Paul Eggert (2019-08-06): +# Today Raymond Kumar reported the Government of Fiji Gazette Supplement No. 27 +# (2019-08-02) said that Fiji observes DST "commencing at 2.00 am on +# Sunday, 10 November 2019 and ending at 3.00 am on Sunday, 12 January 2020." +# For now, guess DST from 02:00 the second Sunday in November to 03:00 +# the first Sunday on or after January 12. January transitions reportedly +# depend on when school terms start. Although the guess is ad hoc, it matches +# transitions planned this year and seems more likely to match future practice +# than guessing no DST. +# From Michael Deckers (2019-08-06): +# https://www.laws.gov.fj/LawsAsMade/downloadfile/848 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S +Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 - Rule Fiji 1999 2000 - Feb lastSun 3:00 0 - -Rule Fiji 2009 only - Nov 29 2:00 1:00 S +Rule Fiji 2009 only - Nov 29 2:00 1:00 - Rule Fiji 2010 only - Mar lastSun 3:00 0 - -Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 S +Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 - Rule Fiji 2011 only - Mar Sun>=1 3:00 0 - Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 - Rule Fiji 2014 only - Jan Sun>=18 2:00 0 - -Rule Fiji 2014 max - Nov Sun>=1 2:00 1:00 S -Rule Fiji 2015 max - Jan Sun>=15 3:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 - +Rule Fiji 2015 max - Jan Sun>=12 3:00 0 - +Rule Fiji 2019 max - Nov Sun>=8 2:00 1:00 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva - 12:00 Fiji FJ%sT # Fiji Time + 12:00 Fiji +12/+13 # French Polynesia -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Gambier -8:59:48 - LMT 1912 Oct # Rikitea - -9:00 - GAMT # Gambier Time + -9:00 - -09 Zone Pacific/Marquesas -9:18:00 - LMT 1912 Oct - -9:30 - MART # Marquesas Time + -9:30 - -0930 Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete - -10:00 - TAHT # Tahiti Time + -10:00 - -10 # Clipperton (near North America) is administered from French Polynesia; # it is uninhabited. # Guam -# Zone NAME GMTOFF RULES FORMAT [UNTIL] + +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +# http://guamlegislature.com/Public_Laws_5th/PL05-025.pdf +# http://documents.guam.gov/wp-content/uploads/E.O.-59-7-Guam-Daylight-Savings-Time-May-6-1959.pdf +Rule Guam 1959 only - Jun 27 2:00 1:00 D +# http://documents.guam.gov/wp-content/uploads/E.O.-61-5-Revocation-of-Daylight-Saving-Time-and-Restoratio.pdf +Rule Guam 1961 only - Jan 29 2:00 0 S +# http://documents.guam.gov/wp-content/uploads/E.O.-67-13-Guam-Daylight-Savings-Time.pdf +Rule Guam 1967 only - Sep 1 2:00 1:00 D +# http://documents.guam.gov/wp-content/uploads/E.O.-69-2-Repeal-of-Guam-Daylight-Saving-Time.pdf +Rule Guam 1969 only - Jan 26 0:01 0 S +# http://documents.guam.gov/wp-content/uploads/E.O.-69-10-Guam-Daylight-Saving-Time.pdf +Rule Guam 1969 only - Jun 22 2:00 1:00 D +Rule Guam 1969 only - Aug 31 2:00 0 S +# http://documents.guam.gov/wp-content/uploads/E.O.-70-10-Guam-Daylight-Saving-Time.pdf +# http://documents.guam.gov/wp-content/uploads/E.O.-70-30-End-of-Guam-Daylight-Saving-Time.pdf +# http://documents.guam.gov/wp-content/uploads/E.O.-71-5-Guam-Daylight-Savings-Time.pdf +Rule Guam 1970 1971 - Apr lastSun 2:00 1:00 D +Rule Guam 1970 1971 - Sep Sun>=1 2:00 0 S +# http://documents.guam.gov/wp-content/uploads/E.O.-73-28.-Guam-Day-light-Saving-Time.pdf +Rule Guam 1973 only - Dec 16 2:00 1:00 D +# http://documents.guam.gov/wp-content/uploads/E.O.-74-7-Guam-Daylight-Savings-Time-Rescinded.pdf +Rule Guam 1974 only - Feb 24 2:00 0 S +# http://documents.guam.gov/wp-content/uploads/E.O.-76-13-Daylight-Savings-Time.pdf +Rule Guam 1976 only - May 26 2:00 1:00 D +# http://documents.guam.gov/wp-content/uploads/E.O.-76-25-Revocation-of-E.O.-76-13.pdf +Rule Guam 1976 only - Aug 22 2:01 0 S +# http://documents.guam.gov/wp-content/uploads/E.O.-77-4-Daylight-Savings-Time.pdf +Rule Guam 1977 only - Apr 24 2:00 1:00 D +# http://documents.guam.gov/wp-content/uploads/E.O.-77-18-Guam-Standard-Time.pdf +Rule Guam 1977 only - Aug 28 2:00 0 S + +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31 9:39:00 - LMT 1901 # Agana - 10:00 - GST 2000 Dec 23 # Guam + 10:00 - GST 1941 Dec 10 # Guam + 9:00 - +09 1944 Jul 31 + 10:00 Guam G%sT 2000 Dec 23 10:00 - ChST # Chamorro Standard Time Link Pacific/Guam Pacific/Saipan # N Mariana Is # Kiribati -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki - 12:00 - GILT # Gilbert Is Time + 12:00 - +12 Zone Pacific/Enderbury -11:24:20 - LMT 1901 - -12:00 - PHOT 1979 Oct # Phoenix Is Time - -11:00 - PHOT 1995 - 13:00 - PHOT + -12:00 - -12 1979 Oct + -11:00 - -11 1994 Dec 31 + 13:00 - +13 Zone Pacific/Kiritimati -10:29:20 - LMT 1901 - -10:40 - LINT 1979 Oct # Line Is Time - -10:00 - LINT 1995 - 14:00 - LINT + -10:40 - -1040 1979 Oct + -10:00 - -10 1994 Dec 31 + 14:00 - +14 # N Mariana Is # See Pacific/Guam. # Marshall Is -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Pacific/Majuro 11:24:48 - LMT 1901 - 11:00 - MHT 1969 Oct # Marshall Islands Time - 12:00 - MHT -Zone Pacific/Kwajalein 11:09:20 - LMT 1901 - 11:00 - MHT 1969 Oct - -12:00 - KWAT 1993 Aug 20 # Kwajalein Time - 12:00 - MHT +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Pacific/Majuro 11:24:48 - LMT 1901 + 11:00 - +11 1914 Oct + 9:00 - +09 1919 Feb 1 + 11:00 - +11 1937 + 10:00 - +10 1941 Apr 1 + 9:00 - +09 1944 Jan 30 + 11:00 - +11 1969 Oct + 12:00 - +12 +Zone Pacific/Kwajalein 11:09:20 - LMT 1901 + 11:00 - +11 1937 + 10:00 - +10 1941 Apr 1 + 9:00 - +09 1944 Feb 6 + 11:00 - +11 1969 Oct + -12:00 - -12 1993 Aug 20 24:00 + 12:00 - +12 # Micronesia -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Pacific/Chuuk 10:07:08 - LMT 1901 - 10:00 - CHUT # Chuuk Time -Zone Pacific/Pohnpei 10:32:52 - LMT 1901 # Kolonia - 11:00 - PONT # Pohnpei Time -Zone Pacific/Kosrae 10:51:56 - LMT 1901 - 11:00 - KOST 1969 Oct # Kosrae Time - 12:00 - KOST 1999 - 11:00 - KOST +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Pacific/Chuuk -13:52:52 - LMT 1844 Dec 31 + 10:07:08 - LMT 1901 + 10:00 - +10 1914 Oct + 9:00 - +09 1919 Feb 1 + 10:00 - +10 1941 Apr 1 + 9:00 - +09 1945 Aug + 10:00 - +10 +Zone Pacific/Pohnpei -13:27:08 - LMT 1844 Dec 31 # Kolonia + 10:32:52 - LMT 1901 + 11:00 - +11 1914 Oct + 9:00 - +09 1919 Feb 1 + 11:00 - +11 1937 + 10:00 - +10 1941 Apr 1 + 9:00 - +09 1945 Aug + 11:00 - +11 +Zone Pacific/Kosrae -13:08:04 - LMT 1844 Dec 31 + 10:51:56 - LMT 1901 + 11:00 - +11 1914 Oct + 9:00 - +09 1919 Feb 1 + 11:00 - +11 1937 + 10:00 - +10 1941 Apr 1 + 9:00 - +09 1945 Aug + 11:00 - +11 1969 Oct + 12:00 - +12 1999 + 11:00 - +11 # Nauru -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Nauru 11:07:40 - LMT 1921 Jan 15 # Uaobe - 11:30 - NRT 1942 Mar 15 # Nauru Time - 9:00 - JST 1944 Aug 15 - 11:30 - NRT 1979 May - 12:00 - NRT + 11:30 - +1130 1942 Aug 29 + 9:00 - +09 1945 Sep 8 + 11:30 - +1130 1979 Feb 10 2:00 + 12:00 - +12 # New Caledonia # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 S +Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 - Rule NC 1978 1979 - Feb 27 0:00 0 - -Rule NC 1996 only - Dec 1 2:00s 1:00 S +Rule NC 1996 only - Dec 1 2:00s 1:00 - # Shanks & Pottenger say the following was at 2:00; go with IATA. Rule NC 1997 only - Mar 2 2:00s 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 # Nouméa - 11:00 NC NC%sT + 11:00 NC +11/+12 ############################################################################### @@ -465,34 +543,35 @@ Rule NZ 1929 1933 - Mar Sun>=15 2:00 0 M Rule NZ 1934 1940 - Apr lastSun 2:00 0 M Rule NZ 1934 1940 - Sep lastSun 2:00 0:30 S Rule NZ 1946 only - Jan 1 0:00 0 S -# Since 1957 Chatham has been 45 minutes ahead of NZ, but there's no -# convenient single notation for the date and time of this transition -# so we must duplicate the Rule lines. +# Since 1957 Chatham has been 45 minutes ahead of NZ, but until 2018a +# there was no documented single notation for the date and time of this +# transition. Duplicate the Rule lines for now, to give the 2018a change +# time to percolate out. Rule NZ 1974 only - Nov Sun>=1 2:00s 1:00 D -Rule Chatham 1974 only - Nov Sun>=1 2:45s 1:00 D +Rule Chatham 1974 only - Nov Sun>=1 2:45s 1:00 - Rule NZ 1975 only - Feb lastSun 2:00s 0 S -Rule Chatham 1975 only - Feb lastSun 2:45s 0 S +Rule Chatham 1975 only - Feb lastSun 2:45s 0 - Rule NZ 1975 1988 - Oct lastSun 2:00s 1:00 D -Rule Chatham 1975 1988 - Oct lastSun 2:45s 1:00 D +Rule Chatham 1975 1988 - Oct lastSun 2:45s 1:00 - Rule NZ 1976 1989 - Mar Sun>=1 2:00s 0 S -Rule Chatham 1976 1989 - Mar Sun>=1 2:45s 0 S +Rule Chatham 1976 1989 - Mar Sun>=1 2:45s 0 - Rule NZ 1989 only - Oct Sun>=8 2:00s 1:00 D -Rule Chatham 1989 only - Oct Sun>=8 2:45s 1:00 D +Rule Chatham 1989 only - Oct Sun>=8 2:45s 1:00 - Rule NZ 1990 2006 - Oct Sun>=1 2:00s 1:00 D -Rule Chatham 1990 2006 - Oct Sun>=1 2:45s 1:00 D +Rule Chatham 1990 2006 - Oct Sun>=1 2:45s 1:00 - Rule NZ 1990 2007 - Mar Sun>=15 2:00s 0 S -Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 S +Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 - Rule NZ 2007 max - Sep lastSun 2:00s 1:00 D -Rule Chatham 2007 max - Sep lastSun 2:45s 1:00 D +Rule Chatham 2007 max - Sep lastSun 2:45s 1:00 - Rule NZ 2008 max - Apr Sun>=1 2:00s 0 S -Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Auckland 11:39:04 - LMT 1868 Nov 2 11:30 NZ NZ%sT 1946 Jan 1 12:00 NZ NZ%sT Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2 - 12:15 - CHAST 1946 Jan 1 - 12:45 Chatham CHA%sT + 12:15 - +1215 1946 Jan 1 + 12:45 Chatham +1245/+1345 Link Pacific/Auckland Antarctica/McMurdo @@ -509,43 +588,45 @@ Link Pacific/Auckland Antarctica/McMurdo # Cook Is # From Shanks & Pottenger: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Cook 1978 only - Nov 12 0:00 0:30 HS +Rule Cook 1978 only - Nov 12 0:00 0:30 - Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 - -Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 HS -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Rarotonga -10:39:04 - LMT 1901 # Avarua - -10:30 - CKT 1978 Nov 12 # Cook Is Time - -10:00 Cook CK%sT + -10:30 - -1030 1978 Nov 12 + -10:00 Cook -10/-0930 ############################################################################### # Niue -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Niue -11:19:40 - LMT 1901 # Alofi - -11:20 - NUT 1951 # Niue Time - -11:30 - NUT 1978 Oct 1 - -11:00 - NUT + -11:20 - -1120 1951 + -11:30 - -1130 1978 Oct 1 + -11:00 - -11 # Norfolk -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Norfolk 11:11:52 - LMT 1901 # Kingston - 11:12 - NMT 1951 # Norfolk Mean Time - 11:30 - NFT 1974 Oct 27 02:00 # Norfolk T. - 11:30 1:00 NFST 1975 Mar 2 02:00 - 11:30 - NFT 2015 Oct 4 02:00 - 11:00 - NFT + 11:12 - +1112 1951 + 11:30 - +1130 1974 Oct 27 02:00s + 11:30 1:00 +1230 1975 Mar 2 02:00s + 11:30 - +1130 2015 Oct 4 02:00s + 11:00 - +11 2019 Jul + 11:00 AN +11/+12 # Palau (Belau) -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Pacific/Palau 8:57:56 - LMT 1901 # Koror - 9:00 - PWT # Palau Time +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror + 8:57:56 - LMT 1901 + 9:00 - +09 # Papua New Guinea -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 9:48:32 - PMMT 1895 # Port Moresby Mean Time - 10:00 - PGT # Papua New Guinea Time + 10:00 - +10 # # From Paul Eggert (2014-10-13): # Base the Bougainville entry on the Arawa-Kieta region, which appears to have @@ -556,32 +637,30 @@ Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 # The World War II entries below are instead based on Arawa-Kieta. # The Japanese occupied Kieta in July 1942, # according to the Pacific War Online Encyclopedia -# http://pwencycl.kgbudge.com/B/o/Bougainville.htm +# https://pwencycl.kgbudge.com/B/o/Bougainville.htm # and seem to have controlled it until their 1945-08-21 surrender. # # The Autonomous Region of Bougainville switched from UT +10 to +11 -# on 2014-12-28 at 02:00. They call +11 "Bougainville Standard Time"; -# abbreviate this as BST. See: +# on 2014-12-28 at 02:00. They call +11 "Bougainville Standard Time". +# See: # http://www.bougainville24.com/bougainville-issues/bougainville-gets-own-timezone/ # Zone Pacific/Bougainville 10:22:16 - LMT 1880 9:48:32 - PMMT 1895 - 10:00 - PGT 1942 Jul - 9:00 - JST 1945 Aug 21 - 10:00 - PGT 2014 Dec 28 2:00 - 11:00 - BST + 10:00 - +10 1942 Jul + 9:00 - +09 1945 Aug 21 + 10:00 - +10 2014 Dec 28 2:00 + 11:00 - +11 # Pitcairn -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown - -8:30 - PNT 1998 Apr 27 0:00 - -8:00 - PST # Pitcairn Standard Time + -8:30 - -0830 1998 Apr 27 0:00 + -8:00 - -08 # American Samoa -Zone Pacific/Pago_Pago 12:37:12 - LMT 1879 Jul 5 +Zone Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5 -11:22:48 - LMT 1911 - -11:00 - NST 1967 Apr # N=Nome - -11:00 - BST 1983 Nov 30 # B=Bering -11:00 - SST # S=Samoa Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands @@ -596,7 +675,7 @@ Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands # Sunday of April 2011." # # Background info: -# http://www.timeanddate.com/news/time/samoa-dst-plan-2009.html +# https://www.timeanddate.com/news/time/samoa-dst-plan-2009.html # # Samoa's Daylight Saving Time Act 2009 is available here, but does not # contain any dates: @@ -654,25 +733,25 @@ Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands # Assume the pattern instituted in 2012 will continue indefinitely. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule WS 2010 only - Sep lastSun 0:00 1 D -Rule WS 2011 only - Apr Sat>=1 4:00 0 S -Rule WS 2011 only - Sep lastSat 3:00 1 D -Rule WS 2012 max - Apr Sun>=1 4:00 0 S -Rule WS 2012 max - Sep lastSun 3:00 1 D -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Pacific/Apia 12:33:04 - LMT 1879 Jul 5 +Rule WS 2010 only - Sep lastSun 0:00 1 - +Rule WS 2011 only - Apr Sat>=1 4:00 0 - +Rule WS 2011 only - Sep lastSat 3:00 1 - +Rule WS 2012 max - Apr Sun>=1 4:00 0 - +Rule WS 2012 max - Sep lastSun 3:00 1 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5 -11:26:56 - LMT 1911 - -11:30 - WSST 1950 - -11:00 WS S%sT 2011 Dec 29 24:00 # S=Samoa - 13:00 WS WS%sT + -11:30 - -1130 1950 + -11:00 WS -11/-10 2011 Dec 29 24:00 + 13:00 WS +13/+14 # Solomon Is # excludes Bougainville, for which see Papua New Guinea -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara - 11:00 - SBT # Solomon Is Time + 11:00 - +11 -# Tokelau Is +# Tokelau # # From Gwillim Law (2011-12-29) # A correspondent informed me that Tokelau, like Samoa, will be skipping @@ -681,39 +760,39 @@ Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara # From Steffen Thorsen (2012-07-25) # ... we double checked by calling hotels and offices based in Tokelau asking # about the time there, and they all told a time that agrees with UTC+13.... -# Shanks says UTC-10 from 1901 [but] ... there is a good chance the change -# actually was to UTC-11 back then. +# Shanks says UT-10 from 1901 [but] ... there is a good chance the change +# actually was to UT-11 back then. # # From Paul Eggert (2012-07-25) # A Google Books snippet of Appendix to the Journals of the House of # Representatives of New Zealand, Session 1948, -# , page 65, says Tokelau +# , page 65, says Tokelau # was "11 hours slow on G.M.T." Go with Thorsen and assume Shanks & Pottenger # are off by an hour starting in 1901. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Fakaofo -11:24:56 - LMT 1901 - -11:00 - TKT 2011 Dec 30 # Tokelau Time - 13:00 - TKT + -11:00 - -11 2011 Dec 30 + 13:00 - +13 # Tonga # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Tonga 1999 only - Oct 7 2:00s 1:00 S +Rule Tonga 1999 only - Oct 7 2:00s 1:00 - Rule Tonga 2000 only - Mar 19 2:00s 0 - -Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 S +Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 - Rule Tonga 2001 2002 - Jan lastSun 2:00 0 - -Rule Tonga 2016 max - Nov Sun>=1 2:00 1:00 S -Rule Tonga 2017 max - Jan Sun>=15 3:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Tonga 2016 only - Nov Sun>=1 2:00 1:00 - +Rule Tonga 2017 only - Jan Sun>=15 3:00 0 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Tongatapu 12:19:20 - LMT 1901 12:20 - +1220 1941 13:00 - +13 1999 13:00 Tonga +13/+14 # Tuvalu -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Funafuti 11:56:52 - LMT 1901 - 12:00 - TVT # Tuvalu Time + 12:00 - +12 # US minor outlying islands @@ -737,10 +816,11 @@ Zone Pacific/Funafuti 11:56:52 - LMT 1901 # Johnston # -# From Paul Eggert (2014-03-11): +# From Paul Eggert (2017-02-10): # Sometimes Johnston kept Hawaii time, and sometimes it was an hour behind. # Details are uncertain. We have no data for Johnston after 1970, so -# treat it like Hawaii for now. +# treat it like Hawaii for now. Since Johnston is now uninhabited, +# its link to Pacific/Honolulu is in the 'backward' file. # # In his memoirs of June 6th to October 4, 1945 # (2005), Herbert C. Bach writes, @@ -756,12 +836,10 @@ Zone Pacific/Funafuti 11:56:52 - LMT 1901 # Operation Fishbowl shot (Tightrope, 1962-11-04).... [See] Herman Hoerlin, # "The United States High-Altitude Test Experience: A Review Emphasizing the # Impact on the Environment", Los Alamos LA-6405, Oct 1976. -# http://www.fas.org/sgp/othergov/doe/lanl/docs1/00322994.pdf +# https://www.fas.org/sgp/othergov/doe/lanl/docs1/00322994.pdf # See the table on page 4 where he lists GMT and local times for the tests; a # footnote for the JI tests reads that local time is "JI time = Hawaii Time # Minus One Hour". -# -# See 'northamerica' for Pacific/Johnston. # Kingman # uninhabited @@ -773,27 +851,27 @@ Zone Pacific/Funafuti 11:56:52 - LMT 1901 # uninhabited since World War II; was probably like Pacific/Kiritimati # Wake -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Wake 11:06:28 - LMT 1901 - 12:00 - WAKT # Wake Time + 12:00 - +12 # Vanuatu # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Vanuatu 1983 only - Sep 25 0:00 1:00 S +Rule Vanuatu 1983 only - Sep 25 0:00 1:00 - Rule Vanuatu 1984 1991 - Mar Sun>=23 0:00 0 - -Rule Vanuatu 1984 only - Oct 23 0:00 1:00 S -Rule Vanuatu 1985 1991 - Sep Sun>=23 0:00 1:00 S +Rule Vanuatu 1984 only - Oct 23 0:00 1:00 - +Rule Vanuatu 1985 1991 - Sep Sun>=23 0:00 1:00 - Rule Vanuatu 1992 1993 - Jan Sun>=23 0:00 0 - -Rule Vanuatu 1992 only - Oct Sun>=23 0:00 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Vanuatu 1992 only - Oct Sun>=23 0:00 1:00 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila - 11:00 Vanuatu VU%sT # Vanuatu Time + 11:00 Vanuatu +11/+12 # Wallis and Futuna -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Wallis 12:15:20 - LMT 1901 - 12:00 - WFT # Wallis & Futuna Time + 12:00 - +12 ############################################################################### @@ -804,15 +882,15 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # tz@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. -# From Paul Eggert (2014-10-31): +# From Paul Eggert (2018-11-18): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), # San Diego: ACS Publications, Inc. (2003). # Unfortunately this book contains many errors and cites no sources. # -# Gwillim Law writes that a good source -# for recent time zone data is the International Air Transport +# Many years ago Gwillim Law wrote that a good source +# for time zone data was the International Air Transport # Association's Standard Schedules Information Manual (IATA SSIM), # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. Except where otherwise noted, @@ -824,33 +902,25 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # # For data circa 1899, a common source is: # Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. -# http://www.jstor.org/stable/1774359 +# https://www.jstor.org/stable/1774359 # # A reliable and entertaining source about time zones is # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). # -# I invented the abbreviations marked '*' in the following table; -# the rest are from earlier versions of this file, or from other sources. +# I invented the abbreviation marked "*". +# The following abbreviations are from other sources. # Corrections are welcome! # std dst # LMT Local Mean Time # 8:00 AWST AWDT Western Australia -# 8:45 ACWST ACWDT Central Western Australia* -# 9:00 JST Japan # 9:30 ACST ACDT Central Australia # 10:00 AEST AEDT Eastern Australia +# 10:00 GST GDT* Guam through 2000 # 10:00 ChST Chamorro -# 10:30 LHST LHDT Lord Howe* -# 11:00 BST Bougainville* # 11:30 NZMT NZST New Zealand through 1945 # 12:00 NZST NZDT New Zealand 1946-present -# 12:15 CHAST Chatham through 1945* -# 12:45 CHAST CHADT Chatham 1946-present* -# 13:00 WSST WSDT (western) Samoa 2011-present* -# -11:30 WSST Western Samoa through 1950* # -11:00 SST Samoa # -10:00 HST Hawaii -# - 8:00 PST Pitcairn* # # See the 'northamerica' file for Hawaii. # See the 'southamerica' file for Easter I and the Galápagos Is. @@ -980,7 +1050,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # AEST ACST AWST AEDT ACDT # # Parliamentary Library (2008-11-10) -# http://www.aph.gov.au/binaries/library/pubs/rp/2008-09/09rp14.pdf +# https://www.aph.gov.au/binaries/library/pubs/rp/2008-09/09rp14.pdf # EST CST WST preferred for standard time; AEST AEDT ACST ACDT also used # # The Transport Safety Bureau has an extensive series of accident reports, @@ -1016,13 +1086,13 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # # NSW (including LHI and Broken Hill): # Standard Time Act 1987 (updated 1995-04-04) -# http://www.austlii.edu.au/au/legis/nsw/consol_act/sta1987137/index.html +# https://www.austlii.edu.au/au/legis/nsw/consol_act/sta1987137/index.html # ACT # Standard Time and Summer Time Act 1972 -# http://www.austlii.edu.au/au/legis/act/consol_act/stasta1972279/index.html +# https://www.austlii.edu.au/au/legis/act/consol_act/stasta1972279/index.html # SA # Standard Time Act, 1898 -# http://www.austlii.edu.au/au/legis/sa/consol_act/sta1898137/index.html +# https://www.austlii.edu.au/au/legis/sa/consol_act/sta1898137/index.html # From David Grosz (2005-06-13): # It was announced last week that Daylight Saving would be extended by @@ -1092,7 +1162,23 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # (1999-09-27) writes that Giles Meteorological Station uses # South Australian time even though it's located in Western Australia. +# From Paul Eggert (2018-04-01): +# The Guardian Express of Perth, Australia reported today that the +# government decided to advance the clocks permanently on January 1, +# 2019, from UT +08 to UT +09. The article noted that an exemption +# would be made for people aged 61 and over, who "can apply in writing +# to have the extra hour of sunshine removed from their area." See: +# Daylight saving coming to WA in 2019. Guardian Express. 2018-04-01. +# https://www.communitynews.com.au/guardian-express/news/exclusive-daylight-savings-coming-wa-summer-2018/ + # Queensland + +# From Paul Eggert (2018-02-26): +# I lack access to the following source for Queensland DST: +# Pearce C. History of daylight saving time in Queensland. +# Queensland Hist J. 2017 Aug;23(6):389-403 +# https://search.informit.com.au/documentSummary;dn=994682348436426;res=IELHSS + # From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06): # # The state of QUEENSLAND.. [ Courtesy Qld. Dept Premier Econ&Trade Devel ] # # [ Dec 1990 ] @@ -1169,6 +1255,22 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # in WA or its introduction in SA had anything to do with the genesis # of this time zone. My hunch is that it's been around since well # before 1975. I remember seeing it noted on road maps decades ago. +# +# From Gilmore Davidson (2019-04-08): +# https://www.abc.net.au/news/2019-04-08/this-remote-stretch-of-desert-has-its-own-custom-time-zone/10981000 +# ... include[s] a rough description of the geographical boundaries... +# "The time zone exists for about 340 kilometres and takes in the tiny +# roadhouse communities of Cocklebiddy, Madura, Eucla and Border Village." +# ... and an indication that the zone has definitely been in existence +# since before the 1970 cut-off of the database ... +# From Paul Eggert (2019-05-17): +# That ABC Esperance story by Christien de Garis also says: +# Although the Central Western Time Zone is not officially recognised (your +# phones won't automatically change), there is a sign instructing you which +# way to wind your clocks 45 minutes and scrawled underneath one of them in +# Texta is the word: 'Why'? +# "Good question," Mr Pike said. +# "I don't even know that, and it's been going for over 50 years." # From Paul Eggert (2006-12-15): # For lack of better info, assume the tradition dates back to the @@ -1317,7 +1419,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # http://abc.net.au/news/regionals/neweng/monthly/regeng-22jul1999-1.htm # (1999-07-22). For now, we'll wait to see if this really happens. # -# Victoria will following NSW. See: +# Victoria will follow NSW. See: # Vic to extend daylight saving (1999-07-28) # http://abc.net.au/local/news/olympics/1999/07/item19990728112314_1.htm # @@ -1420,7 +1522,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # the ACT for all 52 weeks of the year... # # We have a wrap-up here: -# http://www.timeanddate.com/news/time/south-australia-extends-dst.html +# https://www.timeanddate.com/news/time/south-australia-extends-dst.html ############################################################################### # New Zealand @@ -1458,7 +1560,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # # From Paul Eggert (2006-03-22): # The Department of Internal Affairs (DIA) maintains a brief history, -# as does Carol Squires; see tz-link.htm for the full references. +# as does Carol Squires; see tz-link.html for the full references. # Use these sources in preference to Shanks & Pottenger. # # For Chatham, IATA SSIM (1991/1999) gives the NZ rules but with @@ -1474,7 +1576,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # From Paul Eggert (2014-07-14): # Chatham Island time was formally standardized on 1957-01-01 by # New Zealand's Standard Time Amendment Act 1956 (1956-10-26). -# http://www.austlii.edu.au/nz/legis/hist_act/staa19561956n100244.pdf +# https://www.austlii.edu.au/nz/legis/hist_act/staa19561956n100244.pdf # According to Google Books snippet view, a speaker in the New Zealand # parliamentary debates in 1956 said "Clause 78 makes provision for standard # time in the Chatham Islands. The time there is 45 minutes in advance of New @@ -1487,6 +1589,42 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 ############################################################################### +# Bonin (Ogasawara) Islands and Marcus Island (Minami-Tori-shima) + +# From Wakaba (2019-01-28) via Phake Nick: +# National Diet Library of Japan has several reports by Japanese Government +# officers that describe the time used in islands when they visited there. +# According to them (and other sources such as newspapers), standard time UTC +# + 10 (JST + 1) and DST UTC + 11 (JST + 2) was used until its return to Japan +# at 1968-06-26 00:00 JST. The exact periods of DST are still unknown. +# I guessed Guam, Mariana, and Bonin and Marcus districts might have +# synchronized their DST periods, but reports imply they had their own +# decisions, i.e. there were three or more different time zones.... +# +# https://wiki.suikawiki.org/n/小笠原諸島の標準時 + +# From Phake Nick (2019-02-12): +# Because their last time change to return to Japanese time when they returned +# to Japanese rule was right before 1970, ... per the current tz database +# rule, the information doesn't warrant creation of a new timezone for Bonin +# Islands itself and is thus as an anecdotal note for interest purpose only. +# ... [The abovementioned link] described some special timekeeping phenomenon +# regarding Marcus island, another remote island currently owned by Japanese +# in the same administrative unit as Bonin Islands. Many reports claim that +# the American coastal guard on the American quarter of the island use its own +# coastal guard time, and most sources describe the time as UTC+11, being two +# hours faster than JST used by some Japanese personnel on the island. Some +# sites describe it as same as Wake Island/Guam time although it would be +# incorrect to be same as Guam. And then in a few Japanese governmental +# report from 1980s (from National Institute of Information and Communications +# Technology) regarding the construction of VLBI facility on the Marcus +# Island, it claimed that there are three time standards being used on the +# island at the time which include not just JST (UTC+9) or [US]CG time +# (UTC+11) but also a JMSDF time (UTC+10) (Japan Maritime Self-Defense +# Force). Unfortunately there are no other sources that mentioned such time +# and there are also no information on things like how the time was used. + + # Fiji # Howse writes (p 153) that in 1879 the British governor of Fiji @@ -1519,31 +1657,79 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # "declared it the same day [throughout] the country as of Jan. 1, 1995" # as part of the competition to be first into the 21st century. +# From Kerry Shetline (2018-02-03): +# December 31 was the day that was skipped, so that the transition +# would be from Friday December 30, 1994 to Sunday January 1, 1995. +# From Paul Eggert (2018-02-04): +# One source for this is page 202 of: Bartky IR. One Time Fits All: +# The Campaigns for Global Uniformity (2007). # Kwajalein -# In comp.risks 14.87 (26 August 1993), Peter Neumann writes: -# I wonder what happened in Kwajalein, where there was NO Friday, -# 1993-08-20. Thursday night at midnight Kwajalein switched sides with -# respect to the International Date Line, to rejoin its fellow islands, -# going from 11:59 p.m. Thursday to 12:00 m. Saturday in a blink. +# From an AP article (1993-08-22): +# "The nearly 3,000 Americans living on this remote Pacific atoll have a good +# excuse for not remembering Saturday night: there wasn't one. Residents were +# going to bed Friday night and waking up Sunday morning because at midnight +# -- 8 A.M. Eastern daylight time on Saturday -- Kwajalein was jumping from +# one side of the international date line to the other." +# "In Marshall Islands, Friday is followed by Sunday", NY Times. 1993-08-22. +# https://www.nytimes.com/1993/08/22/world/in-marshall-islands-friday-is-followed-by-sunday.html + +# From Phake Nick (2018-10-27): +# ... pointed out that +# currently tzdata say Pacific/Kwajalein switched from GMT+11 to GMT-12 in +# 1969 October without explanation, however an 1993 article from NYT say it +# synchorized its day with US mainland about 40 years ago and thus the switch +# should occur at around 1950s instead. +# +# From Paul Eggert (2018-11-18): +# The NYT (actually, AP) article is vague and possibly wrong about this. +# The article says the earlier switch was "40 years ago when the United States +# Army established a missile test range here". However, the Kwajalein Test +# Center was established on 1960-10-01 and was run by the US Navy. It was +# transferred to the US Army on 1964-07-01. See "Seize the High Ground" +# . +# Given that Shanks was right on the money about the 1993 change, I'm inclined +# to take Shanks's word for the 1969 change unless we find better evidence. # N Mariana Is, Guam +# From Phake Nick (2018-10-27): +# Guam Island was briefly annexed by Japan during ... year 1941-1944 ... +# however there are no detailed information about what time it use during that +# period. It would probably be reasonable to assume Guam use GMT+9 during +# that period of time like the surrounding area. + +# From Paul Eggert (2018-11-18): # Howse writes (p 153) "The Spaniards, on the other hand, reached the # Philippines and the Ladrones from America," and implies that the Ladrones # (now called the Marianas) kept American date for quite some time. # For now, we assume the Ladrones switched at the same time as the Philippines; # see Asia/Manila. - +# +# Use 1941-12-10 and 1944-07-31 for Guam WWII transitions, as the rough start +# and end of Japanese control of Agana. We don't know whether the Northern +# Marianas followed Guam's DST rules from 1959 through 1977; for now, assume +# they did as that avoids the need for a separate zone due to our 1970 cutoff. +# # US Public Law 106-564 (2000-12-23) made UT +10 the official standard time, # under the name "Chamorro Standard Time". There is no official abbreviation, # but Congressman Robert A. Underwood, author of the bill that became law, # wrote in a press release (2000-12-27) that he will seek the use of "ChST". +# See also the commentary for Micronesia. + + +# Marshall Is +# See the commentary for Micronesia. -# Micronesia + +# Micronesia (and nearby) + +# From Paul Eggert (2018-11-18): +# Like the Ladrones (see Guam commentary), assume the Spanish East Indies +# kept American time until the Philippines switched at the end of 1844. # Alan Eugene Davis writes (1996-03-16), # "I am certain, having lived there for the past decade, that 'Truk' @@ -1559,6 +1745,95 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # that Truk and Yap are UT +10, and Ponape and Kosrae are +11. # We don't know when Kosrae switched from +12; assume January 1 for now. +# From Phake Nick (2018-10-27): +# +# From a Japanese wiki site https://wiki.suikawiki.org/n/南洋群島の標準時 +# ... +# For "Southern Islands" (modern region of Mariana + Palau + Federation of +# Micronesia + Marshall Islands): +# +# A 1906 Japanese magazine shown the Caroline Islands and Mariana Islands +# who was occupied by Germany at the time as GMT+10, together with the like +# of German New Guinea. However there is a marking saying it have not been +# implemented (yet). No further information after that were found. +# +# Japan invaded those islands in 1914, and records shows that they were +# instructed to use JST at the time. +# +# 1915 January telecommunication record on the Jaluit Atoll shows they use +# the meridian of 170E as standard time (GMT+11:20), which is similar to the +# longitude of the atoll. +# 1915 February record say the 170E standard time is to be used until +# February 9 noon, and after February 9 noon they are to use JST. +# However these are time used within the Japanese Military at the time and +# probably does not reflect the time used by local resident at the time (that +# is if they keep their own time back then) +# +# In January 1919 the occupying force issued a command that split the area +# into three different timezone with meridian of 135E, 150E, 165E (JST+0, +1, +# +2), and the command was to become effective from February 1 of the same +# year. Despite the target of the command is still only for the occupying +# force itself, further publication have described the time as the standard +# time for the occupied area and thus it can probably be seen as such. +# * Area that use meridian of 135E: Palau and Yap civil administration area +# (Southern Islands Western Standard Time) +# * Area that use meridian of 150E: Truk (Chuuk) and Saipan civil +# administration area (Southern Islands Central Standard Time) +# * Area that use meridian of 165E: Ponape (Pohnpei) and Jaluit civil +# administration area (Southern Islands Eastern Standard Time). +# * In the next few years Japanese occupation of those islands have been +# formalized via League of Nation Mandate (South Pacific Mandate) and formal +# governance structure have been established, these district [become +# subprefectures] and timezone classification have been inherited as standard +# time of the area. +# * Saipan subprefecture include Mariana islands (exclude Guam which was +# occupied by America at the time), Palau and Yap subprefecture rule the +# Western Caroline Islands with 137E longitude as border, Truk and Ponape +# subprefecture rule the Eastern Caroline Islands with 154E as border, Ponape +# subprefecture also rule part of Marshall Islands to the west of 164E +# starting from (1918?) and Jaluit subprefecture rule the rest of the +# Marshall Islands. +# +# And then in year 1937, an announcement was made to change the time in the +# area into 2 timezones: +# * Area that use meridian of 135E: area administered by Palau, Yap and +# Saipan subprefecture (Southern Islands Western Standard Time) +# * Area that use meridian of 150E: area administered by Truk (Chuuk), +# Ponape (Pohnpei) and Jaluit subprefecture (Southern Islands Eastern +# Standard Time) +# +# Another announcement issued in 1941 say that on April 1 that year, +# standard time of the Southern Islands would be changed to use the meridian +# of 135E (GMT+9), and thus abolishing timezone different within the area. +# +# Then Pacific theater of WWII started and Japan slowly lose control on the +# island. The webpage I linked above contain no information during this +# period of time.... +# +# After the end of WWII, in 1946 February, a document written by the +# (former?) Japanese military personnel describe there are 3 hours time +# different between Caroline islands time/Wake island time and the Chungking +# time, which would mean the time being used there at the time was GMT+10. +# +# After that, the area become Trust Territories of the Pacific Islands +# under American administration from year 1947. The site listed some +# American/International books/maps/publications about time used in those +# area during this period of time but they doesn't seems to be reliable +# information so it would be the best if someone know where can more reliable +# information can be found. +# +# +# From Paul Eggert (2018-11-18): +# +# For the above, use vague dates like "1914" and "1945" for transitions that +# plausibly exist but for which the details are not known. The information +# for Wake is too sketchy to act on. +# +# The 1906 GMT+10 info about German-controlled islands might not have been +# done, so omit it from the data for now. +# +# The Jaluit info governs Kwajalein. + # Midway @@ -1576,6 +1851,29 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # started DST on June 3. Possibly DST was observed other years # in Midway, but we have no record of it. +# Nauru + +# From Phake Nick (2018-10-31): +# Currently, the tz database say Nauru use LMT until 1921, and then +# switched to GMT+11:30 for the next two decades. +# However, a number of timezone map published in America/Japan back then +# showed its timezone as GMT+11 per https://wiki.suikawiki.org/n/ナウルの標準時 +# And it would also be nice if the 1921 transition date could be sourced. +# ... +# The "Nauru Standard Time Act 1978 Time Change" +# http://ronlaw.gov.nr/nauru_lpms/files/gazettes/4b23a17d2030150404db7a5fa5872f52.pdf#page=3 +# based on "Nauru Standard Time Act 1978 Time Change" +# http://www.paclii.org/nr/legis/num_act/nsta1978207/ defined that "Nauru +# Alternative Time" (GMT+12) should be in effect from 1979 Feb. +# +# From Paul Eggert (2018-11-19): +# The 1921-01-15 introduction of standard time is in Shanks; it is also in +# "Standard Time Throughout the World", US National Bureau of Standards (1935), +# page 3, which does not give the UT offset. In response to a comment by +# Phake Nick I set the Nauru time of occupation by Japan to +# 1942-08-29/1945-09-08 by using dates from: +# https://en.wikipedia.org/wiki/Japanese_occupation_of_Nauru + # Norfolk # From Alexander Krivenyshev (2015-09-23): @@ -1584,12 +1882,24 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # ... at 12.30 am (by legal time in New South Wales) on 4 October 2015. # http://www.norfolkisland.gov.nf/nia/MediaRelease/Media%20Release%20Norfolk%20Island%20Standard%20Time%20Change.pdf -# From Paul Eggert (2015-09-23): +# From Paul Eggert (2019-08-28): # Transitions before 2015 are from timeanddate.com, which consulted # the Norfolk Island Museum and the Australian Bureau of Meteorology's # Norfolk Island station, and found no record of Norfolk observing DST # other than in 1974/5. See: -# http://www.timeanddate.com/time/australia/norfolk-island.html +# https://www.timeanddate.com/time/australia/norfolk-island.html +# However, disagree with timeanddate about the 1975-03-02 transition; +# timeanddate has 02:00 but 02:00s corresponds to what the NSW law said +# (thanks to Michael Deckers). + +# Norfolk started observing Australian DST in spring 2019. +# From Kyle Czech (2019-08-13): +# https://www.legislation.gov.au/Details/F2018L01702 +# From Michael Deckers (2019-08-14): +# https://www.legislation.gov.au/Details/F2019C00010 + +# Palau +# See commentary for Micronesia. # Pitcairn @@ -1611,17 +1921,19 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # From Howie Phelps (1999-11-10), who talked to a Pitcairner via shortwave: # Betty Christian told me yesterday that their local time is the same as -# Pacific Standard Time. They used to be 1/2 hour different from us here in +# Pacific Standard Time. They used to be ½ hour different from us here in # Sacramento but it was changed a couple of years ago. # (Western) Samoa and American Samoa -# Howse writes (p 153, citing p 10 of the 1883-11-18 New York Herald) -# that in 1879 the King of Samoa decided to change +# Howse writes (p 153) that after the 1879 standardization on Antipodean +# time by the British governor of Fiji, the King of Samoa decided to change # "the date in his kingdom from the Antipodean to the American system, # ordaining - by a masterpiece of diplomatic flattery - that # the Fourth of July should be celebrated twice in that year." +# This happened in 1892, according to the Evening News (Sydney) of 1892-07-20. +# https://www.staff.science.uu.nl/~gent0113/idl/idl.htm # Although Shanks & Pottenger says they both switched to UT -11:30 # in 1911, and to -11 in 1950. many earlier sources give -11 @@ -1632,6 +1944,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # day in 2011. Assume also that the Samoas follow the US and New # Zealand's "ST"/"DT" style of daylight-saving abbreviations. + # Tonga # From Paul Eggert (1996-01-22): @@ -1647,7 +1960,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # 12 hours and 20 minutes ahead of GMT. When New Zealand adjusted its # standard time in 1940s, Tonga had the choice of subtracting from its # local time to come on the same standard time as New Zealand or of -# advancing its time to maintain the differential of 13 degrees +# advancing its time to maintain the differential of 13° # (approximately 50 minutes ahead of New Zealand time). # # Because His Majesty King Tāufaʻāhau Tupou IV, then Crown Prince @@ -1726,6 +2039,15 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # Assume Tonga will observe DST from the first Sunday in November at 02:00 # through the third Sunday in January at 03:00, like Fiji, for now. +# From David Wade (2017-10-18): +# In August government was disolved by the King. The current prime minister +# continued in office in care taker mode. It is easy to see that few +# decisions will be made until elections 16th November. +# +# From Paul Eggert (2017-10-18): +# For now, guess that DST is discontinued. That's what the IATA is guessing. + + # Wake # From Vernice Anderson, Personal Secretary to Philip Jessup, @@ -1738,11 +2060,14 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # making calculation of time in Washington difficult if not almost # impossible. # -# http://www.trumanlibrary.org/wake/meeting.htm +# https://www.trumanlibrary.org/oralhist/andrsonv.htm # From Paul Eggert (2003-03-23): # We have no other report of DST in Wake Island, so omit this info for now. +# See also the commentary for Micronesia. + + ############################################################################### # The International Date Line @@ -1766,7 +2091,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # an international standard, there are some places on the high seas where the # correct date is ambiguous. -# From Wikipedia (2005-08-31): +# From Wikipedia (2005-08-31): # Before 1920, all ships kept local apparent time on the high seas by setting # their clocks at night or at the morning sight so that, given the ship's # speed and direction, it would be 12 o'clock when the Sun crossed the ship's diff --git a/vendor/tzdata/backward b/vendor/tzdata/backward index aa23dd8..b4ae3cf 100644 --- a/vendor/tzdata/backward +++ b/vendor/tzdata/backward @@ -1,7 +1,9 @@ +# 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 between current names for time zones +# This file provides links between current names for timezones # and their old names. Many names changed in late 1993. # Link TARGET LINK-NAME @@ -61,7 +63,9 @@ Link America/Sao_Paulo Brazil/East Link America/Manaus Brazil/West Link America/Halifax Canada/Atlantic Link America/Winnipeg Canada/Central -Link America/Regina Canada/East-Saskatchewan +# 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 @@ -73,6 +77,7 @@ Link Pacific/Easter Chile/EasterIsland Link America/Havana Cuba Link Africa/Cairo Egypt Link Europe/Dublin Eire +Link Etc/UTC Etc/UCT Link Europe/London Europe/Belfast Link Europe/Chisinau Europe/Tiraspol Link Europe/London GB @@ -96,6 +101,7 @@ Link Pacific/Auckland NZ Link Pacific/Chatham NZ-CHAT Link America/Denver Navajo Link Asia/Shanghai PRC +Link Pacific/Honolulu Pacific/Johnston Link Pacific/Pohnpei Pacific/Ponape Link Pacific/Pago_Pago Pacific/Samoa Link Pacific/Chuuk Pacific/Truk @@ -106,7 +112,7 @@ Link Asia/Taipei ROC Link Asia/Seoul ROK Link Asia/Singapore Singapore Link Europe/Istanbul Turkey -Link Etc/UCT UCT +Link Etc/UTC UCT Link America/Anchorage US/Alaska Link America/Adak US/Aleutian Link America/Phoenix US/Arizona diff --git a/vendor/tzdata/backzone b/vendor/tzdata/backzone index 4a5085f..3ccadd1 100644 --- a/vendor/tzdata/backzone +++ b/vendor/tzdata/backzone @@ -16,13 +16,13 @@ # the file 'backward'. # Although zones in this file may be of some use for analyzing -# pre-1970 time stamps, they are less reliable, cover only a tiny +# pre-1970 timestamps, they are less reliable, cover only a tiny # sliver of the pre-1970 era, and cannot feasibly be improved to cover # most of the era. Because the zones are out of normal scope for the # database, less effort is put into maintaining this file. Many of # the zones were formerly in other source files, but were removed or # replaced by links as their data entries were questionable and/or they -# differed from other zones only in pre-1970 time stamps. +# differed from other zones only in pre-1970 timestamps. # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), @@ -38,7 +38,7 @@ # commentary and rules associated with the entry. # # As explained in the zic man page, the zone columns are: -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # Ethiopia # From Paul Eggert (2014-07-31): @@ -65,7 +65,7 @@ Link Africa/Asmara Africa/Asmera # Mali (southern) Zone Africa/Bamako -0:32:00 - LMT 1912 0:00 - GMT 1934 Feb 26 - -1:00 - WAT 1960 Jun 20 + -1:00 - -01 1960 Jun 20 0:00 - GMT # Central African Republic @@ -75,7 +75,7 @@ Zone Africa/Bangui 1:14:20 - LMT 1912 # Gambia Zone Africa/Banjul -1:06:36 - LMT 1912 -1:06:36 - BMT 1935 # Banjul Mean Time - -1:00 - WAT 1964 + -1:00 - -01 1964 0:00 - GMT # Malawi @@ -93,18 +93,18 @@ Zone Africa/Bujumbura 1:57:28 - LMT 1890 # Guinea Zone Africa/Conakry -0:54:52 - LMT 1912 0:00 - GMT 1934 Feb 26 - -1:00 - WAT 1960 + -1:00 - -01 1960 0:00 - GMT # Senegal Zone Africa/Dakar -1:09:44 - LMT 1912 - -1:00 - WAT 1941 Jun + -1:00 - -01 1941 Jun 0:00 - GMT # Tanzania Zone Africa/Dar_es_Salaam 2:37:08 - LMT 1931 3:00 - EAT 1948 - 2:45 - BEAUT 1961 + 2:45 - +0245 1961 3:00 - EAT # Djibouti @@ -122,14 +122,14 @@ Zone Africa/Douala 0:38:48 - LMT 1912 # The International Hydrographic Bulletin, 1932-33, p 63 says that # Sierra Leone would advance its clocks by 20 minutes on 1933-10-01. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule SL 1935 1942 - Jun 1 0:00 0:40 SLST -Rule SL 1935 1942 - Oct 1 0:00 0 WAT -Rule SL 1957 1962 - Jun 1 0:00 1:00 SLST +Rule SL 1935 1942 - Jun 1 0:00 0:40 -0020 +Rule SL 1935 1942 - Oct 1 0:00 0 -01 +Rule SL 1957 1962 - Jun 1 0:00 1:00 +01 Rule SL 1957 1962 - Sep 1 0:00 0 GMT Zone Africa/Freetown -0:53:00 - LMT 1882 -0:53:00 - FMT 1913 Jun # Freetown Mean Time -1:00 SL %s 1957 - 0:00 SL %s + 0:00 SL GMT/+01 # Botswana # From Paul Eggert (2013-02-21): @@ -145,16 +145,11 @@ Zone Africa/Gaborone 1:43:40 - LMT 1885 Zone Africa/Harare 2:04:12 - LMT 1903 Mar 2:00 - CAT -# South Sudan -Zone Africa/Juba 2:06:24 - LMT 1931 - 2:00 Sudan CA%sT 2000 Jan 15 12:00 - 3:00 - EAT - # Uganda Zone Africa/Kampala 2:09:40 - LMT 1928 Jul 3:00 - EAT 1930 - 2:30 - BEAT 1948 - 2:45 - BEAUT 1957 + 2:30 - +0230 1948 + 2:45 - +0245 1957 3:00 - EAT # Rwanda @@ -175,13 +170,13 @@ Zone Africa/Lome 0:04:52 - LMT 1893 # Angola # +# From Paul Eggert (2018-02-16): # Shanks gives 1911-05-26 for the transition to WAT, # evidently confusing the date of the Portuguese decree -# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf -# with the date that it took effect, namely 1912-01-01. +# (see Europe/Lisbon) with the date that it took effect. # Zone Africa/Luanda 0:52:56 - LMT 1892 - 0:52:04 - AOT 1912 Jan 1 # Angola Time + 0:52:04 - LMT 1911 Dec 31 23:00u # Luanda MT? 1:00 - WAT # Democratic Republic of the Congo (east) @@ -209,26 +204,26 @@ Zone Africa/Maseru 1:50:00 - LMT 1903 Mar 2:00 1:00 SAST 1944 Mar 19 2:00 2:00 - SAST -# Swaziland +# Eswatini (formerly Swaziland) Zone Africa/Mbabane 2:04:24 - LMT 1903 Mar 2:00 - SAST # Somalia Zone Africa/Mogadishu 3:01:28 - LMT 1893 Nov 3:00 - EAT 1931 - 2:30 - BEAT 1957 + 2:30 - +0230 1957 3:00 - EAT # Niger Zone Africa/Niamey 0:08:28 - LMT 1912 - -1:00 - WAT 1934 Feb 26 + -1:00 - -01 1934 Feb 26 0:00 - GMT 1960 1:00 - WAT # Mauritania Zone Africa/Nouakchott -1:03:48 - LMT 1912 0:00 - GMT 1934 Feb 26 - -1:00 - WAT 1960 Nov 28 + -1:00 - -01 1960 Nov 28 0:00 - GMT # Burkina Faso @@ -242,11 +237,6 @@ Zone Africa/Porto-Novo 0:10:28 - LMT 1912 Jan 1 0:00 - GMT 1934 Feb 26 1:00 - WAT -# São Tomé and Príncipe -Zone Africa/Sao_Tome 0:26:56 - LMT 1884 - -0:36:32 - LMT 1912 # Lisbon Mean Time - 0:00 - GMT - # Mali (northern) Zone Africa/Timbuktu -0:12:04 - LMT 1912 0:00 - GMT @@ -264,26 +254,36 @@ Zone America/Antigua -4:07:12 - LMT 1912 Mar 2 # The name "Comodoro Rivadavia" exceeds the 14-byte POSIX limit. Zone America/Argentina/ComodRivadavia -4:30:00 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1991 Mar 3 - -4:00 - WART 1991 Oct 20 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 - ART 2004 Jun 1 - -4:00 - WART 2004 Jun 20 - -3:00 - ART + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1991 Mar 3 + -4:00 - -04 1991 Oct 20 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 - -03 2004 Jun 1 + -4:00 - -04 2004 Jun 20 + -3:00 - -03 # Aruba Zone America/Aruba -4:40:24 - LMT 1912 Feb 12 # Oranjestad - -4:30 - ANT 1965 # Netherlands Antilles Time + -4:30 - -0430 1965 -4:00 - AST # Cayman Is Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown - -5:07:11 - KMT 1912 Feb # Kingston Mean Time + -5:07:10 - KMT 1912 Feb # Kingston Mean Time -5:00 - EST +# United States +# +# From Paul Eggert (2018-03-18): +# America/Chillicothe would be tricky, as it was a city of two-timers: +# "To prevent a constant mixup at Chillicothe, caused by the courthouse +# clock running on central time and the city running on 'daylight saving' +# time, a third hand was added to the dial of the courthouse clock." +# -- Ohio news in brief. The Cedarville Herald. 1920-05-21;43(21):1 (col. 5) +# https://digitalcommons.cedarville.edu/cedarville_herald/794 + # Canada Zone America/Coral_Harbour -5:32:40 - LMT 1884 -5:00 NT_YK E%sT 1946 @@ -358,6 +358,30 @@ Zone America/Montreal -4:54:16 - LMT 1884 Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Cork Hill -4:00 - AST +# United States +# +# From Paul Eggert (2018-03-18): +# America/Palm_Springs would be tricky, as it kept two sets of clocks +# in 1946/7. See the following notes. +# +# From Steve Allen (2018-01-19): +# The shadow of Mt. San Jacinto brings darkness very early in the winter +# months. In 1946 the chamber of commerce decided to put the clocks of Palm +# Springs forward by an hour in the winter. +# https://www.desertsun.com/story/life/2017/12/27/palm-springs-struggle-daylight-savings-time-and-idea-sun-time/984416001/ +# Desert Sun, Number 18, 1 November 1946 +# https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=DS19461101 +# has proposal for meeting on front page and page 21. +# Desert Sun, Number 19, 5 November 1946 +# https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=DS19461105 +# reports that Sun Time won at the meeting on front page and page 5. +# Desert Sun, Number 37, 7 January 1947 +# https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=DS19470107.2.12 +# front page reports request to abandon Sun Time and page 7 notes a "class war". +# Desert Sun, Number 38, 10 January 1947 +# https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=DS19470110 +# front page reports on end. + # Argentina # This entry was intended for the following areas, but has been superseded by # more detailed zones. @@ -365,12 +389,12 @@ Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Cork Hill # Formosa (FM), La Pampa (LP), Chubut (CH) Zone America/Rosario -4:02:40 - LMT 1894 Nov -4:16:44 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1991 Jul - -3:00 - ART 1999 Oct 3 0:00 - -4:00 Arg AR%sT 2000 Mar 3 0:00 - -3:00 - ART + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1991 Jul + -3:00 - -03 1999 Oct 3 0:00 + -4:00 Arg -04/-03 2000 Mar 3 0:00 + -3:00 - -03 # St Kitts-Nevis Zone America/St_Kitts -4:10:52 - LMT 1912 Mar 2 # Basseterre @@ -403,12 +427,12 @@ Link Antarctica/McMurdo Antarctica/South_Pole # Milne says 2:59:54 was the meridian of the saluting battery at Aden, # and that Yemen was at 1:55:56, the meridian of the Hagia Sophia. Zone Asia/Aden 2:59:54 - LMT 1950 - 3:00 - AST + 3:00 - +03 # Bahrain Zone Asia/Bahrain 3:22:20 - LMT 1920 # Manamah - 4:00 - GST 1972 Jun - 3:00 - AST + 4:00 - +04 1972 Jun + 3:00 - +03 # India # @@ -419,7 +443,7 @@ Zone Asia/Bahrain 3:22:20 - LMT 1920 # Manamah # From Paul Eggert (2014-08-21): # In tomorrow's The Hindu, Nitya Menon reports that India had two civil time # zones starting in 1884, one in Bombay and one in Calcutta, and that railways -# used a third time zone based on Madras time (80 deg. 18'30" E). Also, +# used a third time zone based on Madras time (80° 18' 30" E). Also, # in 1881 Bombay briefly switched to Madras time, but switched back. See: # http://www.thehindu.com/news/cities/chennai/madras-375-when-madras-clocked-the-time/article6339393.ece #Zone Asia/Chennai [not enough info to complete] @@ -431,7 +455,7 @@ Zone Asia/Bahrain 3:22:20 - LMT 1920 # Manamah # counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing, # Yangchun, Yangjiang, Yu'nan, and Yunfu. Zone Asia/Chongqing 7:06:20 - LMT 1928 # or Chungking - 7:00 - LONT 1980 May # Long-shu Time + 7:00 - +07 1980 May 8:00 PRC C%sT Link Asia/Chongqing Asia/Chungking @@ -442,61 +466,77 @@ Link Asia/Chongqing Asia/Chungking # October 1954, with exact date and time unspecified. Zone Asia/Hanoi 7:03:24 - LMT 1906 Jul 1 7:06:30 - PLMT 1911 May 1 - 7:00 - ICT 1942 Dec 31 23:00 - 8:00 - IDT 1945 Mar 14 23:00 - 9:00 - JST 1945 Sep 2 - 7:00 - ICT 1947 Apr 1 - 8:00 - IDT 1954 Oct - 7:00 - ICT + 7:00 - +07 1942 Dec 31 23:00 + 8:00 - +08 1945 Mar 14 23:00 + 9:00 - +09 1945 Sep 2 + 7:00 - +07 1947 Apr 1 + 8:00 - +08 1954 Oct + 7:00 - +07 # China # Changbai Time ("Long-white Time", Long-white = Heilongjiang area) # Heilongjiang (except Mohe county), Jilin Zone Asia/Harbin 8:26:44 - LMT 1928 # or Haerbin - 8:30 - CHAT 1932 Mar # Changbai Time + 8:30 - +0830 1932 Mar 8:00 - CST 1940 - 9:00 - CHAT 1966 May - 8:30 - CHAT 1980 May + 9:00 - +09 1966 May + 8:30 - +0830 1980 May 8:00 PRC C%sT # far west China Zone Asia/Kashgar 5:03:56 - LMT 1928 # or Kashi or Kaxgar - 5:30 - KAST 1940 # Kashgar Time - 5:00 - KAST 1980 May + 5:30 - +0530 1940 + 5:00 - +05 1980 May 8:00 PRC C%sT # Kuwait Zone Asia/Kuwait 3:11:56 - LMT 1950 - 3:00 - AST + 3:00 - +03 # Oman # Milne says 3:54:24 was the meridian of the Muscat Tidal Observatory. Zone Asia/Muscat 3:54:24 - LMT 1920 - 4:00 - GST + 4:00 - +04 # India # From Paul Eggert (2014-08-11), after a heads-up from Stephen Colebourne: # According to a Portuguese decree (1911-05-26) -# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf +# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf # Portuguese India switched to UT +05 on 1912-01-01. #Zone Asia/Panaji [not enough info to complete] # Cambodia -# From Paul Eggert (2014-10-11): -# See Asia/Ho_Chi_Minh for the source for most of this data. Also, guess -# (1) Cambodia reverted to UT +07 on 1945-09-02, when Vietnam did, and -# (2) they also reverted to +07 on 1953-11-09, the date of independence. -# These guesses are probably wrong but they're better than guessing no -# transitions there. + +# From an adoptive daughter of the late Cambodian ruler Prince Sihanouk, +# via Alois Treindl (2019-08-08): +# +# King Sihanouk said that, during the Japanese occupation, starting with +# what historians refer to as "le coup de force du 9 mars 1945", Cambodia, +# like the entire French Indochina, used Tokyo time zone. After Japan +# surrendered, 2 September 1945, Cambodia fell under French rule again and +# adopted Hanoi time zone again. +# +# However, on 7 January 1946, Sihanouk and Tioulong managed to obtain a +# status of "internal autonomy" from the government of Charles de Gaulle. +# Although many fields remained under the administration of the French +# (customs, taxes, justice, defence, foreign affairs, etc.), the Cambodian +# administration was responsible for religious matters and traditional +# celebrations, which included our calendar and time. The time zone was GMT +# + 7 and _no_ DST was applied. +# +# After Sihanouk and Tioulong achieved full independence, on 9 November 1953, +# GMT + 7 was maintained. + +# From Paul Eggert (2019-08-26): +# See Asia/Ho_Chi_Minh for the source for most of rest of this data. + Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jul 1 7:06:30 - PLMT 1911 May 1 - 7:00 - ICT 1942 Dec 31 23:00 - 8:00 - IDT 1945 Mar 14 23:00 - 9:00 - JST 1945 Sep 2 - 7:00 - ICT 1947 Apr 1 - 8:00 - IDT 1953 Nov 9 - 7:00 - ICT + 7:00 - +07 1942 Dec 31 23:00 + 8:00 - +08 1945 Mar 14 23:00 + 9:00 - +09 1945 Sep 2 + 7:00 - +07 # Israel Zone Asia/Tel_Aviv 2:19:04 - LMT 1880 @@ -511,16 +551,16 @@ Zone Asia/Tel_Aviv 2:19:04 - LMT 1880 # this is probably wrong but it's better than guessing no transition. Zone Asia/Vientiane 6:50:24 - LMT 1906 Jul 1 7:06:30 - PLMT 1911 May 1 - 7:00 - ICT 1942 Dec 31 23:00 - 8:00 - IDT 1945 Mar 14 23:00 - 9:00 - JST 1945 Sep 2 - 7:00 - ICT 1947 Apr 1 - 8:00 - IDT 1955 Apr 15 - 7:00 - ICT + 7:00 - +07 1942 Dec 31 23:00 + 8:00 - +08 1945 Mar 14 23:00 + 9:00 - +09 1945 Sep 2 + 7:00 - +07 1947 Apr 1 + 8:00 - +08 1955 Apr 15 + 7:00 - +07 # Jan Mayen # From Whitman: -Zone Atlantic/Jan_Mayen -1:00 - EGT +Zone Atlantic/Jan_Mayen -1:00 - -01 # St Helena Zone Atlantic/St_Helena -0:22:48 - LMT 1890 # Jamestown @@ -540,10 +580,10 @@ Zone Europe/Belfast -0:23:40 - LMT 1880 Aug 2 # Guernsey # Data from Joseph S. Myers -# http://mm.icann.org/pipermail/tz/2013-September/019883.html +# https://mm.icann.org/pipermail/tz/2013-September/019883.html # References to be added -# LMT Location - 49.27N -2.33E - St.Peter Port -Zone Europe/Guernsey -0:09:19 - LMT 1913 Jun 18 +# LMT is for Town Church, St. Peter Port, 49° 27' 17" N, 2° 32' 10" W. +Zone Europe/Guernsey -0:10:09 - LMT 1913 Jun 18 0:00 GB-Eire %s 1940 Jul 2 1:00 C-Eur CE%sT 1945 May 8 0:00 GB-Eire %s 1968 Oct 27 @@ -555,11 +595,11 @@ Zone Europe/Guernsey -0:09:19 - LMT 1913 Jun 18 # # From Lester Caine (2013-09-04): # The Isle of Man legislation is now on-line at -# , starting with the original Statutory +# , starting with the original Statutory # Time Act in 1883 and including additional confirmation of some of # the dates of the 'Summer Time' orders originating at # Westminster. There is a little uncertainty as to the starting date -# of the first summer time in 1916 which may have be announced a +# of the first summer time in 1916 which may have been announced a # couple of days late. There is still a substantial number of # documents to work through, but it is thought that every GB change # was also implemented on the island. @@ -574,10 +614,10 @@ Zone Europe/Isle_of_Man -0:17:55 - LMT 1883 Mar 30 0:00s # Jersey # Data from Joseph S. Myers -# http://mm.icann.org/pipermail/tz/2013-September/019883.html +# https://mm.icann.org/pipermail/tz/2013-September/019883.html # References to be added -# LMT Location - 49.187N -2.107E - St. Helier -Zone Europe/Jersey -0:08:25 - LMT 1898 Jun 11 16:00u +# LMT is for Parish Church, St. Helier, 49° 11' 0.57" N, 2° 6' 24.33" W. +Zone Europe/Jersey -0:08:26 - LMT 1898 Jun 11 16:00u 0:00 GB-Eire %s 1940 Jul 2 1:00 C-Eur CE%sT 1945 May 8 0:00 GB-Eire %s 1968 Oct 27 @@ -601,7 +641,7 @@ Zone Europe/Sarajevo 1:13:40 - LMT 1884 1:00 - CET 1982 Nov 27 1:00 EU CE%sT -# Macedonia +# North Macedonia Zone Europe/Skopje 1:25:44 - LMT 1884 1:00 - CET 1941 Apr 18 23:00 1:00 C-Eur CE%sT 1945 May 8 2:00s @@ -622,7 +662,7 @@ Zone Europe/Tiraspol 1:58:32 - LMT 1880 # Liechtenstein Zone Europe/Vaduz 0:38:04 - LMT 1894 Jun - 1:00 - CET 1981 + 1:00 Swiss CE%sT 1981 1:00 EU CE%sT # Croatia @@ -663,15 +703,13 @@ Zone Pacific/Johnston -10:00 - HST # " 3:00P Ar. MIDWAY ISLAND . . . . . . . . . M.L.T. Lv. 6:00A " # Zone Pacific/Midway -11:49:28 - LMT 1901 - -11:00 - NST 1956 Jun 3 - -11:00 1:00 NDT 1956 Sep 2 - -11:00 - NST 1967 Apr # N=Nome - -11:00 - BST 1983 Nov 30 # B=Bering - -11:00 - SST # S=Samoa + -11:00 - -11 1956 Jun 3 + -11:00 1:00 -10 1956 Sep 2 + -11:00 - -11 # N Mariana Is Zone Pacific/Saipan -14:17:00 - LMT 1844 Dec 31 9:43:00 - LMT 1901 - 9:00 - MPT 1969 Oct # N Mariana Is Time - 10:00 - MPT 2000 Dec 23 + 9:00 - +09 1969 Oct + 10:00 - +10 2000 Dec 23 10:00 - ChST # Chamorro Standard Time diff --git a/vendor/tzdata/calendars b/vendor/tzdata/calendars new file mode 100644 index 0000000..8bc7062 --- /dev/null +++ b/vendor/tzdata/calendars @@ -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? + +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 one obvious typo 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, + Turgau, 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: diff --git a/vendor/tzdata/checklinks.awk b/vendor/tzdata/checklinks.awk index 5b3e157..f309010 100644 --- a/vendor/tzdata/checklinks.awk +++ b/vendor/tzdata/checklinks.awk @@ -9,7 +9,7 @@ BEGIN { Zone = "\n" } -/^Zone/ { +/^Z/ { if (defined[$2]) { if (defined[$2] == Zone) { printf "%s: Zone has duplicate definition\n", $2 @@ -21,7 +21,7 @@ BEGIN { defined[$2] = Zone } -/^Link/ { +/^L/ { if (defined[$3]) { if (defined[$3] == Zone) { printf "%s: Link with same name as Zone\n", $3 diff --git a/vendor/tzdata/checktab.awk b/vendor/tzdata/checktab.awk index 2397673..ec145b5 100644 --- a/vendor/tzdata/checktab.awk +++ b/vendor/tzdata/checktab.awk @@ -63,12 +63,19 @@ BEGIN { coordinates = $2 tz = $3 comments = $4 - if (cc < cc0) { + + # 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 tz2comments[tz] = comments tz2NR[tz] = zone_NR @@ -126,6 +133,7 @@ $1 ~ /^#/ { next } 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. @@ -136,8 +144,10 @@ $1 ~ /^#/ { next } 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 ~ /\//) { if (!tztab[tz]) { @@ -156,6 +166,12 @@ END { 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]) { printf "%s:%d: no Zone table for '%s'\n", \ diff --git a/vendor/tzdata/etcetera b/vendor/tzdata/etcetera index f5fa4c9..a1606bd 100644 --- a/vendor/tzdata/etcetera +++ b/vendor/tzdata/etcetera @@ -1,9 +1,11 @@ +# 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 mostly present for historical reasons, so that # people in areas not otherwise covered by the tz files could "zic -l" -# to a time zone that was right for their area. These days, the +# to a timezone that was right for their area. These days, the # tz files cover almost all the inhabited world, and the only practical # need now for the entries that are not on UTC are for ships at sea # that cannot use POSIX TZ settings. @@ -17,7 +19,6 @@ Zone Etc/GMT 0 - GMT Zone Etc/UTC 0 - UTC -Zone Etc/UCT 0 - UCT # The following link uses older naming conventions, # but it belongs here, not in the file 'backward', diff --git a/vendor/tzdata/europe b/vendor/tzdata/europe index bf3bf06..361b396 100644 --- a/vendor/tzdata/europe +++ b/vendor/tzdata/europe @@ -1,3 +1,5 @@ +# tzdb data for Europe and environs + # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -6,15 +8,15 @@ # tz@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. -# From Paul Eggert (2014-10-31): +# From Paul Eggert (2017-02-10): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), # San Diego: ACS Publications, Inc. (2003). # Unfortunately this book contains many errors and cites no sources. # -# Gwillim Law writes that a good source -# for recent time zone data is the International Air Transport +# Many years ago Gwillim Law wrote that a good source +# for time zone data was the International Air Transport # Association's Standard Schedules Information Manual (IATA SSIM), # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. Except where otherwise noted, @@ -37,14 +39,14 @@ # [PDF] (1914-03) # # Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94 -# . He writes: +# . He writes: # "It is requested that corrections and additions to these tables # may be sent to Mr. John Milne, Royal Geographical Society, # Savile Row, London." Nowadays please email them to tz@iana.org. # # Byalokoz EL. New Counting of Time in Russia since July 1, 1919. # This Russian-language source was consulted by Vladimir Karpinsky; see -# http://mm.icann.org/pipermail/tz/2014-August/021320.html +# https://mm.icann.org/pipermail/tz/2014-August/021320.html # The full Russian citation is: # Бялокоз, Евгений Людвигович. Новый счет времени в течении суток # введенный декретом Совета народных комиссаров для всей России с 1-го @@ -56,29 +58,27 @@ # History of Summer Time # # (1998-09-21, in Portuguese) - # # I invented the abbreviations marked '*' in the following table; -# the rest are from earlier versions of this file, or from other sources. -# Corrections are welcome! -# std dst 2dst -# LMT Local Mean Time -# -4:00 AST ADT Atlantic -# -3:00 WGT WGST Western Greenland* -# -1:00 EGT EGST Eastern Greenland* -# 0:00 GMT BST BDST Greenwich, British Summer -# 0:00 GMT IST Greenwich, Irish Summer -# 0:00 WET WEST WEMT Western Europe -# 0:19:32.13 AMT NST Amsterdam, Netherlands Summer (1835-1937)* -# 0:20 NET NEST Netherlands (1937-1940)* -# 1:00 BST British Standard (1968-1971) -# 1:00 CET CEST CEMT Central Europe -# 1:00:14 SET Swedish (1879-1899)* -# 2:00 EET EEST Eastern Europe -# 3:00 MSK MSD Moscow - -# From Peter Ilieve (1994-12-04), -# The original six [EU members]: Belgium, France, (West) Germany, Italy, +# the rest are variants of the "xMT" pattern for a city's mean time, +# or are from other sources. Corrections are welcome! +# std dst 2dst +# LMT Local Mean Time +# -4:00 AST ADT Atlantic +# 0:00 GMT BST BDST Greenwich, British Summer +# 0:00 GMT IST Greenwich, Irish Summer +# 0:00 WET WEST WEMT Western Europe +# 0:19:32.13 AMT* NST* Amsterdam, Netherlands Summer (1835-1937) +# 1:00 BST British Standard (1968-1971) +# 1:00 IST GMT Irish Standard (1968-) with winter DST +# 1:00 CET CEST CEMT Central Europe +# 1:00:14 SET Swedish (1879-1899) +# 1:36:34 RMT* LST* Riga, Latvian Summer (1880-1926)* +# 2:00 EET EEST Eastern Europe +# 3:00 MSK MSD MDST* Moscow + +# From Peter Ilieve (1994-12-04), re EEC/EC/EU members: +# The original six: Belgium, France, (West) Germany, Italy, # Luxembourg, the Netherlands. # Plus, from 1 Jan 73: Denmark, Ireland, United Kingdom. # Plus, from 1 Jan 81: Greece. @@ -119,10 +119,10 @@ # along the towpath within a few yards of it.' # # I have a one inch to one mile map of London and my estimate of the stone's -# position is 51 degrees 28' 30" N, 0 degrees 18' 45" W. The longitude should -# be within about +-2". The Ordnance Survey grid reference is TQ172761. +# position is 51° 28' 30" N, 0° 18' 45" W. The longitude should +# be within about ±2". The Ordnance Survey grid reference is TQ172761. # -# [This yields GMTOFF = -0:01:15 for London LMT in the 18th century.] +# [This yields STDOFF = -0:01:15 for London LMT in the 18th century.] # From Paul Eggert (1993-11-18): # @@ -160,7 +160,7 @@ # after-hours daylight in which to pursue his research. # In 1895 he presented a paper to the Wellington Philosophical Society # that proposed a two-hour daylight-saving shift. See: -# Hudson GV. On seasonal time-adjustment in countries south of lat. 30 deg. +# Hudson GV. On seasonal time-adjustment in countries south of lat. 30°. # Transactions and Proceedings of the New Zealand Institute. 1895;28:734 # http://rsnz.natlib.govt.nz/volume/rsnz_28/rsnz_28_00_006110.html # Although some interest was expressed in New Zealand, his proposal @@ -190,7 +190,7 @@ # foundations of civilization throughout the world. # -- "A Silent Toast to William Willett", Pictorial Weekly; # republished in Finest Hour (Spring 2002) 1(114):26 -# http://www.winstonchurchill.org/images/finesthour/Vol.01%20No.114.pdf +# https://www.winstonchurchill.org/publications/finest-hour/finest-hour-114/a-silent-toast-to-william-willett-by-winston-s-churchill # From Paul Eggert (2015-08-08): # The OED Supplement says that the English originally said "Daylight Saving" @@ -228,8 +228,8 @@ # official designation; the reply of the 21st was that there wasn't # but he couldn't think of anything better than the "Double British # Summer Time" that the BBC had been using informally. -# http://www.polyomino.org.uk/british-time/bbc-19410418.png -# http://www.polyomino.org.uk/british-time/ho-19410421.png +# https://www.polyomino.org.uk/british-time/bbc-19410418.png +# https://www.polyomino.org.uk/british-time/ho-19410421.png # From Sir Alexander Maxwell in the above-mentioned letter (1941-04-21): # [N]o official designation has as far as I know been adopted for the time @@ -246,13 +246,13 @@ # the history of summer time legislation in the United Kingdom. # Since 1998 Joseph S. Myers has been updating # and extending this list, which can be found in -# http://www.polyomino.org.uk/british-time/ +# https://www.polyomino.org.uk/british-time/ # From Joseph S. Myers (1998-01-06): # # The legal time in the UK outside of summer time is definitely GMT, not UTC; # see Lord Tanlaw's speech -# http://www.publications.parliament.uk/pa/ld199798/ldhansrd/vo970611/text/70611-10.htm#70611-10_head0 +# https://www.publications.parliament.uk/pa/ld199798/ldhansrd/vo970611/text/70611-10.htm#70611-10_head0 # (Lords Hansard 11 June 1997 columns 964 to 976). # From Paul Eggert (2006-03-22): @@ -281,16 +281,31 @@ # The following claim by Shanks & Pottenger is possible though doubtful; # we'll ignore it for now. # * Dublin's 1971-10-31 switch was at 02:00, even though London's was 03:00. + +# From Paul Eggert (2017-12-04): # -# -# Whitman says Dublin Mean Time was -0:25:21, which is more precise than -# Shanks & Pottenger. -# Perhaps this was Dunsink Observatory Time, as Dunsink Observatory -# (8 km NW of Dublin's center) seemingly was to Dublin as Greenwich was -# to London. For example: +# Dunsink Observatory (8 km NW of Dublin's center) was to Dublin as +# Greenwich was to London. For example: # # "Timeball on the ballast office is down. Dunsink time." # -- James Joyce, Ulysses +# +# The abbreviation DMT stood for "Dublin Mean Time" or "Dunsink Mean Time"; +# this being Ireland, opinions differed. +# +# Whitman says Dublin/Dunsink Mean Time was UT-00:25:21, which agrees +# with measurements of recent visitors to the Meridian Room of Dunsink +# Observatory; see Malone D. Dunsink and timekeeping. 2016-01-24. +# . Malone +# writes that the Nautical Almanac listed UT-00:25:22 until 1896, when +# it moved to UT-00:25:21.1 (I confirmed that the 1893 edition used +# the former and the 1896 edition used the latter). Evidently the +# news of this change propagated slowly, as Milne 1899 still lists +# UT-00:25:22 and cites the International Telegraph Bureau. As it is +# not clear that there was any practical significance to the change +# from UT-00:25:22 to UT-00:25:21.1 in civil timekeeping, omit this +# transition for now and just use the latter value, omitting its +# fraction since our format cannot represent fractions. # "Countess Markievicz ... claimed that the [1916] abolition of Dublin Mean Time # was among various actions undertaken by the 'English' government that @@ -298,7 +313,7 @@ # Irish 'public feeling (was) outraged by forcing of English time on us'." # -- Parsons M. Dublin lost its time zone - and 25 minutes - after 1916 Rising. # Irish Times 2014-10-27. -# http://www.irishtimes.com/news/politics/dublin-lost-its-time-zone-and-25-minutes-after-1916-rising-1.1977411 +# https://www.irishtimes.com/news/politics/dublin-lost-its-time-zone-and-25-minutes-after-1916-rising-1.1977411 # From Joseph S. Myers (2005-01-26): # Irish laws are available online at . @@ -350,6 +365,28 @@ # regulations. I spoke this morning with the Secretary of the Department of # Justice (tel +353 1 678 9711) who confirmed to me that the correct name is # "Irish Summer Time", abbreviated to "IST". +# +# From Paul Eggert (2017-12-07): +# The 1996 anonymous contributor's goal was to determine the correct +# abbreviation for summer time in Dublin and so the contributor +# focused on the "IST", not on the "Irish Summer Time". Though the +# "IST" was correct, the "Irish Summer Time" appears to have been an +# error, as Ireland's Standard Time (Amendment) Act, 1971 states that +# standard time in Ireland remains at UT +01 and is observed in +# summer, and that Greenwich mean time is observed in winter. (Thanks +# to Derick Rethans for pointing out the error.) That is, when +# Ireland amended the 1968 act that established UT +01 as Irish +# Standard Time, it left standard time unchanged and established GMT +# as a negative daylight saving time in winter. So, in this database +# IST stands for Irish Summer Time for timestamps before 1968, and for +# Irish Standard Time after that. See: +# http://www.irishstatutebook.ie/eli/1971/act/17/enacted/en/print + +# Michael Deckers (2017-06-01) gave the following URLs for Ireland's +# Summer Time Act, 1925 and Summer Time Orders, 1926 and 1947: +# http://www.irishstatutebook.ie/eli/1925/act/8/enacted/en/print +# http://www.irishstatutebook.ie/eli/1926/sro/919/made/en/print +# http://www.irishstatutebook.ie/eli/1947/sro/71/made/en/print # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Summer Time Act, 1916 @@ -463,7 +500,7 @@ Rule GB-Eire 1990 1995 - Oct Sun>=22 1:00u 0 GMT # # Use Europe/London for Jersey, Guernsey, and the Isle of Man. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/London -0:01:15 - LMT 1847 Dec 1 0:00s 0:00 GB-Eire %s 1968 Oct 27 1:00 - BST 1971 Oct 31 2:00u @@ -473,27 +510,60 @@ Link Europe/London Europe/Jersey Link Europe/London Europe/Guernsey Link Europe/London Europe/Isle_of_Man -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# From Paul Eggert (2018-02-15): +# In January 2018 we discovered that the negative SAVE values in the +# Eire rules cause problems with tests for ICU: +# https://mm.icann.org/pipermail/tz/2018-January/025825.html +# and with tests for OpenJDK: +# https://mm.icann.org/pipermail/tz/2018-January/025822.html +# +# To work around this problem, the build procedure can translate the +# following data into two forms, one with negative SAVE values and the +# other form with a traditional approximation for Irish timestamps +# after 1971-10-31 02:00 UTC; although this approximation has tm_isdst +# flags that are reversed, its UTC offsets are correct and this often +# suffices. This source file currently uses only nonnegative SAVE +# values, but this is intended to change and downstream code should +# not rely on it. +# +# The following is like GB-Eire and EU, except with standard time in +# summer and negative daylight saving time in winter. It is for when +# negative SAVE values are used. +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Eire 1971 only - Oct 31 2:00u -1:00 - +Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 - +Rule Eire 1972 1980 - Oct Sun>=23 2:00u -1:00 - +Rule Eire 1981 max - Mar lastSun 1:00u 0 - +Rule Eire 1981 1989 - Oct Sun>=23 1:00u -1:00 - +Rule Eire 1990 1995 - Oct Sun>=22 1:00u -1:00 - +Rule Eire 1996 max - Oct lastSun 1:00u -1:00 - + +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2 - -0:25:21 - DMT 1916 May 21 2:00 + -0:25:21 - DMT 1916 May 21 2:00s -0:25:21 1:00 IST 1916 Oct 1 2:00s 0:00 GB-Eire %s 1921 Dec 6 # independence - 0:00 GB-Eire GMT/IST 1940 Feb 25 2:00 - 0:00 1:00 IST 1946 Oct 6 2:00 - 0:00 - GMT 1947 Mar 16 2:00 - 0:00 1:00 IST 1947 Nov 2 2:00 - 0:00 - GMT 1948 Apr 18 2:00 + 0:00 GB-Eire GMT/IST 1940 Feb 25 2:00s + 0:00 1:00 IST 1946 Oct 6 2:00s + 0:00 - GMT 1947 Mar 16 2:00s + 0:00 1:00 IST 1947 Nov 2 2:00s + 0:00 - GMT 1948 Apr 18 2:00s 0:00 GB-Eire GMT/IST 1968 Oct 27 - 1:00 - IST 1971 Oct 31 2:00u - 0:00 GB-Eire GMT/IST 1996 - 0:00 EU GMT/IST +# The next line is for when negative SAVE values are used. + 1:00 Eire IST/GMT +# These three lines are for when SAVE values are always nonnegative. +# 1:00 - IST 1971 Oct 31 2:00u +# 0:00 GB-Eire GMT/IST 1996 +# 0:00 EU GMT/IST + ############################################################################### # Europe -# EU rules are for the European Union, previously known as the EC, EEC, -# Common Market, etc. +# The following rules are for the European Union and for its +# predecessor organization, the European Communities. +# For brevity they are called "EU rules" elsewhere in this file. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S @@ -628,7 +698,7 @@ Rule Russia 1996 2010 - Oct lastSun 2:00s 0 - # Council of Ministers of the USSR from 1989-03-14 No. 227. # # I did not find full texts of these acts. For the 1989 one we have -# title at http://base.garant.ru/70754136/ : +# title at https://base.garant.ru/70754136/ : # "About change in calculation of time on the territories of # Lithuanian SSR, Latvian SSR and Estonian SSR, Astrakhan, # Kaliningrad, Kirov, Kuybyshev, Ulyanovsk and Uralsk oblasts". @@ -659,7 +729,7 @@ Rule Russia 1996 2010 - Oct lastSun 2:00s 0 - # http://bmockbe.ru/events/?ID=7583 # # Medvedev signed a law on the calculation of the time (in russian): -# http://www.regnum.ru/news/polit/1413906.html +# https://www.regnum.ru/news/polit/1413906.html # From Arthur David Olson (2011-06-15): # Take "abolishing daylight saving time" to mean that time is now considered @@ -667,7 +737,7 @@ Rule Russia 1996 2010 - Oct lastSun 2:00s 0 - # These are for backward compatibility with older versions. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone WET 0:00 EU WE%sT Zone CET 1:00 C-Eur CE%sT Zone MET 1:00 C-Eur ME%sT @@ -727,14 +797,14 @@ Rule Albania 1982 only - Oct 3 0:00 0 - Rule Albania 1983 only - Apr 18 0:00 1:00 S Rule Albania 1983 only - Oct 1 0:00 0 - Rule Albania 1984 only - Apr 1 0:00 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Tirane 1:19:20 - LMT 1914 1:00 - CET 1940 Jun 16 1:00 Albania CE%sT 1984 Jul 1:00 EU CE%sT # Andorra -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Andorra 0:06:04 - LMT 1901 0:00 - WET 1946 Sep 30 1:00 - CET 1985 Mar 31 2:00 @@ -751,16 +821,21 @@ Zone Europe/Andorra 0:06:04 - LMT 1901 # Shanks & Pottenger give 02:00, the BEV 00:00. Go with the BEV, # and guess 02:00 for 1945-04-12. +# From Alois Triendl (2019-07-22): +# In 1946 the end of DST was on Monday, 7 October 1946, at 3:00 am. +# Shanks had this right. Source: Die Weltpresse, 5. Oktober 1946, page 5. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Austria 1920 only - Apr 5 2:00s 1:00 S Rule Austria 1920 only - Sep 13 2:00s 0 - Rule Austria 1946 only - Apr 14 2:00s 1:00 S -Rule Austria 1946 1948 - Oct Sun>=1 2:00s 0 - +Rule Austria 1946 only - Oct 7 2:00s 0 - +Rule Austria 1947 1948 - Oct Sun>=1 2:00s 0 - Rule Austria 1947 only - Apr 6 2:00s 1:00 S Rule Austria 1948 only - Apr 18 2:00s 1:00 S Rule Austria 1980 only - Apr 6 0:00 1:00 S Rule Austria 1980 only - Sep 28 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Vienna 1:05:21 - LMT 1893 Apr 1:00 C-Eur CE%sT 1920 1:00 Austria CE%sT 1940 Apr 1 2:00s @@ -786,13 +861,13 @@ Zone Europe/Vienna 1:05:21 - LMT 1893 Apr # Sources (Russian language): # http://www.belta.by/ru/all_news/society/V-Belarusi-otmenjaetsja-perexod-na-sezonnoe-vremja_i_572952.html # http://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/ -# http://news.tut.by/society/250578.html +# https://news.tut.by/society/250578.html # # From Alexander Bokovoy (2014-10-09): # Belarussian government decided against changing to winter time.... # http://eng.belta.by/all_news/society/Belarus-decides-against-adjusting-time-in-Russias-wake_i_76335.html # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Minsk 1:50:16 - LMT 1880 1:50 - MMT 1924 May 2 # Minsk Mean Time 2:00 - EET 1930 Jun 21 @@ -805,15 +880,35 @@ Zone Europe/Minsk 1:50:16 - LMT 1880 # Belgium # -# From Paul Eggert (1997-07-02): +# From Michael Deckers (2019-08-25): +# The exposition in the web page +# https://www.bestor.be/wiki/index.php/Voyager_dans_le_temps._L%E2%80%99introduction_de_la_norme_de_Greenwich_en_Belgique +# gives several contemporary sources from which one can conclude that +# the switch in Europe/Brussels on 1892-05-01 was from 00:17:30 to 00:00:00. +# +# From Paul Eggert (2019-08-28): +# This quote helps explain the late-1914 situation: +# In early November 1914, the Germans imposed the time zone used in central +# Europe and forced the inhabitants to set their watches and public clocks +# sixty minutes ahead. Many were reluctant to accept "German time" and +# continued to use "Belgian time" among themselves. Reflecting the spirit of +# resistance that arose in the population, a song made fun of this change.... +# The song ended: +# Putting your clock forward +# Will but hasten the happy hour +# When we kick out the Boches! +# See: Pluvinage G. Brussels on German time. Cahiers Bruxellois - +# Brusselse Cahiers. 2014;XLVI(1E):15-38. +# https://www.cairn.info/revue-cahiers-bruxellois-2014-1E-page-15.htm +# +# Entries from 1914 through 1917 are taken from "De tijd in België" +# . # Entries from 1918 through 1991 are taken from: # Annuaire de L'Observatoire Royal de Belgique, # Avenue Circulaire, 3, B-1180 BRUXELLES, CLVIIe année, 1991 # (Imprimerie HAYEZ, s.p.r.l., Rue Fin, 4, 1080 BRUXELLES, MCMXC), # pp 8-9. -# LMT before 1892 was 0:17:30, according to the official journal of Belgium: -# Moniteur Belge, Samedi 30 Avril 1892, N.121. -# Thanks to Pascal Delmoitie for these references. +# Thanks to Pascal Delmoitie for the 1918/1991 references. # The 1918 rules are listed for completeness; they apply to unoccupied Belgium. # Assume Brussels switched to WET in 1918 when the armistice took effect. # @@ -856,9 +951,9 @@ Rule Belgium 1945 only - Apr 2 2:00s 1:00 S Rule Belgium 1945 only - Sep 16 2:00s 0 - Rule Belgium 1946 only - May 19 2:00s 1:00 S Rule Belgium 1946 only - Oct 7 2:00s 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Brussels 0:17:30 - LMT 1880 - 0:17:30 - BMT 1892 May 1 12:00 # Brussels MT + 0:17:30 - BMT 1892 May 1 00:17:30 0:00 - WET 1914 Nov 8 1:00 - CET 1916 May 1 0:00 1:00 C-Eur CE%sT 1918 Nov 11 11:00u @@ -883,7 +978,7 @@ Rule Bulg 1979 only - Oct 1 1:00 0 - Rule Bulg 1980 1982 - Apr Sat>=1 23:00 1:00 S Rule Bulg 1980 only - Sep 29 1:00 0 - Rule Bulg 1981 only - Sep 27 2:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Sofia 1:33:16 - LMT 1880 1:56:56 - IMT 1894 Nov 30 # Istanbul MT? 2:00 - EET 1942 Nov 2 3:00 @@ -902,18 +997,30 @@ Zone Europe/Sofia 1:33:16 - LMT 1880 # Please see the 'asia' file for Asia/Nicosia. # Czech Republic / Czechia +# +# From Paul Eggert (2018-04-15): +# The source for Czech data is: Kdy začíná a končí letní čas. 2018-04-15. +# https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas +# We know of no English-language name for historical Czech winter time; +# abbreviate it as "GMT", as it happened to be GMT. +# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Czech 1945 only - Apr 8 2:00s 1:00 S -Rule Czech 1945 only - Nov 18 2:00s 0 - +Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S +Rule Czech 1945 only - Oct 1 2:00s 0 - Rule Czech 1946 only - May 6 2:00s 1:00 S Rule Czech 1946 1949 - Oct Sun>=1 2:00s 0 - -Rule Czech 1947 only - Apr 20 2:00s 1:00 S -Rule Czech 1948 only - Apr 18 2:00s 1:00 S +Rule Czech 1947 1948 - Apr Sun>=15 2:00s 1:00 S Rule Czech 1949 only - Apr 9 2:00s 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Prague 0:57:44 - LMT 1850 0:57:44 - PMT 1891 Oct # Prague Mean Time - 1:00 C-Eur CE%sT 1944 Sep 17 2:00s + 1:00 C-Eur CE%sT 1945 May 9 + 1:00 Czech CE%sT 1946 Dec 1 3:00 +# Vanguard section, for zic and other parsers that support negative DST. + 1:00 -1:00 GMT 1947 Feb 23 2:00 +# Rearguard section, for parsers that do not support negative DST. +# 0:00 - GMT 1947 Feb 23 2:00 +# End of rearguard section. 1:00 Czech CE%sT 1979 1:00 EU CE%sT # Use Europe/Prague also for Slovakia. @@ -926,7 +1033,7 @@ Zone Europe/Prague 0:57:44 - LMT 1850 # The page http://www.retsinfo.dk/_GETDOCI_/ACCN/A18930008330-REGL # confirms this, and states that the law was put forth 1893-03-29. # -# The EU treaty with effect from 1973: +# The EU [actually, EEC and Euratom] treaty with effect from 1973: # http://www.retsinfo.dk/_GETDOCI_/ACCN/A19722110030-REGL # # This provoked a new law from 1974 to make possible summer time changes @@ -966,7 +1073,7 @@ Rule Denmark 1947 only - Aug 10 2:00s 0 - Rule Denmark 1948 only - May 9 2:00s 1:00 S Rule Denmark 1948 only - Aug 8 2:00s 0 - # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Copenhagen 0:50:20 - LMT 1890 0:50:20 - CMT 1894 Jan 1 # Copenhagen MT 1:00 Denmark CE%sT 1942 Nov 2 2:00s @@ -982,9 +1089,10 @@ Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn # East Greenland and Franz Josef Land, but we don't know their time zones. # My source for this is Wilhelm Dege's book mentioned under Svalbard. # -# From Paul Eggert (2006-03-22): -# Greenland joined the EU as part of Denmark, obtained home rule on 1979-05-01, -# and left the EU on 1985-02-01. It therefore should have been using EU +# From Paul Eggert (2017-12-10): +# Greenland joined the European Communities as part of Denmark, +# obtained home rule on 1979-05-01, and left the European Communities +# on 1985-02-01. It therefore should have been using EU # rules at least through 1984. Shanks & Pottenger say Scoresbysund and Godthåb # used C-Eur rules after 1980, but IATA SSIM (1991/1996) says they use EU # rules since at least 1991. Assume EU rules since 1980. @@ -1062,18 +1170,18 @@ Rule Thule 1993 2006 - Oct lastSun 2:00 0 S Rule Thule 2007 max - Mar Sun>=8 2:00 1:00 D Rule Thule 2007 max - Nov Sun>=1 2:00 0 S # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 - -3:00 - WGT 1980 Apr 6 2:00 - -3:00 EU WG%sT 1996 + -3:00 - -03 1980 Apr 6 2:00 + -3:00 EU -03/-02 1996 0:00 - GMT Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit - -2:00 - CGT 1980 Apr 6 2:00 - -2:00 C-Eur CG%sT 1981 Mar 29 - -1:00 EU EG%sT + -2:00 - -02 1980 Apr 6 2:00 + -2:00 C-Eur -02/-01 1981 Mar 29 + -1:00 EU -01/+00 Zone America/Godthab -3:26:56 - LMT 1916 Jul 28 # Nuuk - -3:00 - WGT 1980 Apr 6 2:00 - -3:00 EU WG%sT + -3:00 - -03 1980 Apr 6 2:00 + -3:00 EU -03/-02 Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik air base -4:00 Thule A%sT @@ -1107,7 +1215,7 @@ Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik air base # for their standard and summer times. He says no, they use "suveaeg" # (summer time) and "talveaeg" (winter time). -# From The Baltic Times (1999-09-09) +# From The Baltic Times (1999-09-09) # via Steffen Thorsen: # This year will mark the last time Estonia shifts to summer time, # a council of the ruling coalition announced Sept. 6.... @@ -1128,7 +1236,7 @@ Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik air base # From Urmet Jänes (2002-03-28): # The legislative reference is Government decree No. 84 on 2002-02-21. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Tallinn 1:39:00 - LMT 1880 1:39:00 - TMT 1918 Feb # Tallinn Mean Time 1:00 C-Eur CE%sT 1919 Jul @@ -1159,7 +1267,7 @@ Zone Europe/Tallinn 1:39:00 - LMT 1880 # This is documented in Heikki Oja: Aikakirja 2007, published by The Almanac # Office of University of Helsinki, ISBN 952-10-3221-9, available online (in # Finnish) at -# http://almanakka.helsinki.fi/aikakirja/Aikakirja2007kokonaan.pdf +# https://almanakka.helsinki.fi/aikakirja/Aikakirja2007kokonaan.pdf # # Page 105 (56 in PDF version) has a handy table of all past daylight savings # transitions. It is easy enough to interpret without Finnish skills. @@ -1172,7 +1280,7 @@ Zone Europe/Tallinn 1:39:00 - LMT 1880 # From Konstantin Hyppönen (2014-06-13): # [Heikki Oja's book Aikakirja 2013] -# http://almanakka.helsinki.fi/images/aikakirja/Aikakirja2013kokonaan.pdf +# https://almanakka.helsinki.fi/images/aikakirja/Aikakirja2013kokonaan.pdf # pages 104-105, including a scan from a newspaper published on Apr 2 1942 # say that ... [o]n Apr 2 1942, 24 o'clock (which means Apr 3 1942, # 00:00), clocks were moved one hour forward. The newspaper @@ -1191,7 +1299,7 @@ Rule Finland 1981 1982 - Sep lastSun 3:00 0 - # Milne says Helsinki (Helsingfors) time was 1:39:49.2 (official document); # round to nearest. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31 1:39:49 - HMT 1921 May # Helsinki Mean Time 2:00 Finland EE%sT 1983 @@ -1281,7 +1389,7 @@ Rule France 1976 only - Sep 26 1:00 0 - # but Howse quotes the actual French legislation as saying 0:09:21. # Go with Howse. Howse writes that the time in France was officially based # on PMT-0:09:21 until 1978-08-09, when the time base finally switched to UTC. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01 0:09:21 - PMT 1911 Mar 11 0:01 # Paris MT # Shanks & Pottenger give 1940 Jun 14 0:00; go with Excoffier and Le Corre. @@ -1298,11 +1406,11 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01 # From Markus Kuhn (1998-09-29): # The German time zone web site by the Physikalisch-Technische # Bundesanstalt contains DST information back to 1916. -# [See tz-link.htm for the URL.] +# [See tz-link.html for the URL.] # From Jörg Schilling (2002-10-23): # In 1945, Berlin was switched to Moscow Summer time (GMT+4) by -# http://www.dhm.de/lemo/html/biografien/BersarinNikolai/ +# https://www.dhm.de/lemo/html/biografien/BersarinNikolai/ # General [Nikolai] Bersarin. # From Paul Eggert (2003-03-08): @@ -1329,7 +1437,7 @@ Rule SovietZone 1945 only - May 24 2:00 2:00 M # Midsummer Rule SovietZone 1945 only - Sep 24 3:00 1:00 S Rule SovietZone 1945 only - Nov 18 2:00s 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Berlin 0:53:28 - LMT 1893 Apr 1:00 C-Eur CE%sT 1945 May 24 2:00 1:00 SovietZone CE%sT 1946 @@ -1357,7 +1465,7 @@ Link Europe/Zurich Europe/Busingen # is in Europe. Our reference location Tbilisi is in the Asian part. # Gibraltar -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Gibraltar -0:21:24 - LMT 1880 Aug 2 0:00s 0:00 GB-Eire %s 1957 Apr 14 2:00 1:00 - CET 1982 @@ -1388,14 +1496,14 @@ Rule Greece 1979 only - Apr 1 9:00 1:00 S Rule Greece 1979 only - Sep 29 2:00 0 - Rule Greece 1980 only - Apr 1 0:00 1:00 S Rule Greece 1980 only - Sep 28 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Athens 1:34:52 - LMT 1895 Sep 14 1:34:52 - AMT 1916 Jul 28 0:01 # Athens MT 2:00 Greece EE%sT 1941 Apr 30 1:00 Greece CE%sT 1944 Apr 4 2:00 Greece EE%sT 1981 # Shanks & Pottenger say it switched to C-Eur in 1981; - # go with EU instead, since Greece joined it on Jan 1. + # go with EU rules instead, since Greece joined Jan 1. 2:00 EU EE%sT # Hungary @@ -1425,7 +1533,7 @@ Rule Hungary 1956 only - Sep lastSun 0:00 0 - Rule Hungary 1957 only - Jun Sun>=1 1:00 1:00 S Rule Hungary 1957 only - Sep lastSun 3:00 0 - Rule Hungary 1980 only - Apr 6 1:00 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Budapest 1:16:20 - LMT 1890 Oct 1:00 C-Eur CE%sT 1918 1:00 Hungary CE%sT 1941 Apr 8 @@ -1467,28 +1575,28 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Oct # http://www.almanak.hi.is/klukkan.html # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Iceland 1917 1919 - Feb 19 23:00 1:00 S +Rule Iceland 1917 1919 - Feb 19 23:00 1:00 - Rule Iceland 1917 only - Oct 21 1:00 0 - Rule Iceland 1918 1919 - Nov 16 1:00 0 - -Rule Iceland 1921 only - Mar 19 23:00 1:00 S +Rule Iceland 1921 only - Mar 19 23:00 1:00 - Rule Iceland 1921 only - Jun 23 1:00 0 - -Rule Iceland 1939 only - Apr 29 23:00 1:00 S +Rule Iceland 1939 only - Apr 29 23:00 1:00 - Rule Iceland 1939 only - Oct 29 2:00 0 - -Rule Iceland 1940 only - Feb 25 2:00 1:00 S +Rule Iceland 1940 only - Feb 25 2:00 1:00 - Rule Iceland 1940 1941 - Nov Sun>=2 1:00s 0 - -Rule Iceland 1941 1942 - Mar Sun>=2 1:00s 1:00 S +Rule Iceland 1941 1942 - Mar Sun>=2 1:00s 1:00 - # 1943-1946 - first Sunday in March until first Sunday in winter -Rule Iceland 1943 1946 - Mar Sun>=1 1:00s 1:00 S +Rule Iceland 1943 1946 - Mar Sun>=1 1:00s 1:00 - Rule Iceland 1942 1948 - Oct Sun>=22 1:00s 0 - # 1947-1967 - first Sunday in April until first Sunday in winter -Rule Iceland 1947 1967 - Apr Sun>=1 1:00s 1:00 S +Rule Iceland 1947 1967 - Apr Sun>=1 1:00s 1:00 - # 1949 and 1967 Oct transitions delayed by 1 week Rule Iceland 1949 only - Oct 30 1:00s 0 - Rule Iceland 1950 1966 - Oct Sun>=22 1:00s 0 - Rule Iceland 1967 only - Oct 29 1:00s 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/Reykjavik -1:28 - LMT 1908 - -1:00 Iceland IS%sT 1968 Apr 7 1:00s + -1:00 Iceland -01/+00 1968 Apr 7 1:00s 0:00 - GMT # Italy @@ -1500,6 +1608,25 @@ Zone Atlantic/Reykjavik -1:28 - LMT 1908 # But these events all occurred before the 1970 cutoff, # so record only the time in Rome. # +# From Stephen Trainor (2019-05-06): +# http://www.ac-ilsestante.it/MERIDIANE/ora_legale/ORA_LEGALE_ESTIVA_IN_ITALIA.htm +# ... the [1866] law went into effect on 12 December 1866, rather than +# the date of the decree (22 Sep 1866) +# https://web.archive.org/web/20070824155341/http://www.iav.it/planetario/didastro/didastro/english.htm +# ... "In Italy in 1866 there were 6 railway times (Torino, Verona, Firenze, +# Roma, Napoli, Palermo). On that year it was decided to unify them, adopting +# the average time of Rome (even if this city was not yet part of the +# kingdom). On the 12th December 1866, on the starting of the winter time +# table, it took effect in the railways, the post office and the telegraph, +# not only for the internal service but also for the public.... Milano set +# the public watches on the Rome time on the same day (12th December 1866), +# Torino and Bologna on the 1st January 1867, Venezia the 1st May 1880 and the +# last city was Cagliari in 1886." +# +# From Luigi Rosa (2019-05-07): +# this is the scan of the decree: +# http://www.radiomarconi.com/marconi/filopanti/1866c.jpg +# # From Michael Deckers (2016-10-24): # http://www.ac-ilsestante.it/MERIDIANE/ora_legale quotes a law of 1893-08-10 # ... [translated as] "The preceding dispositions will enter into @@ -1510,6 +1637,7 @@ Zone Atlantic/Reykjavik -1:28 - LMT 1908 # The authoritative source for time in Italy is the national metrological # institute, which has a summary page of historical DST data at # http://www.inrim.it/res/tf/ora_legale_i.shtml +# [now at http://oldsite.inrim.it/res/tf/ora_legale_i.shtml as of 2017] # (2016-10-24): # http://www.renzobaldini.it/le-ore-legali-in-italia/ # has still different data for 1944. It divides Italy in two, as @@ -1524,10 +1652,17 @@ Zone Atlantic/Reykjavik -1:28 - LMT 1908 # advanced to sixty minutes later starting at hour two on 1944-04-02; ... # Starting at hour three on the date 1944-09-17 standard time will be resumed. # +# From Alois Triendl (2019-07-02): +# I spent 6 Euros to buy two archive copies of Il Messaggero, a Roman paper, +# for 1 and 2 April 1944. The edition of 2 April has this note: "Tonight at 2 +# am, put forward the clock by one hour. Remember that in the night between +# today and Monday the 'ora legale' will come in force again." That makes it +# clear that in Rome the change was on Monday, 3 April 1944 at 2 am. +# # From Paul Eggert (2016-10-27): # Go with INRiM for DST rules, except as corrected by Inglis for 1944 # for the Kingdom of Italy. This is consistent with Renzo Baldini. -# Model Rome's occupation by using using C-Eur rules from 1943-09-10 +# Model Rome's occupation by using C-Eur rules from 1943-09-10 # to 1944-06-04; although Rome was an open city during this period, it # was effectively controlled by Germany. # @@ -1573,8 +1708,8 @@ Rule Italy 1976 only - May 30 0:00s 1:00 S Rule Italy 1977 1979 - May Sun>=22 0:00s 1:00 S Rule Italy 1978 only - Oct 1 0:00s 0 - Rule Italy 1979 only - Sep 30 0:00s 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Europe/Rome 0:49:56 - LMT 1866 Sep 22 +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Europe/Rome 0:49:56 - LMT 1866 Dec 12 0:49:56 - RMT 1893 Oct 31 23:49:56 # Rome Mean 1:00 Italy CE%sT 1943 Sep 10 1:00 C-Eur CE%sT 1944 Jun 4 @@ -1649,7 +1784,7 @@ Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 - # Byalokoz 1919 says Latvia was 1:36:34. # Go with Byalokoz. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Riga 1:36:34 - LMT 1880 1:36:34 - RMT 1918 Apr 15 2:00 # Riga MT 1:36:34 1:00 LST 1918 Sep 16 3:00 # Latvian ST @@ -1671,15 +1806,10 @@ Zone Europe/Riga 1:36:34 - LMT 1880 # From Paul Eggert (2013-09-09): # Shanks & Pottenger say Vaduz is like Zurich. -# From Alois Treindl (2013-09-18): -# http://www.eliechtensteinensia.li/LIJ/1978/1938-1978/1941.pdf -# ... confirms on p. 6 that Liechtenstein followed Switzerland in 1941 and 1942. -# I ... translate only the last two paragraphs: -# ... during second world war, in the years 1941 and 1942, Liechtenstein -# introduced daylight saving time, adapting to Switzerland. From 1943 on -# central European time was in force throughout the year. -# From a report of the duke's government to the high council, -# regarding the introduction of a time law, of 31 May 1977. +# From Alois Treindl (2019-07-04): +# I was able to access the online archive of the Vaduz paper Vaterland ... +# I could confirm from the paper that Liechtenstein did in fact follow +# the same DST in 1941 and 1942 as Switzerland did. Link Europe/Zurich Europe/Vaduz @@ -1719,7 +1849,7 @@ Link Europe/Zurich Europe/Vaduz # http://www.lrvk.lt/nut/11/n1749.htm -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Vilnius 1:41:16 - LMT 1880 1:24:00 - WMT 1917 # Warsaw Mean Time 1:35:36 - KMT 1919 Oct 10 # Kaunas Mean Time @@ -1763,7 +1893,7 @@ Rule Lux 1926 only - Apr 17 23:00 1:00 S Rule Lux 1927 only - Apr 9 23:00 1:00 S Rule Lux 1928 only - Apr 14 23:00 1:00 S Rule Lux 1929 only - Apr 20 23:00 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Luxembourg 0:24:36 - LMT 1904 Jun 1:00 Lux CE%sT 1918 Nov 25 0:00 Lux WE%sT 1929 Oct 6 2:00s @@ -1772,7 +1902,7 @@ Zone Europe/Luxembourg 0:24:36 - LMT 1904 Jun 1:00 Belgium CE%sT 1977 1:00 EU CE%sT -# Macedonia +# North Macedonia # See Europe/Belgrade. # Malta @@ -1788,7 +1918,7 @@ Rule Malta 1974 only - Sep 16 0:00s 0 - Rule Malta 1975 1979 - Apr Sun>=15 2:00 1:00 S Rule Malta 1975 1980 - Sep Sun>=15 2:00 0 - Rule Malta 1980 only - Mar 31 2:00 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 0:00s # Valletta 1:00 Italy CE%sT 1973 Mar 31 1:00 Malta CE%sT 1981 @@ -1842,14 +1972,14 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 0:00s # Valletta # Following Moldova and neighboring Ukraine- Transnistria (Pridnestrovie)- # Tiraspol will go back to winter time on October 30, 2011. # News from Moldova (in russian): -# http://ru.publika.md/link_317061.html +# https://ru.publika.md/link_317061.html # From Roman Tudos (2015-07-02): # http://lex.justice.md/index.php?action=view&view=doc&lang=1&id=355077 # From Paul Eggert (2015-07-01): # The abovementioned official link to IGO1445-868/2014 states that # 2014-10-26's fallback transition occurred at 03:00 local time. Also, -# http://www.trm.md/en/social/la-30-martie-vom-trece-la-ora-de-vara +# https://www.trm.md/en/social/la-30-martie-vom-trece-la-ora-de-vara # says the 2014-03-30 spring-forward transition was at 02:00 local time. # Guess that since 1997 Moldova has switched one hour before the EU. @@ -1857,7 +1987,7 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 0:00s # Valletta Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S Rule Moldova 1997 max - Oct lastSun 3:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Chisinau 1:55:20 - LMT 1880 1:55 - CMT 1918 Feb 15 # Chisinau MT 1:44:24 - BMT 1931 Jul 24 # Bucharest MT @@ -1873,7 +2003,7 @@ Zone Europe/Chisinau 1:55:20 - LMT 1880 # Monaco # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's # more precise 0:09:21. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time 0:00 France WE%sT 1945 Sep 16 3:00 @@ -1921,7 +2051,7 @@ Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15 # Amsterdam mean time. # The data entries before 1945 are taken from -# http://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm +# https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Neth 1916 only - May 1 0:00 1:00 NST # Netherlands Summer Time @@ -1947,12 +2077,12 @@ Rule Neth 1938 1939 - May 15 2:00s 1:00 S Rule Neth 1945 only - Apr 2 2:00s 1:00 S Rule Neth 1945 only - Sep 16 2:00s 0 - # -# Amsterdam Mean Time was +00:19:32.13 exactly, but the .13 is omitted -# below because the current format requires GMTOFF to be an integer. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Amsterdam Mean Time was +00:19:32.13, but the .13 is omitted +# below because the current format requires STDOFF to be an integer. +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Amsterdam 0:19:32 - LMT 1835 0:19:32 Neth %s 1937 Jul 1 - 0:20 Neth NE%sT 1940 May 16 0:00 # Dutch Time + 0:20 Neth +0020/+0120 1940 May 16 0:00 1:00 C-Eur CE%sT 1945 Apr 2 2:00 1:00 Neth CE%sT 1977 1:00 EU CE%sT @@ -1968,7 +2098,7 @@ Rule Norway 1945 only - Oct 1 2:00s 0 - Rule Norway 1959 1964 - Mar Sun>=15 2:00s 1:00 S Rule Norway 1959 1965 - Sep Sun>=15 2:00s 0 - Rule Norway 1965 only - Apr 25 2:00s 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Oslo 0:43:00 - LMT 1895 Jan 1 1:00 Norway CE%sT 1940 Aug 10 23:00 1:00 C-Eur CE%sT 1945 Apr 2 2:00 @@ -2002,7 +2132,7 @@ Zone Europe/Oslo 0:43:00 - LMT 1895 Jan 1 # so it must have diverged from Oslo time during the war, as Oslo was # keeping Berlin time. # -# says that the meteorologists +# says that the meteorologists # burned down their station in 1940 and left the island, but returned in # 1941 with a small Norwegian garrison and continued operations despite # frequent air attacks from Germans. In 1943 the Americans established a @@ -2040,7 +2170,7 @@ Rule Poland 1945 only - Apr 29 0:00 1:00 S Rule Poland 1945 only - Nov 1 0:00 0 - # For 1946 on the source is Kazimierz Borkowski, # Toruń Center for Astronomy, Dept. of Radio Astronomy, Nicolaus Copernicus U., -# http://www.astro.uni.torun.pl/~kb/Artykuly/U-PA/Czas2.htm#tth_tAb1 +# https://www.astro.uni.torun.pl/~kb/Artykuly/U-PA/Czas2.htm#tth_tAb1 # Thanks to Przemysław Augustyniak (2005-05-28) for this reference. # He also gives these further references: # Mon Pol nr 13, poz 162 (1995) @@ -2059,7 +2189,7 @@ Rule Poland 1959 1961 - Oct Sun>=1 1:00s 0 - Rule Poland 1960 only - Apr 3 1:00s 1:00 S Rule Poland 1961 1964 - May lastSun 1:00s 1:00 S Rule Poland 1962 1964 - Sep lastSun 1:00s 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Warsaw 1:24:00 - LMT 1880 1:24:00 - WMT 1915 Aug 5 # Warsaw Mean Time 1:00 C-Eur CE%sT 1918 Sep 16 3:00 @@ -2071,15 +2201,19 @@ Zone Europe/Warsaw 1:24:00 - LMT 1880 1:00 EU CE%sT # Portugal -# + # From Paul Eggert (2014-08-11), after a heads-up from Stephen Colebourne: # According to a Portuguese decree (1911-05-26) -# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf +# https://dre.pt/application/dir/pdf1sdip/1911/05/12500/23132313.pdf # Lisbon was at -0:36:44.68, but switched to GMT on 1912-01-01 at 00:00. -# Round the old offset to -0:36:45. This agrees with Willett but disagrees -# with Shanks, who says the transition occurred on 1911-05-24 at 00:00 for -# Europe/Lisbon, Atlantic/Azores, and Atlantic/Madeira. +# Round the old offset to -0:36:45. This agrees with Willett.... # +# From Michael Deckers (2018-02-15): +# article 5 [of the 1911 decree; Deckers's translation] ...: +# These dispositions shall enter into force at the instant at which, +# according to the 2nd article, the civil day January 1, 1912 begins, +# all clocks therefore having to be advanced or set back correspondingly ... + # From Rui Pedro Salgueiro (1992-11-12): # Portugal has recently (September, 27) changed timezone # (from WET to MET or CET) to harmonize with EEC. @@ -2094,7 +2228,7 @@ Zone Europe/Warsaw 1:24:00 - LMT 1880 # IATA SSIM (1991/1992) reports that the Azores were at -1:00. # IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00. # Guess that the Azores changed to EU rules in 1992 (since that's when Portugal -# harmonized with the EU), and that they stayed +0:00 that winter. +# harmonized with EU rules), and that they stayed +0:00 that winter. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # DSH writes that despite Decree 1,469 (1915), the change to the clocks was not @@ -2160,25 +2294,43 @@ Rule Port 1980 only - Mar lastSun 0:00s 1:00 S Rule Port 1981 1982 - Mar lastSun 1:00s 1:00 S Rule Port 1983 only - Mar lastSun 2:00s 1:00 S # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Lisbon -0:36:45 - LMT 1884 - -0:36:45 - LMT 1912 Jan 1 # Lisbon Mean Time + -0:36:45 - LMT 1912 Jan 1 0:00u # Lisbon MT 0:00 Port WE%sT 1966 Apr 3 2:00 1:00 - CET 1976 Sep 26 1:00 0:00 Port WE%sT 1983 Sep 25 1:00s 0:00 W-Eur WE%sT 1992 Sep 27 1:00s 1:00 EU CE%sT 1996 Mar 31 1:00u 0:00 EU WE%sT +# This Zone can be simplified once we assume zic %z. Zone Atlantic/Azores -1:42:40 - LMT 1884 # Ponta Delgada - -1:54:32 - HMT 1912 Jan 1 # Horta Mean Time - -2:00 Port AZO%sT 1966 Apr 3 2:00 # Azores Time - -1:00 Port AZO%sT 1983 Sep 25 1:00s - -1:00 W-Eur AZO%sT 1992 Sep 27 1:00s + -1:54:32 - HMT 1912 Jan 1 2:00u # Horta MT + -2:00 Port -02/-01 1942 Apr 25 22:00s + -2:00 Port +00 1942 Aug 15 22:00s + -2:00 Port -02/-01 1943 Apr 17 22:00s + -2:00 Port +00 1943 Aug 28 22:00s + -2:00 Port -02/-01 1944 Apr 22 22:00s + -2:00 Port +00 1944 Aug 26 22:00s + -2:00 Port -02/-01 1945 Apr 21 22:00s + -2:00 Port +00 1945 Aug 25 22:00s + -2:00 Port -02/-01 1966 Apr 3 2:00 + -1:00 Port -01/+00 1983 Sep 25 1:00s + -1:00 W-Eur -01/+00 1992 Sep 27 1:00s 0:00 EU WE%sT 1993 Mar 28 1:00u - -1:00 EU AZO%sT + -1:00 EU -01/+00 +# This Zone can be simplified once we assume zic %z. Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal - -1:07:36 - FMT 1912 Jan 1 # Funchal Mean Time - -1:00 Port MAD%sT 1966 Apr 3 2:00 # Madeira Time + -1:07:36 - FMT 1912 Jan 1 1:00u # Funchal MT + -1:00 Port -01/+00 1942 Apr 25 22:00s + -1:00 Port +01 1942 Aug 15 22:00s + -1:00 Port -01/+00 1943 Apr 17 22:00s + -1:00 Port +01 1943 Aug 28 22:00s + -1:00 Port -01/+00 1944 Apr 22 22:00s + -1:00 Port +01 1944 Aug 26 22:00s + -1:00 Port -01/+00 1945 Apr 21 22:00s + -1:00 Port +01 1945 Aug 25 22:00s + -1:00 Port -01/+00 1966 Apr 3 2:00 0:00 Port WE%sT 1983 Sep 25 1:00s 0:00 EU WE%sT @@ -2201,7 +2353,7 @@ Rule Romania 1980 only - Apr 5 23:00 1:00 S Rule Romania 1980 only - Sep lastSun 1:00 0 - Rule Romania 1991 1993 - Mar lastSun 0:00s 1:00 S Rule Romania 1991 1993 - Sep lastSun 0:00s 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct 1:44:24 - BMT 1931 Jul 24 # Bucharest MT 2:00 Romania EE%sT 1981 Mar 29 2:00s @@ -2238,7 +2390,7 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct # 2011 No. 725" and contains no other dates or "effective date" information. # # Another source is -# http://www.rg.ru/2011/09/06/chas-zona-dok.html +# https://rg.ru/2011/09/06/chas-zona-dok.html # which, according to translate.google.com, begins "Resolution of the # Government of the Russian Federation on August 31, 2011 N 725" and also # contains "Date first official publication: September 6, 2011 Posted on: @@ -2246,7 +2398,7 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct # does not contain any "effective date" information. # # Another source is -# http://en.wikipedia.org/wiki/Oymyakonsky_District#cite_note-RuTime-7 +# https://en.wikipedia.org/wiki/Oymyakonsky_District#cite_note-RuTime-7 # which, in note 8, contains "Resolution No. 725 of August 31, 2011... # Effective as of after 7 days following the day of the official publication" # but which does not contain any reference to September 6, 2011. @@ -2282,7 +2434,7 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct # http://itar-tass.com/obschestvo/1333711 # http://www.pravo.gov.ru:8080/page.aspx?111660 # http://www.kremlin.ru/acts/46279 -# From October 26, 2014 the new Russian time zone map will looks like this: +# From October 26, 2014 the new Russian time zone map will look like this: # http://www.worldtimezone.com/dst_news/dst_news_russia-map-2014-07.html # From Paul Eggert (2006-03-22): @@ -2324,23 +2476,53 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct # administratively part of Sakhalin oblast', they appear to have # remained on UTC+11 along with Magadan. +# From Marat Nigametzianov (2018-07-16): +# this is link to order from 1956 about timezone in USSR +# http://astro.uni-altai.ru/~orion/blog/2011/11/novyie-granitsyi-chasovyih-poyasov-v-sssr/ +# +# From Paul Eggert (2018-07-16): +# Perhaps someone could translate the above-mentioned link and use it +# to correct our data for the ex-Soviet Union. It cites the following: +# «Поясное время и новые границы часовых поясов» / сост. П.Н. Долгов, +# отв. ред. Г.Д. Бурдун - М: Комитет стандартов, мер и измерительных +# приборов при Совете Министров СССР, Междуведомственная комиссия +# единой службы времени, 1956 г. +# This book looks like it would be a helpful resource for the Soviet +# Union through 1956. Although a copy was in the Scientific Library +# of Tomsk State University, I have not been able to track down a copy nearby. +# +# From Stepan Golosunov (2018-07-21): +# http://astro.uni-altai.ru/~orion/blog/2015/05/center-reforma-ischisleniya-vremeni-br-na-territorii-sssr-v-1957-godu-center/ +# says that the 1956 decision to change time belts' borders was not +# implemented as planned in 1956 and the change happened in 1957. +# There is also the problem that actual time zones were different from +# the official time belts (and from many time belts' maps) as there were +# numerous exceptions to application of time belt rules. For example, +# https://ru.wikipedia.org/wiki/Московское_время#Перемещение_границы_применения_московского_времени_на_восток +# says that by 1962 there were many regions in the 3rd time belt that +# were on Moscow time, referring to a 1962 map. By 1989 number of such +# exceptions grew considerably. + # From Tim Parenti (2014-07-06): # The comments detailing the coverage of each Russian zone are meant to assist # with maintenance only and represent our best guesses as to which regions # are covered by each zone. They are not meant to be taken as an authoritative # listing. The region codes listed come from -# http://en.wikipedia.org/w/?title=Federal_subjects_of_Russia&oldid=611810498 +# https://en.wikipedia.org/w/?title=Federal_subjects_of_Russia&oldid=611810498 # and are used for convenience only; no guarantees are made regarding their # future stability. ISO 3166-2:RU codes are also listed for first-level # divisions where available. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] - - # From Tim Parenti (2014-07-03): # Europe/Kaliningrad covers... # 39 RU-KGD Kaliningrad Oblast +# From Paul Eggert (2019-07-25): +# Although Shanks lists 1945-01-01 as the date for transition from +# +01/+02 to +02/+03, more likely this is a placeholder. Guess that +# the transition occurred at 1945-04-10 00:00, which is about when +# Königsberg surrendered to Soviet troops. (Thanks to Alois Triendl.) + # From Paul Eggert (2016-03-18): # The 1989 transition is from USSR act No. 227 (1989-03-14). @@ -2357,8 +2539,8 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct # Moscow on 1991-11-03, switched to Moscow-1 on 1992-01-19. Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr - 1:00 C-Eur CE%sT 1945 - 2:00 Poland CE%sT 1946 + 1:00 C-Eur CE%sT 1945 Apr 10 + 2:00 Poland EE%sT 1946 Apr 7 3:00 Russia MSK/MSD 1989 Mar 26 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s 3:00 - +03 2014 Oct 26 2:00s @@ -2494,7 +2676,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr # http://www.kaliningradka.ru/site_pc/cherez/index.php?ELEMENT_ID=40091 # says that Kaliningrad decided not to be an exception 2 days before the # 1991-03-31 switch and one person at -# http://izhevsk.ru/forum_light_message/50/682597-m8369040.html +# https://izhevsk.ru/forum_light_message/50/682597-m8369040.html # says he remembers that Samara opted out of the 1992-01-19 exception # 2 days before the switch. # @@ -2507,13 +2689,13 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr # From Vladimir Karpinsky (2014-07-08): # LMT in Moscow (before Jul 3, 1916) is 2:30:17, that was defined by Moscow -# Observatory (coordinates: 55 deg. 45'29.70", 37 deg. 34'05.30").... +# Observatory (coordinates: 55° 45' 29.70", 37° 34' 05.30").... # LMT in Moscow since Jul 3, 1916 is 2:31:01 as a result of new standard. # (The info is from the book by Byalokoz ... p. 18.) # The time in St. Petersburg as capital of Russia was defined by # Pulkov observatory, near St. Petersburg. In 1916 LMT Moscow # was synchronized with LMT St. Petersburg (+30 minutes), (Pulkov observatory -# coordinates: 59 deg. 46'18.70", 30 deg. 19'40.70") so 30 deg. 19'40.70" > +# coordinates: 59° 46' 18.70", 30° 19' 40.70") so 30° 19' 40.70" > # 2h01m18.7s = 2:01:19. LMT Moscow = LMT St.Petersburg + 30m 2:01:19 + 0:30 = # 2:31:19 ... # @@ -2536,10 +2718,8 @@ Zone Europe/Moscow 2:30:17 - LMT 1880 3:00 - MSK -# From Tim Parenti (2014-07-03): -# Europe/Simferopol covers... -# ** **** Crimea, Republic of -# ** **** Sevastopol +# From Paul Eggert (2016-12-06): +# Europe/Simferopol covers Crimea. Zone Europe/Simferopol 2:16:24 - LMT 1880 2:16 - SMT 1924 May 2 # Simferopol Mean T @@ -2568,7 +2748,7 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880 3:00 - MSK 1997 Mar lastSun 1:00u # From Alexander Krivenyshev (2014-03-17): # time change at 2:00 (2am) on March 30, 2014 -# http://vz.ru/news/2014/3/17/677464.html +# https://vz.ru/news/2014/3/17/677464.html # From Paul Eggert (2014-03-30): # Simferopol and Sevastopol reportedly changed their central town clocks # late the previous day, but this appears to have been ceremonial @@ -2606,6 +2786,15 @@ Zone Europe/Astrakhan 3:12:12 - LMT 1924 May # 34 RU-VGG Volgograd Oblast # The 1988 transition is from USSR act No. 5 (1988-01-04). +# From Alexander Fetisov (2018-09-20): +# Volgograd region in southern Russia (Europe/Volgograd) change +# timezone from UTC+3 to UTC+4 from 28oct2018. +# http://sozd.parliament.gov.ru/bill/452878-7 +# +# From Stepan Golosunov (2018-10-11): +# The law has been published today on +# http://publication.pravo.gov.ru/Document/View/0001201810110037 + Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 3:00 - +03 1930 Jun 21 4:00 - +04 1961 Nov 11 @@ -2614,7 +2803,8 @@ Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 4:00 - +04 1992 Mar 29 2:00s 3:00 Russia +03/+04 2011 Mar 27 2:00s 4:00 - +04 2014 Oct 26 2:00s - 3:00 - +03 + 3:00 - +03 2018 Oct 28 2:00s + 4:00 - +04 # From Paul Eggert (2016-11-11): # Europe/Saratov covers: @@ -2751,11 +2941,11 @@ Zone Asia/Omsk 4:53:30 - LMT 1919 Nov 14 # suggests that Altai Republic transitioned to Moscow+3 on # 1995-05-28. # -# http://regnum.ru/news/society/1957270.html +# https://regnum.ru/news/society/1957270.html # has some historical data for Altai Krai: -# before 1957: west part on UTC+6, east on UTC+7 -# after 1957: UTC+7 -# since 1995: UTC+6 +# before 1957: west part on UT+6, east on UT+7 +# after 1957: UT+7 +# since 1995: UT+6 # http://barnaul.rusplt.ru/index/pochemu_altajskij_kraj_okazalsja_v_neprivychnom_chasovom_pojase-17648.html # confirms that and provides more details including 1995-05-28 transition date. @@ -3125,8 +3315,8 @@ Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 # districts, but have very similar populations. In fact, Wikipedia currently # lists them both as having 3528 people, exactly 1668 males and 1860 females # each! (Yikes!) -# http://en.wikipedia.org/w/?title=Srednekolymsky_District&oldid=603435276 -# http://en.wikipedia.org/w/?title=Verkhnekolymsky_District&oldid=594378493 +# https://en.wikipedia.org/w/?title=Srednekolymsky_District&oldid=603435276 +# https://en.wikipedia.org/w/?title=Verkhnekolymsky_District&oldid=594378493 # Assume this is a mistake, albeit an amusing one. # # Looking at censuses, the populations of the two municipalities seem to have @@ -3208,7 +3398,7 @@ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 # See Europe/Rome. # Serbia -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Belgrade 1:22:00 - LMT 1884 1:00 - CET 1941 Apr 18 23:00 1:00 C-Eur CE%sT 1945 @@ -3222,7 +3412,7 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884 Link Europe/Belgrade Europe/Ljubljana # Slovenia Link Europe/Belgrade Europe/Podgorica # Montenegro Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina -Link Europe/Belgrade Europe/Skopje # Macedonia +Link Europe/Belgrade Europe/Skopje # North Macedonia Link Europe/Belgrade Europe/Zagreb # Croatia # Slovakia @@ -3232,47 +3422,79 @@ Link Europe/Prague Europe/Bratislava # See Europe/Belgrade. # Spain +# +# From Paul Eggert (2016-12-14): +# +# The source for Europe/Madrid before 2013 is: +# Planesas P. La hora oficial en España y sus cambios. +# Anuario del Observatorio Astronómico de Madrid (2013, in Spanish). +# http://astronomia.ign.es/rknowsys-theme/images/webAstro/paginas/documentos/Anuario/lahoraoficialenespana.pdf +# As this source says that historical time in the Canaries is obscure, +# and it does not discuss Ceuta, stick with Shanks for now for that data. +# +# In the 1918 and 1919 fallback transitions in Spain, the clock for +# the hour-longer day officially kept going after midnight, so that +# the repeated instances of that day's 00:00 hour were 24 hours apart, +# with a fallback transition from the second occurrence of 00:59... to +# the next day's 00:00. Our data format cannot represent this +# directly, and instead repeats the first hour of the next day, with a +# fallback transition from the next day's 00:59... to 00:00. + +# From Michael Deckers (2016-12-15): +# The Royal Decree of 1900-06-26 quoted by Planesas, online at +# https://www.boe.es/datos/pdfs/BOE//1900/209/A00383-00384.pdf +# says in its article 5 (my translation): +# These dispositions will enter into force beginning with the +# instant at which, according to the time indicated in article 1, +# the 1st day of January of 1901 will begin. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -# For 1917-1919 Whitman gives Apr Sat>=1 - Oct Sat>=1; -# go with Shanks & Pottenger. -Rule Spain 1917 only - May 5 23:00s 1:00 S -Rule Spain 1917 1919 - Oct 6 23:00s 0 - -Rule Spain 1918 only - Apr 15 23:00s 1:00 S -Rule Spain 1919 only - Apr 5 23:00s 1:00 S -# Whitman gives 1921 Feb 28 - Oct 14; go with Shanks & Pottenger. -Rule Spain 1924 only - Apr 16 23:00s 1:00 S -# Whitman gives 1924 Oct 14; go with Shanks & Pottenger. -Rule Spain 1924 only - Oct 4 23:00s 0 - -Rule Spain 1926 only - Apr 17 23:00s 1:00 S -# Whitman says no DST in 1929; go with Shanks & Pottenger. -Rule Spain 1926 1929 - Oct Sat>=1 23:00s 0 - -Rule Spain 1927 only - Apr 9 23:00s 1:00 S -Rule Spain 1928 only - Apr 14 23:00s 1:00 S -Rule Spain 1929 only - Apr 20 23:00s 1:00 S -# Whitman gives 1937 Jun 16, 1938 Apr 16, 1940 Apr 13; -# go with Shanks & Pottenger. -Rule Spain 1937 only - May 22 23:00s 1:00 S -Rule Spain 1937 1939 - Oct Sat>=1 23:00s 0 - -Rule Spain 1938 only - Mar 22 23:00s 1:00 S -Rule Spain 1939 only - Apr 15 23:00s 1:00 S -Rule Spain 1940 only - Mar 16 23:00s 1:00 S -# Whitman says no DST 1942-1945; go with Shanks & Pottenger. -Rule Spain 1942 only - May 2 22:00s 2:00 M # Midsummer -Rule Spain 1942 only - Sep 1 22:00s 1:00 S -Rule Spain 1943 1946 - Apr Sat>=13 22:00s 2:00 M -Rule Spain 1943 only - Oct 3 22:00s 1:00 S -Rule Spain 1944 only - Oct 10 22:00s 1:00 S -Rule Spain 1945 only - Sep 30 1:00 1:00 S -Rule Spain 1946 only - Sep 30 0:00 0 - +Rule Spain 1918 only - Apr 15 23:00 1:00 S +Rule Spain 1918 1919 - Oct 6 24:00s 0 - +Rule Spain 1919 only - Apr 6 23:00 1:00 S +Rule Spain 1924 only - Apr 16 23:00 1:00 S +Rule Spain 1924 only - Oct 4 24:00s 0 - +Rule Spain 1926 only - Apr 17 23:00 1:00 S +Rule Spain 1926 1929 - Oct Sat>=1 24:00s 0 - +Rule Spain 1927 only - Apr 9 23:00 1:00 S +Rule Spain 1928 only - Apr 15 0:00 1:00 S +Rule Spain 1929 only - Apr 20 23:00 1:00 S +# Republican Spain during the civil war; it controlled Madrid until 1939-03-28. +Rule Spain 1937 only - Jun 16 23:00 1:00 S +Rule Spain 1937 only - Oct 2 24:00s 0 - +Rule Spain 1938 only - Apr 2 23:00 1:00 S +Rule Spain 1938 only - Apr 30 23:00 2:00 M +Rule Spain 1938 only - Oct 2 24:00 1:00 S +# The following rules are for unified Spain again. +# +# Planesas does not say what happened in Madrid between its fall on +# 1939-03-28 and the Nationalist spring-forward transition on +# 1939-04-15. For lack of better info, assume Madrid's clocks did not +# change during that period. +# +# The first rule is commented out, as it is redundant for Republican Spain. +#Rule Spain 1939 only - Apr 15 23:00 1:00 S +Rule Spain 1939 only - Oct 7 24:00s 0 - +Rule Spain 1942 only - May 2 23:00 1:00 S +Rule Spain 1942 only - Sep 1 1:00 0 - +Rule Spain 1943 1946 - Apr Sat>=13 23:00 1:00 S +Rule Spain 1943 1944 - Oct Sun>=1 1:00 0 - +Rule Spain 1945 1946 - Sep lastSun 1:00 0 - Rule Spain 1949 only - Apr 30 23:00 1:00 S -Rule Spain 1949 only - Sep 30 1:00 0 - -Rule Spain 1974 1975 - Apr Sat>=13 23:00 1:00 S +Rule Spain 1949 only - Oct 2 1:00 0 - +Rule Spain 1974 1975 - Apr Sat>=12 23:00 1:00 S Rule Spain 1974 1975 - Oct Sun>=1 1:00 0 - Rule Spain 1976 only - Mar 27 23:00 1:00 S Rule Spain 1976 1977 - Sep lastSun 1:00 0 - -Rule Spain 1977 1978 - Apr 2 23:00 1:00 S -Rule Spain 1978 only - Oct 1 1:00 0 - -# The following rules are copied from Morocco from 1967 through 1978. +Rule Spain 1977 only - Apr 2 23:00 1:00 S +Rule Spain 1978 only - Apr 2 2:00s 1:00 S +Rule Spain 1978 only - Oct 1 2:00s 0 - +# Nationalist Spain during the civil war +#Rule NatSpain 1937 only - May 22 23:00 1:00 S +#Rule NatSpain 1937 1938 - Oct Sat>=1 24:00s 0 - +#Rule NatSpain 1938 only - Mar 26 23:00 1:00 S +# The following rules are copied from Morocco from 1967 through 1978, +# except with "S" letters. Rule SpainAfrica 1967 only - Jun 3 12:00 1:00 S Rule SpainAfrica 1967 only - Oct 1 0:00 0 - Rule SpainAfrica 1974 only - Jun 24 0:00 1:00 S @@ -3282,21 +3504,22 @@ Rule SpainAfrica 1976 only - Aug 1 0:00 0 - Rule SpainAfrica 1977 only - Sep 28 0:00 0 - Rule SpainAfrica 1978 only - Jun 1 0:00 1:00 S Rule SpainAfrica 1978 only - Aug 4 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Europe/Madrid -0:14:44 - LMT 1901 Jan 1 0:00s - 0:00 Spain WE%sT 1946 Sep 30 +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone Europe/Madrid -0:14:44 - LMT 1900 Dec 31 23:45:16 + 0:00 Spain WE%sT 1940 Mar 16 23:00 1:00 Spain CE%sT 1979 1:00 EU CE%sT -Zone Africa/Ceuta -0:21:16 - LMT 1901 +Zone Africa/Ceuta -0:21:16 - LMT 1900 Dec 31 23:38:44 0:00 - WET 1918 May 6 23:00 0:00 1:00 WEST 1918 Oct 7 23:00 0:00 - WET 1924 0:00 Spain WE%sT 1929 + 0:00 - WET 1967 # Help zishrink.awk. 0:00 SpainAfrica WE%sT 1984 Mar 16 1:00 - CET 1986 1:00 EU CE%sT Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. - -1:00 - CANT 1946 Sep 30 1:00 # Canaries T + -1:00 - -01 1946 Sep 30 1:00 0:00 - WET 1980 Apr 6 0:00s 0:00 1:00 WEST 1980 Sep 28 1:00u 0:00 EU WE%sT @@ -3313,7 +3536,7 @@ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. # three degrees, or twelve minutes of time, to the west of the # meridian of the Observatory of Stockholm". The law is dated 1878-05-31. # -# The observatory at that time had the meridian 18 degrees 03' 30" +# The observatory at that time had the meridian 18° 03' 30" # eastern longitude = 01:12:14 in time. Less 12 minutes gives the # national standard time as 01:00:14 ahead of GMT.... # @@ -3349,7 +3572,7 @@ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. # # Source: The newspaper "Dagens Nyheter", 1916-10-01, page 7 upper left. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Stockholm 1:12:12 - LMT 1879 Jan 1 1:00:14 - SET 1900 Jan 1 # Swedish Time 1:00 - CET 1916 May 14 23:00 @@ -3416,8 +3639,8 @@ Zone Europe/Stockholm 1:12:12 - LMT 1879 Jan 1 # # From Alois Treindl (2013-09-11): # The Federal regulations say -# http://www.admin.ch/opc/de/classified-compilation/20071096/index.html -# ... the meridian for Bern mean time ... is 7 degrees 26' 22.50". +# https://www.admin.ch/opc/de/classified-compilation/20071096/index.html +# ... the meridian for Bern mean time ... is 7° 26' 22.50". # Expressed in time, it is 0h29m45.5s. # From Pierre-Yves Berger (2013-09-11): @@ -3452,7 +3675,7 @@ Zone Europe/Stockholm 1:12:12 - LMT 1879 Jan 1 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. 0:29:46 - BMT 1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 @@ -3460,24 +3683,79 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. # Turkey +# From Alois Treindl (2019-08-12): +# http://www.astrolojidergisi.com/yazsaati.htm has researched the time zone +# history of Turkey, based on newspaper archives and official documents. +# From Paul Eggert (2019-08-28): +# That source (Oya Vulaş, "Türkiye'de Yaz Saati Uygulamaları") +# is used for 1940/1972, where it seems more reliable than our other +# sources. + +# From Kıvanç Yazan (2019-08-12): +# http://www.resmigazete.gov.tr/arsiv/14539.pdf#page=24 +# 1973-06-03 01:00 -> 02:00, 1973-11-04 02:00 -> 01:00 +# +# http://www.resmigazete.gov.tr/arsiv/14829.pdf#page=1 +# 1974-03-31 02:00 -> 03:00, 1974-11-03 02:00 -> 01:00 +# +# http://www.resmigazete.gov.tr/arsiv/15161.pdf#page=1 +# 1975-03-22 02:00 -> 03:00, 1975-11-02 02:00 -> 01:00 +# +# http://www.resmigazete.gov.tr/arsiv/15535_1.pdf#page=1 +# 1976-03-21 02:00 -> 03:00, 1976-10-31 02:00 -> 01:00 +# +# http://www.resmigazete.gov.tr/arsiv/15778.pdf#page=5 +# 1977-04-03 02:00 -> 03:00, 1977-10-16 02:00 -> 01:00, +# 1978-04-02 02:00 -> 03:00 (not applied, see below) +# 1978-10-15 02:00 -> 01:00 (not applied, see below) +# 1979-04-01 02:00 -> 03:00 (not applied, see below) +# 1979-10-14 02:00 -> 01:00 (not applied, see below) +# +# http://www.resmigazete.gov.tr/arsiv/16245.pdf#page=17 +# This cancels the previous decision, and repeats it only for 1978. +# 1978-04-02 02:00 -> 03:00, 1978-10-15 02:00 -> 01:00 +# (not applied due to standard TZ change below) +# +# http://www.resmigazete.gov.tr/arsiv/16331.pdf#page=3 +# This decision changes the default longitude for Turkish time zone from 30 +# degrees East to 45 degrees East. This means a standard TZ change, from +2 +# to +3. This is published & applied on 1978-06-29. At that time, Turkey was +# already on summer time (already on 45E). Hence, this new law just meant an +# "continuous summer time". Note that this was reversed in a few years. +# +# http://www.resmigazete.gov.tr/arsiv/18119_1.pdf#page=1 +# 1983-07-31 02:00 -> 03:00 (note that this jumps TZ to +4) +# 1983-10-02 02:00 -> 01:00 (back to +3) +# +# http://www.resmigazete.gov.tr/arsiv/18561.pdf (page 1 and 34) +# At this time, Turkey is still on +3 with no spring-forward on early +# 1984. This decision is published on 10/31/1984. Page 1 declares +# the decision of reverting the "default longitude change". So the +# standard time should go back to +3 (30E). And page 34 explains when +# that will happen: 1984-11-01 02:00 -> 01:00. You can think of this +# as "end of continuous summer time, change of standard time zone". +# +# http://www.resmigazete.gov.tr/arsiv/18713.pdf#page=1 +# 1985-04-20 01:00 -> 02:00, 1985-09-28 02:00 -> 01:00 + # From Kıvanç Yazan (2016-09-25): # 1) For 1986-2006, DST started at 01:00 local and ended at 02:00 local, with # no exceptions. # 2) 1994's lastSun was overridden with Mar 20 ... # Here are official papers: -# http://www.resmigazete.gov.tr/arsiv/19032.pdf - page 2 for 1986 -# http://www.resmigazete.gov.tr/arsiv/19400.pdf - page 4 for 1987 -# http://www.resmigazete.gov.tr/arsiv/19752.pdf - page 15 for 1988 -# http://www.resmigazete.gov.tr/arsiv/20102.pdf - page 6 for 1989 -# http://www.resmigazete.gov.tr/arsiv/20464.pdf - page 1 for 1990 - 1992 -# http://www.resmigazete.gov.tr/arsiv/21531.pdf - page 15 for 1993 - 1995 -# http://www.resmigazete.gov.tr/arsiv/21879.pdf - page 1 for overriding 1994 -# http://www.resmigazete.gov.tr/arsiv/22588.pdf - page 1 for 1996, 1997 -# http://www.resmigazete.gov.tr/arsiv/23286.pdf - page 10 for 1998 - 2000 +# http://www.resmigazete.gov.tr/arsiv/19032.pdf#page=2 for 1986 +# http://www.resmigazete.gov.tr/arsiv/19400.pdf#page=4 for 1987 +# http://www.resmigazete.gov.tr/arsiv/19752.pdf#page=15 for 1988 +# http://www.resmigazete.gov.tr/arsiv/20102.pdf#page=6 for 1989 +# http://www.resmigazete.gov.tr/arsiv/20464.pdf#page=1 for 1990 - 1992 +# http://www.resmigazete.gov.tr/arsiv/21531.pdf#page=15 for 1993 - 1995 +# http://www.resmigazete.gov.tr/arsiv/21879.pdf#page=1 for overriding 1994 +# http://www.resmigazete.gov.tr/arsiv/22588.pdf#page=1 for 1996, 1997 +# http://www.resmigazete.gov.tr/arsiv/23286.pdf#page=10 for 1998 - 2000 # http://www.resmigazete.gov.tr/eskiler/2001/03/20010324.htm#2 - for 2001 # http://www.resmigazete.gov.tr/eskiler/2002/03/20020316.htm#2 - for 2002-2006 # From Paul Eggert (2016-09-25): -# Prefer the above sources to Shanks & Pottenger for time stamps after 1985. +# Prefer the above sources to Shanks & Pottenger for timestamps after 1985. # From Steffen Thorsen (2007-03-09): # Starting 2007 though, it seems that they are adopting EU's 1:00 UTC @@ -3493,9 +3771,9 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. # According to the articles linked below, Turkey will change into summer # time zone (GMT+3) on March 28, 2011 at 3:00 a.m. instead of March 27. # This change is due to a nationwide exam on 27th. -# http://www.worldbulletin.net/?aType=haber&ArticleID=70872 +# https://www.worldbulletin.net/?aType=haber&ArticleID=70872 # Turkish: -# http://www.hurriyet.com.tr/ekonomi/17230464.asp?gid=373 +# https://www.hurriyet.com.tr/yaz-saati-uygulamasi-bir-gun-ileri-alindi-17230464 # From Faruk Pasin (2014-02-14): # The DST for Turkey has been changed for this year because of the @@ -3532,6 +3810,17 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. # The change is permanent, so this is the new standard time in Turkey. # It takes effect today, which is not much notice. +# From Kıvanç Yazan (2017-10-28): +# Turkey will go back to Daylight Saving Time starting 2018-10. +# http://www.resmigazete.gov.tr/eskiler/2017/10/20171028-5.pdf +# +# From Even Scharning (2017-11-08): +# ... today it was announced that the DST will become "continuous": +# http://www.hurriyet.com.tr/son-dakika-yaz-saati-uygulamasi-surekli-hale-geldi-40637482 +# From Paul Eggert (2017-11-08): +# Although Google Translate misfires on that source, it looks like +# Turkey reversed last month's decision, and so will stay at +03. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Turkey 1916 only - May 1 0:00 1:00 S Rule Turkey 1916 only - Oct 1 0:00 0 - @@ -3546,56 +3835,46 @@ Rule Turkey 1922 only - Oct 8 0:00 0 - Rule Turkey 1924 only - May 13 0:00 1:00 S Rule Turkey 1924 1925 - Oct 1 0:00 0 - Rule Turkey 1925 only - May 1 0:00 1:00 S -Rule Turkey 1940 only - Jun 30 0:00 1:00 S -Rule Turkey 1940 only - Oct 5 0:00 0 - +Rule Turkey 1940 only - Jul 1 0:00 1:00 S +Rule Turkey 1940 only - Oct 6 0:00 0 - Rule Turkey 1940 only - Dec 1 0:00 1:00 S Rule Turkey 1941 only - Sep 21 0:00 0 - Rule Turkey 1942 only - Apr 1 0:00 1:00 S -# Whitman omits the next two transition and gives 1945 Oct 1; -# go with Shanks & Pottenger. -Rule Turkey 1942 only - Nov 1 0:00 0 - -Rule Turkey 1945 only - Apr 2 0:00 1:00 S Rule Turkey 1945 only - Oct 8 0:00 0 - Rule Turkey 1946 only - Jun 1 0:00 1:00 S Rule Turkey 1946 only - Oct 1 0:00 0 - Rule Turkey 1947 1948 - Apr Sun>=16 0:00 1:00 S -Rule Turkey 1947 1950 - Oct Sun>=2 0:00 0 - +Rule Turkey 1947 1951 - Oct Sun>=2 0:00 0 - Rule Turkey 1949 only - Apr 10 0:00 1:00 S -Rule Turkey 1950 only - Apr 19 0:00 1:00 S +Rule Turkey 1950 only - Apr 16 0:00 1:00 S Rule Turkey 1951 only - Apr 22 0:00 1:00 S -Rule Turkey 1951 only - Oct 8 0:00 0 - +# DST for 15 months; unusual but we'll let it pass. Rule Turkey 1962 only - Jul 15 0:00 1:00 S -Rule Turkey 1962 only - Oct 8 0:00 0 - +Rule Turkey 1963 only - Oct 30 0:00 0 - Rule Turkey 1964 only - May 15 0:00 1:00 S Rule Turkey 1964 only - Oct 1 0:00 0 - -Rule Turkey 1970 1972 - May Sun>=2 0:00 1:00 S -Rule Turkey 1970 1972 - Oct Sun>=2 0:00 0 - Rule Turkey 1973 only - Jun 3 1:00 1:00 S -Rule Turkey 1973 only - Nov 4 3:00 0 - +Rule Turkey 1973 1976 - Oct Sun>=31 2:00 0 - Rule Turkey 1974 only - Mar 31 2:00 1:00 S -Rule Turkey 1974 only - Nov 3 5:00 0 - -Rule Turkey 1975 only - Mar 30 0:00 1:00 S -Rule Turkey 1975 1976 - Oct lastSun 0:00 0 - -Rule Turkey 1976 only - Jun 1 0:00 1:00 S -Rule Turkey 1977 1978 - Apr Sun>=1 0:00 1:00 S -Rule Turkey 1977 only - Oct 16 0:00 0 - -Rule Turkey 1979 1980 - Apr Sun>=1 3:00 1:00 S -Rule Turkey 1979 1982 - Oct Mon>=11 0:00 0 - -Rule Turkey 1981 1982 - Mar lastSun 3:00 1:00 S -Rule Turkey 1983 only - Jul 31 0:00 1:00 S -Rule Turkey 1983 only - Oct 2 0:00 0 - -Rule Turkey 1985 only - Apr 20 0:00 1:00 S -Rule Turkey 1985 only - Sep 28 0:00 0 - +Rule Turkey 1975 only - Mar 22 2:00 1:00 S +Rule Turkey 1976 only - Mar 21 2:00 1:00 S +Rule Turkey 1977 1978 - Apr Sun>=1 2:00 1:00 S +Rule Turkey 1977 1978 - Oct Sun>=15 2:00 0 - +Rule Turkey 1978 only - Jun 29 0:00 0 - +Rule Turkey 1983 only - Jul 31 2:00 1:00 S +Rule Turkey 1983 only - Oct 2 2:00 0 - +Rule Turkey 1985 only - Apr 20 1:00s 1:00 S +Rule Turkey 1985 only - Sep 28 1:00s 0 - Rule Turkey 1986 1993 - Mar lastSun 1:00s 1:00 S Rule Turkey 1986 1995 - Sep lastSun 1:00s 0 - Rule Turkey 1994 only - Mar 20 1:00s 1:00 S Rule Turkey 1995 2006 - Mar lastSun 1:00s 1:00 S Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Istanbul 1:55:52 - LMT 1880 1:56:56 - IMT 1910 Oct # Istanbul Mean Time? - 2:00 Turkey EE%sT 1978 Oct 15 - 3:00 Turkey +03/+04 1985 Apr 20 + 2:00 Turkey EE%sT 1978 Jun 29 + 3:00 Turkey +03/+04 1984 Nov 1 2:00 2:00 Turkey EE%sT 2007 2:00 EU EE%sT 2011 Mar 27 1:00u 2:00 - EET 2011 Mar 28 1:00u @@ -3631,7 +3910,7 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. # http://www.segodnya.ua/news/14290482.html # # Deputies cancelled the winter time (in Russian) -# http://www.pravda.com.ua/rus/news/2011/09/20/6600616/ +# https://www.pravda.com.ua/rus/news/2011/09/20/6600616/ # # From Philip Pizzey (2011-10-18): # Today my Ukrainian colleagues have informed me that the @@ -3676,10 +3955,21 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. # * Ukrainian Government's Resolution of 20.03.1992, No. 139. # http://www.uazakon.com/documents/date_8u/pg_grcasa.htm -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -# Most of Ukraine since 1970 has been like Kiev. -# "Kyiv" is the transliteration of the Ukrainian name, but -# "Kiev" is more common in English. +# From Paul Eggert (2018-10-03): +# As is usual in tzdb, Ukrainian zones use the most common English spellings. +# For example, tzdb uses Europe/Kiev, as "Kiev" is the most common spelling in +# English for Ukraine's capital, even though it is certainly wrong as a +# transliteration of the Ukrainian "Київ". This is similar to tzdb's use of +# Europe/Prague, which is certainly wrong as a transliteration of the Czech +# "Praha". ("Kiev" came from old Slavic via Russian to English, and "Prague" +# came from old Slavic via French to English, so the two cases have something +# in common.) Admittedly English-language spelling of Ukrainian names is +# controversial, and some day "Kyiv" may become substantially more popular in +# English; in the meantime, stick with the traditional English "Kiev" as that +# means less disruption for our users. + +# Zone NAME STDOFF RULES FORMAT [UNTIL] +# This represents most of Ukraine. See above for the spelling of "Kiev". Zone Europe/Kiev 2:02:04 - LMT 1880 2:02:04 - KMT 1924 May 2 # Kiev Mean Time 2:00 - EET 1930 Jun 21 @@ -3709,7 +3999,7 @@ Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct # spelling, except omit the apostrophe as it is not allowed in # portable Posix file names. Zone Europe/Zaporozhye 2:20:40 - LMT 1880 - 2:20 - CUT 1924 May 2 # Central Ukraine T + 2:20 - +0220 1924 May 2 2:00 - EET 1930 Jun 21 3:00 - MSK 1941 Aug 25 1:00 C-Eur CE%sT 1943 Oct 25 diff --git a/vendor/tzdata/factory b/vendor/tzdata/factory index 75fa4a1..9f5fc33 100644 --- a/vendor/tzdata/factory +++ b/vendor/tzdata/factory @@ -1,10 +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 put time zone specification in -# their installation procedures. Users that run 'date' will get the +# 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 GMTOFF RULES FORMAT +# Zone NAME STDOFF RULES FORMAT Zone Factory 0 - -00 diff --git a/vendor/tzdata/iso3166.tab b/vendor/tzdata/iso3166.tab index 0c79cab..a4ff61a 100644 --- a/vendor/tzdata/iso3166.tab +++ b/vendor/tzdata/iso3166.tab @@ -9,8 +9,8 @@ # 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 Newsletter VI-16 (2013-07-11). See: Updates on ISO 3166 -# http://www.iso.org/iso/home/standards/country_codes/updates_on_iso_3166.htm +# ISO 3166-1 N976 (2018-11-06). 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. @@ -166,7 +166,7 @@ ME Montenegro MF St Martin (French) MG Madagascar MH Marshall Islands -MK Macedonia +MK North Macedonia ML Mali MM Myanmar (Burma) MN Mongolia @@ -235,7 +235,7 @@ ST Sao Tome & Principe SV El Salvador SX St Maarten (Dutch) SY Syria -SZ Swaziland +SZ Eswatini (Swaziland) TC Turks & Caicos Is TD Chad TF French Southern & Antarctic Lands diff --git a/vendor/tzdata/leap-seconds.list b/vendor/tzdata/leap-seconds.list index 22fa785..a1bc5a7 100644 --- a/vendor/tzdata/leap-seconds.list +++ b/vendor/tzdata/leap-seconds.list @@ -61,7 +61,12 @@ # or # Terry Quinn, "The BIPM and the Accurate Measurement # of Time," Proc. of the IEEE, Vol. 79, pp. 894-905, -# July, 1991. +# July, 1991. +# reprinted in: +# Christine Hackman and Donald B Sullivan (eds.) +# Time and Frequency Measurement +# American Association of Physics Teachers (1996) +# , pp. 75-86 # # 4. The decision to insert a leap second into UTC is currently # the responsibility of the International Earth Rotation and @@ -199,10 +204,10 @@ # current -- the update time stamp, the data and the name of the file # will not change. # -# Updated through IERS Bulletin C52 -# File expires on: 28 June 2017 +# Updated through IERS Bulletin C58 +# File expires on: 28 June 2020 # -#@ 3707596800 +#@ 3802291200 # 2272060800 10 # 1 Jan 1972 2287785600 11 # 1 Jul 1972 @@ -247,4 +252,4 @@ # the hash line is also ignored in the # computation. # -#h dacf2c42 2c4765d6 3c797af8 2cf630eb 699c8c67 +#h f28827d2 f263b6c3 ec0f19eb a3e0dbf0 97f3fa30 diff --git a/vendor/tzdata/leapseconds b/vendor/tzdata/leapseconds index b4411f9..7808df8 100644 --- a/vendor/tzdata/leapseconds +++ b/vendor/tzdata/leapseconds @@ -3,33 +3,39 @@ # This file is in the public domain. # This file is generated automatically from the data in the public-domain -# leap-seconds.list file available from most NIST time servers. -# If the URL does not work, -# you should be able to pick up leap-seconds.list from a secondary NIST server. -# See for a list of secondary servers. +# NIST format leap-seconds.list file, which can be copied from +# +# or . # For more about leap-seconds.list, please see # The NTP Timescale and Leap Seconds -# http://www.eecis.udel.edu/~mills/leap.html +# . -# The International Earth Rotation and Reference Systems Service +# 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) +# . +# The International Earth Rotation and Reference Systems Service (IERS) # periodically uses leap seconds to keep UTC to within 0.9 s of UT1 -# (which measures the true angular orientation of the earth in space); see -# Terry J Quinn, The BIPM and the accurate measure of time, -# Proc IEEE 79, 7 (July 1991), 894-905 . -# There were no leap seconds before 1972, because the official mechanism -# accounting for the discrepancy between atomic time and the earth's rotation -# did not exist until the early 1970s. +# (a proxy for Earth's angle in space as measured by astronomers) +# and publishes leap second data in a copyrighted file +# . +# 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 +# . -# The correction (+ or -) is made at the given time, so lines -# will typically look like: -# Leap YEAR MON DAY 23:59:60 + R/S -# or -# Leap YEAR MON DAY 23:59:59 - R/S +# 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. -# If the leapsecond is Rolling (R) the given time is local time. -# If the leapsecond is Stationary (S) the given time is UTC. - -# Leap YEAR MONTH DAY HH:MM:SS CORR R/S +# 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 @@ -58,5 +64,9 @@ Leap 2012 Jun 30 23:59:60 + S Leap 2015 Jun 30 23:59:60 + S Leap 2016 Dec 31 23:59:60 + S -# Updated through IERS Bulletin C52 -# File expires on: 28 June 2017 +# POSIX timestamps for the data in this file: +#updated 1467936000 (2016-07-08 00:00:00 UTC) +#expires 1593302400 (2020-06-28 00:00:00 UTC) + +# Updated through IERS Bulletin C58 +# File expires on: 28 June 2020 diff --git a/vendor/tzdata/leapseconds.awk b/vendor/tzdata/leapseconds.awk old mode 100644 new mode 100755 index 21fe540..1fe5012 --- a/vendor/tzdata/leapseconds.awk +++ b/vendor/tzdata/leapseconds.awk @@ -1,76 +1,223 @@ -# Generate the 'leapseconds' file from 'leap-seconds.list'. +# 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 "# leap-seconds.list file available from most NIST time servers." - print "# If the URL does not work," - print "# you should be able to pick up leap-seconds.list from a secondary NIST server." - print "# See for a list of secondary servers." + print "# NIST format leap-seconds.list file, which can be copied from" + print "# " + print "# or ." print "# For more about leap-seconds.list, please see" print "# The NTP Timescale and Leap Seconds" - print "# http://www.eecis.udel.edu/~mills/leap.html" + print "# ." print "" - print "# The International Earth Rotation and Reference Systems Service" + 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 "# ." + 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 "# (which measures the true angular orientation of the earth in space); see" - print "# Terry J Quinn, The BIPM and the accurate measure of time," - print "# Proc IEEE 79, 7 (July 1991), 894-905 ." - print "# There were no leap seconds before 1972, because the official mechanism" - print "# accounting for the discrepancy between atomic time and the earth's rotation" - print "# did not exist until the early 1970s." - print "" - print "# The correction (+ or -) is made at the given time, so lines" - print "# will typically look like:" - print "# Leap YEAR MON DAY 23:59:60 + R/S" - print "# or" - print "# Leap YEAR MON DAY 23:59:59 - R/S" + print "# (a proxy for Earth's angle in space as measured by astronomers)" + print "# and publishes leap second data in a copyrighted file" + print "# ." + 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 "# ." print "" - print "# If the leapsecond is Rolling (R) the given time is local time." - print "# If the leapsecond is Stationary (S) the given time is UTC." + 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 "# Leap YEAR MONTH DAY HH:MM:SS CORR R/S" -} + 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" -/^ *$/ { next } + 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" + + # Strip trailing CR, in case the input has CRLF form a la NIST. + RS = "\r?\n" + + sstamp_init() +} -/^#\tUpdated through/ || /^#\tFile expires on:/ { +/^#[ \t]*[Uu]pdated through/ || /^#[ \t]*[Ff]ile expires on/ { last_lines = last_lines $0 "\n" } -/^#/ { next } +/^#[$][ \t]/ { updated = $2 } +/^#[@][ \t]/ { expires = $2 } + +/^[ \t]*#/ { next } { NTP_timestamp = $1 TAI_minus_UTC = $2 - hash_mark = $3 - one = $4 - month = $5 - year = $6 if (old_TAI_minus_UTC) { if (old_TAI_minus_UTC < TAI_minus_UTC) { sign = "23:59:60\t+" } else { sign = "23:59:59\t-" } - if (month == "Jan") { - year--; - month = "Dec"; - day = 31 - } else if (month == "Jul") { - month = "Jun"; - day = 30 - } - printf "Leap\t%s\t%s\t%s\t%s\tS\n", year, month, day, sign + 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 { + # 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:" + 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 + 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 + 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 +} diff --git a/vendor/tzdata/northamerica b/vendor/tzdata/northamerica index e1ed9e4..8771d96 100644 --- a/vendor/tzdata/northamerica +++ b/vendor/tzdata/northamerica @@ -1,3 +1,5 @@ +# tzdb data for North and Central America and environs + # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -25,7 +27,7 @@ # in New York City (1869-10). His 1870 proposal was based on Washington, DC, # but in 1872-05 he moved the proposed origin to Greenwich. -# From Paul Eggert (2016-09-21): +# From Paul Eggert (2018-03-20): # Dowd's proposal left many details unresolved, such as where to draw # lines between time zones. The key individual who made time zones # work in the US was William Frederick Allen - railway engineer, @@ -36,10 +38,9 @@ # to the General Time Convention on 1883-04-11, saying that his plan # meant "local time would be practically abolished" - a plus for # railway scheduling. By the next convention on 1883-10-11 nearly all -# railroads had agreed and it took effect on 1883-11-18 at 12:00. -# That Sunday was called the "day of two noons", as the eastern parts -# of the new zones observed noon twice. Allen witnessed the -# transition in New York City, writing: +# railroads had agreed and it took effect on 1883-11-18. That Sunday +# was called the "day of two noons", as some locations observed noon +# twice. Allen witnessed the transition in New York City, writing: # # I heard the bells of St. Paul's strike on the old time. Four # minutes later, obedient to the electrical signal from the Naval @@ -49,7 +50,7 @@ # # Most of the US soon followed suit. See: # Bartky IR. The adoption of standard time. Technol Cult 1989 Jan;30(1):25-56. -# http://dx.doi.org/10.2307/3105430 +# https://dx.doi.org/10.2307/3105430 # From Paul Eggert (2005-04-16): # That 1883 transition occurred at 12:00 new time, not at 12:00 old time. @@ -92,10 +93,33 @@ # was the first nationwide legal time standard, and apparently # time was just called "Standard Time" or "Daylight Saving Time". -# From Arthur David Olson: -# US Daylight Saving Time ended on the last Sunday of *October* in 1974. -# See, for example, the front page of the Saturday, 1974-10-26 -# and Sunday, 1974-10-27 editions of the Washington Post. +# From Paul Eggert (2019-06-04): +# Here is the legal basis for the US federal rules. +# * Public Law 65-106 (1918-03-19) implemented standard and daylight saving +# time for the first time across the US, springing forward on March's last +# Sunday and falling back on October's last Sunday. +# https://www.loc.gov/law/help/statutes-at-large/65th-congress/session-2/c65s2ch24.pdf +# * Public Law 66-40 (1919-08-20) repealed DST on October 1919's last Sunday. +# https://www.loc.gov/law/help/statutes-at-large/66th-congress/session-1/c66s1ch51.pdf +# * Public Law 77-403 (1942-01-20) started wartime DST on 1942-02-09. +# https://www.loc.gov/law/help/statutes-at-large/77th-congress/session-2/c77s2ch7.pdf +# * Public Law 79-187 (1945-09-25) ended wartime DST on 1945-09-30. +# https://www.loc.gov/law/help/statutes-at-large/79th-congress/session-1/c79s1ch388.pdf +# * Public Law 89-387 (1966-04-13) reinstituted a national standard for DST, +# from April's last Sunday to October's last Sunday, effective 1967. +# https://www.govinfo.gov/content/pkg/STATUTE-80/pdf/STATUTE-80-Pg107.pdf +# * Public Law 93-182 (1973-12-15) moved the 1974 spring-forward to 01-06. +# https://www.govinfo.gov/content/pkg/STATUTE-87/pdf/STATUTE-87-Pg707.pdf +# * Public Law 93-434 (1974-10-05) moved the 1975 spring-forward to +# February's last Sunday. +# https://www.govinfo.gov/content/pkg/STATUTE-88/pdf/STATUTE-88-Pg1209.pdf +# * Public Law 99-359 (1986-07-08) moved the spring-forward to April's first +# Sunday. +# https://www.govinfo.gov/content/pkg/STATUTE-100/pdf/STATUTE-100-Pg764.pdf +# * Public Law 109-58 (2005-08-08), effective 2007, moved the spring-forward +# to March's second Sunday and the fall-back to November's first Sunday. +# https://www.govinfo.gov/content/pkg/PLAW-109publ58/pdf/PLAW-109publ58.pdf +# All transitions are at 02:00 local time. # From Arthur David Olson: # Before the Uniform Time Act of 1966 took effect in 1967, observance of @@ -105,10 +129,13 @@ # Last night I heard part of a rebroadcast of a 1945 Arch Oboler radio drama. # In the introduction, Oboler spoke of "Eastern Peace Time." # An AltaVista search turned up: -# http://rowayton.org/rhs/hstaug45.html +# https://web.archive.org/web/20000926032210/http://rowayton.org/rhs/hstaug45.html # "When the time is announced over the radio now, it is 'Eastern Peace # Time' instead of the old familiar 'Eastern War Time.' Peace is wonderful." # (August 1945) by way of confirmation. +# +# From Paul Eggert (2017-09-23): +# This was the V-J Day issue of the Clamdigger, a Rowayton, CT newsletter. # From Joseph Gallant citing # George H. Douglas, _The Early Days of Radio Broadcasting_ (1987): @@ -148,11 +175,11 @@ Rule US 1918 1919 - Mar lastSun 2:00 1:00 D Rule US 1918 1919 - Oct lastSun 2:00 0 S Rule US 1942 only - Feb 9 2:00 1:00 W # War Rule US 1945 only - Aug 14 23:00u 1:00 P # Peace -Rule US 1945 only - Sep lastSun 2:00 0 S +Rule US 1945 only - Sep 30 2:00 0 S Rule US 1967 2006 - Oct lastSun 2:00 0 S Rule US 1967 1973 - Apr lastSun 2:00 1:00 D Rule US 1974 only - Jan 6 2:00 1:00 D -Rule US 1975 only - Feb 23 2:00 1:00 D +Rule US 1975 only - Feb lastSun 2:00 1:00 D Rule US 1976 1986 - Apr lastSun 2:00 1:00 D Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D Rule US 2007 max - Mar Sun>=8 2:00 1:00 D @@ -169,7 +196,7 @@ Rule US 2007 max - Nov Sun>=1 2:00 0 S # increase the chances that they'll actually get compiled and to # avoid the need to duplicate the US rules in another file. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone EST -5:00 - EST Zone MST -7:00 - MST Zone HST -10:00 - HST @@ -178,22 +205,6 @@ Zone CST6CDT -6:00 US C%sT Zone MST7MDT -7:00 US M%sT Zone PST8PDT -8:00 US P%sT -# From Bob Devine (1988-01-28): -# ...Alaska (and Hawaii) had the timezone names changed in 1967. -# old new -# Pacific Standard Time(PST) -same- -# Yukon Standard Time(YST) -same- -# Central Alaska S.T. (CAT) Alaska-Hawaii St[an]dard Time (AHST) -# Nome Standard Time (NT) Bering Standard Time (BST) -# -# ...Alaska's timezone lines were redrawn in 1983 to give only 2 tz. -# The YST zone now covers nearly all of the state, AHST just part -# of the Aleutian islands. No DST. - -# From Paul Eggert (1995-12-19): -# The tables below use 'NST', not 'NT', for Nome Standard Time. -# I invented 'CAWT' for Central Alaska War Time. - # From U. S. Naval Observatory (1989-01-19): # USA EASTERN 5 H BEHIND UTC NEW YORK, WASHINGTON # USA EASTERN 4 H BEHIND UTC APR 3 - OCT 30 @@ -250,6 +261,21 @@ Zone PST8PDT -8:00 US P%sT # Samoa standard time # The law doesn't give abbreviations. # +# From Paul Eggert (2016-12-19): +# Here are URLs for the 1918 and 1966 legislation: +# http://uscode.house.gov/statviewer.htm?volume=40&page=451 +# http://uscode.house.gov/statviewer.htm?volume=80&page=108 +# Although the 1918 names were officially "United States Standard +# Eastern Time" and similarly for "Central", "Mountain", "Pacific", +# and "Alaska", in practice "Standard" was placed just before "Time", +# as codified in 1966. In practice, Alaska time was abbreviated "AST" +# before 1968. Summarizing the 1967 name changes: +# 1918 names 1967 names +# -08 Standard Pacific Time (PST) Pacific standard time (PST) +# -09 (unofficial) Yukon (YST) Yukon standard time (YST) +# -10 Standard Alaska Time (AST) Alaska-Hawaii standard time (AHST) +# -11 (unofficial) Nome (NST) Bering standard time (BST) +# # From Paul Eggert (2000-01-08), following a heads-up from Rives McDow: # Public law 106-564 (2000-12-23) introduced ... "Chamorro Standard Time" # for time in Guam and the Northern Marianas. See the file "australasia". @@ -258,7 +284,7 @@ Zone PST8PDT -8:00 US P%sT # HST and HDT are standardized abbreviations for Hawaii-Aleutian # standard and daylight times. See section 9.47 (p 234) of the # U.S. Government Printing Office Style Manual (2008) -# http://www.gpo.gov/fdsys/pkg/GPO-STYLEMANUAL-2008/pdf/GPO-STYLEMANUAL-2008.pdf +# https://www.gpo.gov/fdsys/pkg/GPO-STYLEMANUAL-2008/pdf/GPO-STYLEMANUAL-2008.pdf # From Arthur David Olson, 2005-08-09 # The following was signed into law on 2005-08-08. @@ -305,6 +331,15 @@ Zone PST8PDT -8:00 US P%sT # Roberts, city administrator in Phenix City. as saying "We are in the Central # time zone, but we do go by the Eastern time zone because so many people work # in Columbus." +# +# From Paul Eggert (2017-02-22): +# Four cities are involved. The two not mentioned above are Smiths Station +# and Valley. Barbara Brooks, Valley's assistant treasurer, heard it started +# because West Point Pepperell textile mills were in Alabama while the +# corporate office was in Georgia, and residents voted to keep Eastern +# time even after the mills closed. See: Kazek K. Did you know which +# Alabama towns are in a different time zone? al.com 2017-02-06. +# http://www.al.com/living/index.ssf/2017/02/do_you_know_which_alabama_town.html # From Paul Eggert (2014-09-06): # Monthly Notices of the Royal Astronomical Society 44, 4 (1884-02-08), 208 @@ -318,7 +353,7 @@ Rule NYC 1920 only - Oct lastSun 2:00 0 S Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D Rule NYC 1921 1954 - Sep lastSun 2:00 0 S Rule NYC 1955 1966 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58 -5:00 US E%sT 1920 -5:00 NYC E%sT 1942 @@ -337,8 +372,20 @@ Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58 # Nebraska, eastern North Dakota, Oklahoma, eastern South Dakota, # western Tennessee, most of Texas, Wisconsin +# From Paul Eggert (2018-01-07): +# In 1869 the Chicago Astronomical Society contracted with the city to keep +# time. Though delayed by the Great Fire, by 1880 a wire ran from the +# Dearborn Observatory (on the University of Chicago campus) to City Hall, +# which then sent signals to police and fire stations. However, railroads got +# their time signals from the Allegheny Observatory, the Madison Observatory, +# the Ann Arbor Observatory, etc., so their clocks did not agree with each +# other or with the city's official time. The confusion took some years to +# clear up. See: +# Moser M. How Chicago gave America its time zones. Chicago. 2018-01-04. +# http://www.chicagomag.com/city-life/January-2018/How-Chicago-Gave-America-Its-Time-Zones/ + # From Larry M. Smith (2006-04-26) re Wisconsin: -# http://www.legis.state.wi.us/statutes/Stat0175.pdf ... +# https://docs.legis.wisconsin.gov/statutes/statutes/175.pdf # is currently enforced at the 01:00 time of change. Because the local # "bar time" in the state corresponds to 02:00, a number of citations # are issued for the "sale of class 'B' alcohol after prohibited @@ -347,7 +394,7 @@ Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58 # From Douglas R. Bomberg (2007-03-12): # Wisconsin has enacted (nearly eleventh-hour) legislation to get WI # Statue 175 closer in synch with the US Congress' intent.... -# http://www.legis.state.wi.us/2007/data/acts/07Act3.pdf +# https://docs.legis.wisconsin.gov/2007/related/acts/3 # From an email administrator of the City of Fort Pierre, SD (2015-12-21): # Fort Pierre is technically located in the Mountain time zone as is @@ -359,6 +406,31 @@ Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58 # From Paul Eggert (2015-12-25): # Assume this practice predates 1970, so Fort Pierre can use America/Chicago. +# From Paul Eggert (2015-04-06): +# In 1950s Nashville a public clock had dueling faces, one for conservatives +# and the other for liberals; the two sides didn't agree about the time of day. +# I haven't found a photo of this clock, nor have I tracked down the TIME +# magazine report cited below, but here's the story as told by the late +# American journalist John Seigenthaler, who was there: +# +# "The two [newspaper] owners held strongly contrasting political and +# ideological views. Evans was a New South liberal, Stahlman an Old South +# conservative, and their two papers frequently clashed editorially, often on +# the same day.... In the 1950s as the state legislature was grappling with +# the question of whether to approve daylight saving time for the entire state, +# TIME magazine reported: +# +# "'The Nashville Banner and The Nashville Tennessean rarely agree on anything +# but the time of day - and last week they couldn't agree on that.' +# +# "It was all too true. The clock on the front of the building had two faces - +# The Tennessean side of the building facing west, the other, east. When it +# was high noon Banner time, it was 11 a.m. Tennessean time." +# +# Seigenthaler J. For 100 years, Tennessean had it covered. +# The Tennessean 2007-05-11, republished 2015-04-06. +# https://www.tennessean.com/story/insider/extras/2015/04/06/archives-seigenthaler-for-100-years-the-tennessean-had-it-covered/25348545/ + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER Rule Chicago 1920 only - Jun 13 2:00 1:00 D Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S @@ -366,7 +438,7 @@ Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24 -6:00 US C%sT 1920 -6:00 Chicago C%sT 1936 Mar 1 2:00 @@ -394,15 +466,14 @@ Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21 # ...it appears that Mercer County, North Dakota, changed from the # mountain time zone to the central time zone at the last transition from # daylight-saving to standard time (on Nov. 7, 2010): -# http://www.gpo.gov/fdsys/pkg/FR-2010-09-29/html/2010-24376.htm +# https://www.gpo.gov/fdsys/pkg/FR-2010-09-29/html/2010-24376.htm # http://www.bismarcktribune.com/news/local/article_1eb1b588-c758-11df-b472-001cc4c03286.html # From Andy Lipscomb (2011-01-24): # ...according to the Census Bureau, the largest city is Beulah (although # it's commonly referred to as Beulah-Hazen, with Hazen being the next # largest city in Mercer County). Google Maps places Beulah's city hall -# at 47 degrees 15' 51" N, 101 degrees 46' 40" W, which yields an offset -# of 6h47'07". +# at 47° 15' 51" N, 101° 46' 40" W, which yields an offset of 6h47'07". Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53 -7:00 US M%sT 2010 Nov 7 2:00 @@ -416,13 +487,26 @@ Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53 # western South Dakota, far western Texas (El Paso County, Hudspeth County, # and Pine Springs and Nickel Creek in Culberson County), Utah, Wyoming # +# From Paul Eggert (2018-10-25): +# On 1921-03-04 federal law placed all of Texas into the central time zone. +# However, El Paso ignored the law for decades and continued to observe +# mountain time, on the grounds that that's what they had always done +# and they weren't about to let the federal government tell them what to do. +# Eventually the federal government gave in and changed the law on +# 1970-04-10 to match what El Paso was actually doing. Although +# that's slightly after our 1970 cutoff, there is no need to create a +# separate zone for El Paso since they were ignoring the law anyway. See: +# Long T. El Pasoans were time rebels, fought to stay in Mountain zone. +# El Paso Times. 2018-10-24 06:40 -06. +# https://www.elpasotimes.com/story/news/local/el-paso/2018/10/24/el-pasoans-were-time-rebels-fought-stay-mountain-zone/1744509002/ +# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER Rule Denver 1920 1921 - Mar lastSun 2:00 1:00 D Rule Denver 1920 only - Oct lastSun 2:00 0 S Rule Denver 1921 only - May 22 2:00 0 S Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D Rule Denver 1965 1966 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04 -7:00 US M%sT 1920 -7:00 Denver M%sT 1942 @@ -435,7 +519,7 @@ Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04 # California, northern Idaho (Benewah, Bonner, Boundary, Clearwater, # Kootenai, Latah, Lewis, Nez Perce, and Shoshone counties, Idaho county # north of the Salmon River, and the towns of Burgdorf and Warren), -# Nevada (except West Wendover), Oregon (except the northern 3/4 of +# Nevada (except West Wendover), Oregon (except the northern ¾ of # Malheur county), and Washington # From Paul Eggert (2016-08-20): @@ -445,7 +529,7 @@ Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04 # legal time, and is not part of the data here.) See: # Ross SA. An energy crisis from the past: Northern California in 1948. # Working Paper No. 8, Institute of Governmental Studies, UC Berkeley, -# 1973-11. http://escholarship.org/uc/item/8x22k30c +# 1973-11. https://escholarship.org/uc/item/8x22k30c # # In another measure to save electricity, DST was instituted from 1948-03-14 # at 02:01 to 1949-01-16 at 02:00, with the governor having the option to move @@ -466,8 +550,8 @@ Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04 # which established DST from April's last Sunday at 01:00 until September's # last Sunday at 02:00. This was amended by 1962's Proposition 6, which changed # the fall-back date to October's last Sunday. See: -# http://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&context=ca_ballot_props -# http://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&context=ca_ballot_props +# https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1501&context=ca_ballot_props +# https://repository.uchastings.edu/cgi/viewcontent.cgi?article=1636&context=ca_ballot_props # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER Rule CA 1948 only - Mar 14 2:01 1:00 D @@ -475,29 +559,40 @@ Rule CA 1949 only - Jan 1 2:00 0 S Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D Rule CA 1950 1961 - Sep lastSun 2:00 0 S Rule CA 1962 1966 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02 -8:00 US P%sT 1946 -8:00 CA P%sT 1967 -8:00 US P%sT # Alaska -# AK%sT is the modern abbreviation for -9:00 per USNO. +# AK%sT is the modern abbreviation for -09 per USNO. # -# From Paul Eggert (2001-05-30): +# From Paul Eggert (2017-06-15): # Howse writes that Alaska switched from the Julian to the Gregorian calendar, # and from east-of-GMT to west-of-GMT days, when the US bought it from Russia. -# This was on 1867-10-18, a Friday; the previous day was 1867-10-06 Julian, -# also a Friday. Include only the time zone part of this transition, -# ignoring the switch from Julian to Gregorian, since we can't represent -# the Julian calendar. -# -# As far as we know, none of the exact locations mentioned below were +# On Friday, 1867-10-18 (Gregorian), at precisely 15:30 local time, the +# Russian forts and fleet at Sitka fired salutes to mark the ceremony of +# formal transfer. See the Sacramento Daily Union (1867-11-14), p 3, col 2. +# https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=SDU18671114.2.12.1 +# Sitka workers did not change their calendars until Sunday, 1867-10-20, +# and so celebrated two Sundays that week. See: Ahllund T (tr Hallamaa P). +# From the memoirs of a Finnish workman. Alaska History. 2006 Fall;21(2):1-25. +# http://alaskahistoricalsociety.org/wp-content/uploads/2016/12/Ahllund-2006-Memoirs-of-a-Finnish-Workman.pdf +# Include only the time zone part of this transition, ignoring the switch +# from Julian to Gregorian, since we can't represent the Julian calendar. +# +# As far as we know, of the locations mentioned below only Sitka was # permanently inhabited in 1867 by anyone using either calendar. -# (Yakutat was colonized by the Russians in 1799, but the settlement -# was destroyed in 1805 by a Yakutat-kon war party.) However, there -# were nearby inhabitants in some cases and for our purposes perhaps -# it's best to simply use the official transition. +# (Yakutat was colonized by the Russians in 1799, but the settlement was +# destroyed in 1805 by a Yakutat-kon war party.) Many of Alaska's inhabitants +# were unaware of the US acquisition of Alaska, much less of any calendar or +# time change. However, the Russian-influenced part of Alaska did observe +# Russian time, and it is more accurate to model this than to ignore it. +# The database format requires an exact transition time; use the Russian +# salute as a somewhat-arbitrary time for the formal transfer of control for +# all of Alaska. Sitka's UTC offset is -9:01:13; adjust its 15:30 to the +# local times of other Alaskan locations so that they change simultaneously. # From Paul Eggert (2014-07-18): # One opinion of the early-1980s turmoil in Alaska over time zones and @@ -550,10 +645,30 @@ Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02 # It seems Metlakatla did go off PST on Sunday, November 1, changing # their time to AKST and are going to follow Alaska's DST, switching # between AKST and AKDT from now on.... -# http://www.krbd.org/2015/10/30/annette-island-times-they-are-a-changing/ - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Juneau 15:02:19 - LMT 1867 Oct 18 +# https://www.krbd.org/2015/10/30/annette-island-times-they-are-a-changing/ + +# From Ryan Stanley (2018-11-06): +# The Metlakatla community in Alaska has decided not to change its +# clock back an hour starting on November 4th, 2018 (day before yesterday). +# They will be gmtoff=-28800 year-round. +# https://www.facebook.com/141055983004923/photos/pb.141055983004923.-2207520000.1541465673./569081370202380/ + +# From Paul Eggert (2018-12-16): +# In a 2018-12-11 special election, Metlakatla voted to go back to +# Alaska time (including daylight saving time) starting next year. +# https://www.krbd.org/2018/12/12/metlakatla-to-follow-alaska-standard-time-allow-liquor-sales/ +# +# From Ryan Stanley (2019-01-11): +# The community will be changing back on the 20th of this month... +# From Tim Parenti (2019-01-11): +# Per an announcement on the Metlakatla community's official Facebook page, the +# "fall back" will be on Sunday 2019-01-20 at 02:00: +# https://www.facebook.com/141055983004923/photos/607150969728753/ +# So they won't be waiting for Alaska to join them on 2019-03-10, but will +# rather change their clocks twice in seven weeks. + +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone America/Juneau 15:02:19 - LMT 1867 Oct 19 15:33:32 -8:57:41 - LMT 1900 Aug 20 12:00 -8:00 - PST 1942 -8:00 US P%sT 1946 @@ -563,7 +678,7 @@ Zone America/Juneau 15:02:19 - LMT 1867 Oct 18 -8:00 US P%sT 1983 Oct 30 2:00 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT -Zone America/Sitka 14:58:47 - LMT 1867 Oct 18 +Zone America/Sitka 14:58:47 - LMT 1867 Oct 19 15:30 -9:01:13 - LMT 1900 Aug 20 12:00 -8:00 - PST 1942 -8:00 US P%sT 1946 @@ -571,32 +686,32 @@ Zone America/Sitka 14:58:47 - LMT 1867 Oct 18 -8:00 US P%sT 1983 Oct 30 2:00 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT -Zone America/Metlakatla 15:13:42 - LMT 1867 Oct 18 +Zone America/Metlakatla 15:13:42 - LMT 1867 Oct 19 15:44:55 -8:46:18 - LMT 1900 Aug 20 12:00 -8:00 - PST 1942 -8:00 US P%sT 1946 -8:00 - PST 1969 -8:00 US P%sT 1983 Oct 30 2:00 -8:00 - PST 2015 Nov 1 2:00 + -9:00 US AK%sT 2018 Nov 4 2:00 + -8:00 - PST 2019 Jan 20 2:00 -9:00 US AK%sT -Zone America/Yakutat 14:41:05 - LMT 1867 Oct 18 +Zone America/Yakutat 14:41:05 - LMT 1867 Oct 19 15:12:18 -9:18:55 - LMT 1900 Aug 20 12:00 -9:00 - YST 1942 -9:00 US Y%sT 1946 -9:00 - YST 1969 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT -Zone America/Anchorage 14:00:24 - LMT 1867 Oct 18 +Zone America/Anchorage 14:00:24 - LMT 1867 Oct 19 14:31:37 -9:59:36 - LMT 1900 Aug 20 12:00 - -10:00 - CAT 1942 - -10:00 US CAT/CAWT 1945 Aug 14 23:00u - -10:00 US CAT/CAPT 1946 # Peace - -10:00 - CAT 1967 Apr + -10:00 - AST 1942 + -10:00 US A%sT 1967 Apr -10:00 - AHST 1969 -10:00 US AH%sT 1983 Oct 30 2:00 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT -Zone America/Nome 12:58:21 - LMT 1867 Oct 18 +Zone America/Nome 12:58:22 - LMT 1867 Oct 19 13:29:35 -11:01:38 - LMT 1900 Aug 20 12:00 -11:00 - NST 1942 -11:00 US N%sT 1946 @@ -605,7 +720,7 @@ Zone America/Nome 12:58:21 - LMT 1867 Oct 18 -11:00 US B%sT 1983 Oct 30 2:00 -9:00 US Y%sT 1983 Nov 30 -9:00 US AK%sT -Zone America/Adak 12:13:21 - LMT 1867 Oct 18 +Zone America/Adak 12:13:22 - LMT 1867 Oct 19 12:44:35 -11:46:38 - LMT 1900 Aug 20 12:00 -11:00 - NST 1942 -11:00 US N%sT 1946 @@ -641,7 +756,7 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18 # "Hawaiian Time" by Robert C. Schmitt and Doak C. Cox appears on pages 207-225 # of volume 26 of The Hawaiian Journal of History (1992). As of 2010-12-09, # the article is available at -# http://evols.library.manoa.hawaii.edu/bitstream/10524/239/2/JL26215.pdf +# https://evols.library.manoa.hawaii.edu/bitstream/10524/239/2/JL26215.pdf # and indicates that standard time was adopted effective noon, January # 13, 1896 (page 218), that in "1933, the Legislature decreed daylight # saving for the period between the last Sunday of each April and the @@ -672,15 +787,12 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18 # Note that 1933-05-21 was a Sunday. # We're left to guess the time of day when Act 163 was approved; guess noon. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00 -10:30 - HST 1933 Apr 30 2:00 -10:30 1:00 HDT 1933 May 21 12:00 - -10:30 - HST 1942 Feb 9 2:00 - -10:30 1:00 HDT 1945 Sep 30 2:00 - -10:30 - HST 1947 Jun 8 2:00 + -10:30 US H%sT 1947 Jun 8 2:00 -10:00 - HST -Link Pacific/Honolulu Pacific/Johnston # Now we turn to US areas that have diverged from the consensus since 1970. @@ -705,7 +817,7 @@ Link Pacific/Honolulu Pacific/Johnston # Shanks says the 1944 experiment came to an end on 1944-03-17. # Go with the Arizona State Library instead. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42 -7:00 US M%sT 1944 Jan 1 0:01 -7:00 - MST 1944 Apr 1 0:01 @@ -731,7 +843,7 @@ Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42 # quarter of Idaho county) and eastern Oregon (most of Malheur County) # switched four weeks late in 1974. # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11 -8:00 US P%sT 1923 May 13 2:00 -7:00 US M%sT 1974 @@ -741,7 +853,23 @@ Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11 # Indiana # # For a map of Indiana's time zone regions, see: -# http://en.wikipedia.org/wiki/Time_in_Indiana +# https://en.wikipedia.org/wiki/Time_in_Indiana +# +# From Paul Eggert (2018-11-30): +# A brief but entertaining history of time in Indiana describes a 1949 debate +# in the Indiana House where city legislators (who favored "fast time") +# tussled with farm legislators (who didn't) over a bill to outlaw DST: +# "Lacking enough votes, the city faction tries to filibuster until time runs +# out on the session at midnight, but rural champion Rep. Herbert Copeland, +# R-Madison, leans over the gallery railing and forces the official clock +# back to 9 p.m., breaking it in the process. The clock sticks on 9 as the +# debate rages on into the night. The filibuster finally dies out and the +# bill passes, while outside the chamber, clocks read 3:30 a.m. In the end, +# it doesn't matter which side won. The law has no enforcement powers and +# is simply ignored by fast-time communities." +# How Indiana went from 'God's time' to split zones and daylight-saving. +# Indianapolis Star. 2018-11-27 14:58 -05. +# https://www.indystar.com/story/news/politics/2018/11/27/indianapolis-indiana-time-zone-history-central-eastern-daylight-savings-time/2126300002/ # # From Paul Eggert (2007-08-17): # Since 1970, most of Indiana has been like America/Indiana/Indianapolis, @@ -787,7 +915,7 @@ Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11 Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22 -6:00 US C%sT 1920 -6:00 Indianapolis C%sT 1942 @@ -807,7 +935,7 @@ Rule Marengo 1951 only - Apr lastSun 2:00 1:00 D Rule Marengo 1951 only - Sep lastSun 2:00 0 S Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:14:37 -6:00 US C%sT 1951 -6:00 Marengo C%sT 1961 Apr 30 2:00 @@ -831,7 +959,7 @@ Rule Vincennes 1956 1963 - Apr lastSun 2:00 1:00 D Rule Vincennes 1960 only - Oct lastSun 2:00 0 S Rule Vincennes 1961 only - Sep lastSun 2:00 0 S Rule Vincennes 1962 1963 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53 -6:00 US C%sT 1946 -6:00 Vincennes C%sT 1964 Apr 26 2:00 @@ -842,21 +970,21 @@ Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53 -5:00 US E%sT # # Perry County, Indiana, switched from eastern to central time in April 2006. +# From Alois Triendl (2019-07-09): +# The Indianapolis News, Friday 27 October 1967 states that Perry County +# returned to CST. It went again to EST on 27 April 1969, as documented by the +# Indianapolis star of Saturday 26 April. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER -Rule Perry 1946 only - Apr lastSun 2:00 1:00 D -Rule Perry 1946 only - Sep lastSun 2:00 0 S -Rule Perry 1953 1954 - Apr lastSun 2:00 1:00 D -Rule Perry 1953 1959 - Sep lastSun 2:00 0 S Rule Perry 1955 only - May 1 0:00 1:00 D +Rule Perry 1955 1960 - Sep lastSun 2:00 0 S Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D -Rule Perry 1960 only - Oct lastSun 2:00 0 S -Rule Perry 1961 only - Sep lastSun 2:00 0 S -Rule Perry 1962 1963 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Perry 1961 1963 - Oct lastSun 2:00 0 S +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 12:12:57 -6:00 US C%sT 1946 -6:00 Perry C%sT 1964 Apr 26 2:00 - -5:00 - EST 1969 + -5:00 - EST 1967 Oct 29 2:00 + -6:00 US C%sT 1969 Apr 27 2:00 -5:00 US E%sT 1971 -5:00 - EST 2006 Apr 2 2:00 -6:00 US C%sT @@ -868,7 +996,7 @@ Rule Pike 1955 only - May 1 0:00 1:00 D Rule Pike 1955 1960 - Sep lastSun 2:00 0 S Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D Rule Pike 1961 1964 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 12:10:53 -6:00 US C%sT 1955 -6:00 Pike C%sT 1965 Apr 25 2:00 @@ -890,7 +1018,7 @@ Rule Starke 1947 1954 - Sep lastSun 2:00 0 S Rule Starke 1955 1956 - Oct lastSun 2:00 0 S Rule Starke 1957 1958 - Sep lastSun 2:00 0 S Rule Starke 1959 1961 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:13:30 -6:00 US C%sT 1947 -6:00 Starke C%sT 1962 Apr 29 2:00 @@ -906,7 +1034,7 @@ Rule Pulaski 1946 1960 - Apr lastSun 2:00 1:00 D Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S Rule Pulaski 1957 1960 - Sep lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35 -6:00 US C%sT 1946 -6:00 Pulaski C%sT 1961 Apr 30 2:00 @@ -917,7 +1045,7 @@ Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35 -5:00 US E%sT # # Switzerland County, Indiana, did not observe DST from 1973 through 2005. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44 -6:00 US C%sT 1954 Apr 25 2:00 -5:00 - EST 1969 @@ -925,17 +1053,35 @@ Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44 -5:00 - EST 2006 -5:00 US E%sT +# From Paul Eggert (2018-03-20): +# The Louisville & Nashville Railroad's 1883-11-18 change occurred at +# 10:00 old local time; train were supposed to come to a standstill +# for precisely 18 minutes. See Bartky Fig. 1 (page 50). It is not +# clear how this matched civil time in Louisville, so for now continue +# to assume Louisville switched at noon new local time, like New York. +# +# From Michael Deckers (2019-08-06): +# From the contemporary source given by Alois Treindl, +# the switch in Louisville on 1946-04-28 was on 00:01 +# From Paul Eggert (2019-08-26): +# That source was the Louisville Courier-Journal, 1946-04-27, p 4. +# Shanks gives 02:00 for all 20th-century transition times in Louisville. +# Evidently this is wrong for spring 1946. Although also likely wrong +# for other dates, we have no data. +# # Part of Kentucky left its clocks alone in 1974. # This also includes Clark, Floyd, and Harrison counties in Indiana. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER Rule Louisville 1921 only - May 1 2:00 1:00 D Rule Louisville 1921 only - Sep 1 2:00 0 S -Rule Louisville 1941 1961 - Apr lastSun 2:00 1:00 D +Rule Louisville 1941 only - Apr lastSun 2:00 1:00 D Rule Louisville 1941 only - Sep lastSun 2:00 0 S +Rule Louisville 1946 only - Apr lastSun 0:01 1:00 D Rule Louisville 1946 only - Jun 2 2:00 0 S +Rule Louisville 1950 1961 - Apr lastSun 2:00 1:00 D Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S -Rule Louisville 1956 1960 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Louisville 1956 1961 - Oct lastSun 2:00 0 S +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58 -6:00 US C%sT 1921 -6:00 Louisville C%sT 1942 @@ -968,7 +1114,7 @@ Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58 # From Paul Eggert (2001-07-16): # The final rule was published in the # Federal Register 65, 160 (2000-08-17), pp 50154-50158. -# http://frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?dbname=2000_register&docid=fr17au00-22 +# https://www.gpo.gov/fdsys/pkg/FR-2000-08-17/html/00-20854.htm # Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36 -6:00 US C%sT 1946 @@ -994,7 +1140,7 @@ Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36 # West Wendover, NV officially switched from Pacific to mountain time on # 1999-10-31. See the # Federal Register 64, 203 (1999-10-21), pp 56705-56707. -# http://frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?dbname=1999_register&docid=fr21oc99-15 +# https://www.gpo.gov/fdsys/pkg/FR-1999-10-21/html/99-27240.htm # However, the Federal Register says that West Wendover already operated # on mountain time, and the rule merely made this official; # hence a separate tz entry is not needed. @@ -1024,18 +1170,32 @@ Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36 # one hour in 1914." This change is not in Shanks. We have no more # info, so omit this for now. # +# From Paul Eggert (2019-07-06): +# Due to a complicated set of legal maneuvers, in 1967 Michigan did +# not start daylight saving time when the rest of the US did. +# Instead, it began DST on Jun 14 at 00:01. This was big news: +# the Detroit Free Press reported it at the top of Page 1 on +# 1967-06-14, in an article "State Adjusting to Switch to Fast Time" +# by Gary Blonston, above an article about Thurgood Marshall's +# confirmation to the US Supreme Court. Although Shanks says Detroit +# observed DST until 1967-10-29 00:01, that time of day seems to be +# incorrect, as the Free Press later said DST ended in Michigan at the +# same time as the rest of the US. Also, although Shanks reports no DST in +# Detroit in 1968, it did observe DST that year; in the November 1968 +# election Michigan voters narrowly repealed DST, effective 1969. +# # Most of Michigan observed DST from 1973 on, but was a bit late in 1975. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER Rule Detroit 1948 only - Apr lastSun 2:00 1:00 D Rule Detroit 1948 only - Sep lastSun 2:00 0 S -Rule Detroit 1967 only - Jun 14 2:00 1:00 D -Rule Detroit 1967 only - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Detroit -5:32:11 - LMT 1905 -6:00 - CST 1915 May 15 2:00 -5:00 - EST 1942 -5:00 US E%sT 1946 - -5:00 Detroit E%sT 1973 + -5:00 Detroit E%sT 1967 Jun 14 0:01 + -5:00 US E%sT 1969 + -5:00 - EST 1973 -5:00 US E%sT 1975 -5:00 - EST 1975 Apr 27 2:00 -5:00 US E%sT @@ -1047,7 +1207,7 @@ Rule Menominee 1946 only - Apr lastSun 2:00 1:00 D Rule Menominee 1946 only - Sep lastSun 2:00 0 S Rule Menominee 1966 only - Apr lastSun 2:00 1:00 D Rule Menominee 1966 only - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 -6:00 US C%sT 1946 -6:00 Menominee C%sT 1969 Apr 27 2:00 @@ -1068,15 +1228,15 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 ################################################################################ -# From Paul Eggert (2014-10-31): +# From Paul Eggert (2017-02-10): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), # San Diego: ACS Publications, Inc. (2003). # Unfortunately this book contains many errors and cites no sources. # -# Gwillim Law writes that a good source -# for recent time zone data is the International Air Transport +# Many years ago Gwillim Law wrote that a good source +# for time zone data was the International Air Transport # Association's Standard Schedules Information Manual (IATA SSIM), # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. Except where otherwise noted, @@ -1084,6 +1244,12 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 # # Other sources occasionally used include: # +# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94 +# . +# +# Pearce C. The Great Daylight Saving Time Controversy. +# Australian Ebook Publisher. 2017. ISBN 978-1-925516-96-8. +# # Edward W. Whitman, World Time Differences, # Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), # which I found in the UCLA library. @@ -1092,9 +1258,6 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 # # [PDF] (1914-03) # -# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94 -# . -# # See the 'europe' file for Greenland. # Canada @@ -1139,19 +1302,19 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 # The British Columbia government announced yesterday that it will # adjust daylight savings next year to align with changes in the # U.S. and the rest of Canada.... -# http://www2.news.gov.bc.ca/news_releases_2005-2009/2006AG0014-000330.htm +# https://archive.news.gov.bc.ca/releases/news_releases_2005-2009/2006AG0014-000330.htm # ... # Nova Scotia # Daylight saving time will be extended by four weeks starting in 2007.... -# http://www.gov.ns.ca/just/regulations/rg2/2006/ma1206.pdf +# https://www.novascotia.ca/just/regulations/rg2/2006/ma1206.pdf # # [For New Brunswick] the new legislation dictates that the time change is to # be done at 02:00 instead of 00:01. -# http://www.gnb.ca/0062/acts/BBA-2006/Chap-19.pdf +# https://www.gnb.ca/0062/acts/BBA-2006/Chap-19.pdf # ... # Manitoba has traditionally changed the clock every fall at 03:00. # As of 2006, the transition is to take place one hour earlier at 02:00. -# http://web2.gov.mb.ca/laws/statutes/ccsm/o030e.php +# https://web2.gov.mb.ca/laws/statutes/ccsm/o030e.php # ... # [Alberta, Ontario, Quebec] will follow US rules. # http://www.qp.gov.ab.ca/documents/spring/CH03_06.CFM @@ -1165,7 +1328,7 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 # http://www.hoa.gov.nl.ca/hoa/bills/Bill0634.htm # ... # Yukon -# http://www.gov.yk.ca/legislation/regs/oic2006_127.pdf +# https://www.gov.yk.ca/legislation/regs/oic2006_127.pdf # ... # N.W.T. will follow US rules. Whoever maintains the government web site # does not seem to believe in bookmarks. To see the news release, click the @@ -1186,8 +1349,8 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 # time and daylight saving time arrangements in Canada circa 1998. # # National Research Council Canada maintains info about time zones and DST. -# http://www.nrc-cnrc.gc.ca/eng/services/time/time_zones.html -# http://www.nrc-cnrc.gc.ca/eng/services/time/faq/index.html#Q5 +# https://www.nrc-cnrc.gc.ca/eng/services/time/time_zones.html +# https://www.nrc-cnrc.gc.ca/eng/services/time/faq/index.html#Q5 # Its unofficial information is often taken from Matthews and Vincent. # From Paul Eggert (2006-06-27): @@ -1224,11 +1387,13 @@ Rule Canada 2007 max - Nov Sun>=1 2:00 0 S # Newfoundland and Labrador -# From Paul Eggert (2000-10-02): -# Matthews and Vincent (1998) write that Labrador should use NST/NDT, -# but the only part of Labrador that follows the rules is the -# southeast corner, including Port Hope Simpson and Mary's Harbour, -# but excluding, say, Black Tickle. +# From Paul Eggert (2017-10-14): +# Legally Labrador should observe Newfoundland time; see: +# McLeod J. Labrador time - legal or not? St. John's Telegram, 2017-10-07 +# http://www.thetelegram.com/news/local/labrador-time--legal-or-not-154860/ +# Matthews and Vincent (1998) write that the only part of Labrador +# that follows the rules is the southeast corner, including Port Hope +# Simpson and Mary's Harbour, but excluding, say, Black Tickle. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule StJohns 1917 only - Apr 8 2:00 1:00 D @@ -1279,7 +1444,7 @@ Rule StJohns 2007 2011 - Mar Sun>=8 0:01 1:00 D Rule StJohns 2007 2010 - Nov Sun>=1 0:01 0 S # # St John's has an apostrophe, but Posix file names can't have apostrophes. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/St_Johns -3:30:52 - LMT 1884 -3:30:52 StJohns N%sT 1918 -3:30:52 Canada N%sT 1919 @@ -1292,7 +1457,7 @@ Zone America/St_Johns -3:30:52 - LMT 1884 # most of east Labrador # The name 'Happy Valley-Goose Bay' is too long; use 'Goose Bay'. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Goose_Bay -4:01:40 - LMT 1884 # Happy Valley-Goose Bay -3:30:52 - NST 1918 -3:30:52 Canada N%sT 1919 @@ -1366,7 +1531,7 @@ Rule Halifax 1956 1959 - Apr lastSun 2:00 1:00 D Rule Halifax 1956 1959 - Sep lastSun 2:00 0 S Rule Halifax 1962 1973 - Apr lastSun 2:00 1:00 D Rule Halifax 1962 1973 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Halifax -4:14:24 - LMT 1902 Jun 15 -4:00 Halifax A%sT 1918 -4:00 Canada A%sT 1919 @@ -1404,7 +1569,7 @@ Rule Moncton 1946 1956 - Sep lastSun 2:00 0 S Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S Rule Moncton 1993 2006 - Apr Sun>=1 0:01 1:00 D Rule Moncton 1993 2006 - Oct lastSun 0:01 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 -5:00 - EST 1902 Jun 15 -4:00 Canada A%sT 1933 @@ -1428,12 +1593,12 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 # http://www.justice.gouv.qc.ca/english/publications/generale/temps-minganie-a.htm # that the coastal strip from just east of Natashquan to Blanc-Sablon # observes Atlantic standard time all year round. -# http://www.assnat.qc.ca/Media/Process.aspx?MediaId=ANQ.Vigie.Bll.DocumentGenerique_8845en +# https://www.assnat.qc.ca/Media/Process.aspx?MediaId=ANQ.Vigie.Bll.DocumentGenerique_8845en # says this common practice was codified into law as of 2007. # For lack of better info, guess this practice began around 1970, contra to # Shanks & Pottenger who have this region observing AST/ADT. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Blanc-Sablon -3:48:28 - LMT 1884 -4:00 Canada A%sT 1970 -4:00 - AST @@ -1460,6 +1625,11 @@ Zone America/Blanc-Sablon -3:48:28 - LMT 1884 # earlier in June). # # Kenora, Ontario, was to abandon DST on 1914-06-01 (-05-21). +# +# From Paul Eggert (2017-07-08): +# For more on Orillia, see: Daubs K. Bold attempt at daylight saving +# time became a comic failure in Orillia. Toronto Star 2017-07-08. +# https://www.thestar.com/news/insight/2017/07/08/bold-attempt-at-daylight-saving-time-became-a-comic-failure-in-orillia.html # From Paul Eggert (1997-10-17): # Mark Brader writes that an article in the 1997-10-14 Toronto Star @@ -1596,19 +1766,10 @@ Rule Toronto 1922 1923 - May Sun>=8 2:00 1:00 D # was meant. Rule Toronto 1922 1926 - Sep Sun>=15 2:00 0 S Rule Toronto 1924 1927 - May Sun>=1 2:00 1:00 D -# The 1927-to-1939 rules can be expressed more simply as -# Rule Toronto 1927 1937 - Sep Sun>=25 2:00 0 S -# Rule Toronto 1928 1937 - Apr Sun>=25 2:00 1:00 D -# Rule Toronto 1938 1940 - Apr lastSun 2:00 1:00 D -# Rule Toronto 1938 1939 - Sep lastSun 2:00 0 S -# The rules below avoid use of Sun>=25 -# (which pre-2004 versions of zic cannot handle). -Rule Toronto 1927 1932 - Sep lastSun 2:00 0 S -Rule Toronto 1928 1931 - Apr lastSun 2:00 1:00 D -Rule Toronto 1932 only - May 1 2:00 1:00 D -Rule Toronto 1933 1940 - Apr lastSun 2:00 1:00 D -Rule Toronto 1933 only - Oct 1 2:00 0 S -Rule Toronto 1934 1939 - Sep lastSun 2:00 0 S +Rule Toronto 1927 1937 - Sep Sun>=25 2:00 0 S +Rule Toronto 1928 1937 - Apr Sun>=25 2:00 1:00 D +Rule Toronto 1938 1940 - Apr lastSun 2:00 1:00 D +Rule Toronto 1938 1939 - Sep lastSun 2:00 0 S Rule Toronto 1945 1946 - Sep lastSun 2:00 0 S Rule Toronto 1946 only - Apr lastSun 2:00 1:00 D Rule Toronto 1947 1949 - Apr lastSun 0:00 1:00 D @@ -1641,7 +1802,7 @@ Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S # War,... [t]he cities agreed to implement DST during the summer # months for the remainder of the war years. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Toronto -5:17:32 - LMT 1895 -5:00 Canada E%sT 1919 -5:00 Toronto E%sT 1942 Feb 9 2:00s @@ -1716,7 +1877,7 @@ Rule Winn 1963 only - Sep 22 2:00 0 S Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16 -6:00 Winn C%sT 2006 -6:00 Canada C%sT @@ -1738,6 +1899,12 @@ Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16 # Willett (1914-03) notes that DST "has been in operation ... in the # City of Moose Jaw, Saskatchewan, for one year." +# From Paul Eggert (2019-07-25): +# Pearce's book says Regina observed DST in 1914-1917. No dates and times, +# unfortunately. It also says that in 1914 Saskatoon observed DST +# from 1 June to 6 July, and that DST was also tried out in Davidson, +# Melfort, and Prince Albert. + # From Paul Eggert (2006-03-22): # Shanks & Pottenger say that since 1970 this region has mostly been as Regina. # Some western towns (e.g. Swift Current) switched from MST/MDT to CST in 1972. @@ -1800,7 +1967,7 @@ Rule Swift 1957 only - Oct lastSun 2:00 0 S Rule Swift 1959 1961 - Apr lastSun 2:00 1:00 D Rule Swift 1959 only - Oct lastSun 2:00 0 S Rule Swift 1960 1961 - Sep lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Regina -6:58:36 - LMT 1905 Sep -7:00 Regina M%sT 1960 Apr lastSun 2:00 -6:00 - CST @@ -1813,6 +1980,19 @@ Zone America/Swift_Current -7:11:20 - LMT 1905 Sep # Alberta +# From Alois Triendl (2019-07-19): +# There was no DST in Alberta in 1967... Calgary Herald, 29 April 1967. +# 1969, no DST, from Edmonton Journal 18 April 1969 +# +# From Paul Eggert (2019-07-25): +# Pearce's book says that Alberta's 1948 Daylight Saving Act required +# Mountain Standard Time without DST, and that "anyone who broke that law +# could be fined up to $25 and costs". There seems to be no record of +# anybody paying the fine. The law was not changed until an August 1971 +# plebiscite reinstituted DST in 1972. This story is also mentioned in: +# Boyer JP. Forcing Choice: The Risky Reward of Referendums. Dundum. 2017. +# ISBN 978-1459739123. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D Rule Edm 1918 only - Oct 27 2:00 0 S @@ -1825,13 +2005,9 @@ Rule Edm 1945 only - Aug 14 23:00u 1:00 P # Peace Rule Edm 1945 only - Sep lastSun 2:00 0 S Rule Edm 1947 only - Apr lastSun 2:00 1:00 D Rule Edm 1947 only - Sep lastSun 2:00 0 S -Rule Edm 1967 only - Apr lastSun 2:00 1:00 D -Rule Edm 1967 only - Oct lastSun 2:00 0 S -Rule Edm 1969 only - Apr lastSun 2:00 1:00 D -Rule Edm 1969 only - Oct lastSun 2:00 0 S Rule Edm 1972 1986 - Apr lastSun 2:00 1:00 D Rule Edm 1972 2006 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Edmonton -7:33:52 - LMT 1906 Sep -7:00 Edm M%sT 1987 -7:00 Canada M%sT @@ -1859,7 +2035,7 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep # manager of the Creston & District Museum. The article was written in May 2009. # http://www.ilovecreston.com/?p=articles&t=spec&ar=260 # According to the article, Creston has not changed its clocks since June 1918. -# i.e. Creston has been stuck on UTC-7 for 93 years. +# i.e. Creston has been stuck on UT-7 for 93 years. # Dawson Creek, on the other hand, changed its clocks as recently as April 1972. # Unfortunately the exact date for the time change in June 1918 remains @@ -1911,8 +2087,20 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep # been on MST (-0700) like Dawson Creek since it advanced its clocks on # 2015-03-08. # -# From Paul Eggert (2015-09-23): +# From Paul Eggert (2019-07-25): # Shanks says Fort Nelson did not observe DST in 1946, unlike Vancouver. +# Alois Triendl confirmed this on 07-22, citing the 1946-04-27 Vancouver Daily +# Province. He also cited the 1946-09-28 Victoria Daily Times, which said +# that Vancouver, Victoria, etc. "change at midnight Saturday"; for now, +# guess they meant 02:00 Sunday since 02:00 was common practice in Vancouver. +# +# Early Vancouver, Volume Four, by Major J.S. Matthews, V.D., 2011 edition +# says that a 1922 plebiscite adopted DST, but a 1923 plebiscite rejected it. +# http://former.vancouver.ca/ctyclerk/archives/digitized/EarlyVan/SearchEarlyVan/Vol4pdf/MatthewsEarlyVancouverVol4_DaylightSavings.pdf +# A catalog entry for a newspaper clipping seems to indicate that Vancouver +# observed DST in 1941 from 07-07 through 09-27; see +# https://searcharchives.vancouver.ca/daylight-saving-1918-starts-again-july-7-1941-start-d-s-sept-27-end-of-d-s-1941 +# We have no further details, so omit them for now. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Vanc 1918 only - Apr 14 2:00 1:00 D @@ -1921,10 +2109,10 @@ Rule Vanc 1942 only - Feb 9 2:00 1:00 W # War Rule Vanc 1945 only - Aug 14 23:00u 1:00 P # Peace Rule Vanc 1945 only - Sep 30 2:00 0 S Rule Vanc 1946 1986 - Apr lastSun 2:00 1:00 D -Rule Vanc 1946 only - Oct 13 2:00 0 S +Rule Vanc 1946 only - Sep 29 2:00 0 S Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Vancouver -8:12:28 - LMT 1884 -8:00 Vanc P%sT 1987 -8:00 Canada P%sT @@ -1951,7 +2139,7 @@ Zone America/Creston -7:46:04 - LMT 1884 # * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68, # c. 7 defines Yukon standard time as UTC-9.... # see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1). -# [http://canlii.ca/t/7vhg] +# [https://www.canlii.org/en/ca/laws/stat/rsc-1985-c-i-21/latest/rsc-1985-c-i-21.html] # * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00. # * O.I.C. 1980/02 established DST. # * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00. @@ -1995,7 +2183,7 @@ Zone America/Creston -7:46:04 - LMT 1884 # varying the manner of reckoning standard time. # # * Yukon Territory Commissioner's Order 1966-20 Interpretation Ordinance -# http://? - no online source found +# [no online source found] # # * Standard Time and Time Zones in Canada; Thomson, Malcolm M.; JRASC, # Vol. 64, pp.129-162; June 1970; SAO/NASA Astrophysics Data System (ADS) @@ -2016,7 +2204,7 @@ Zone America/Creston -7:46:04 - LMT 1884 # hours behind Greenwich Time. # # * Yukon Standard Time defined as Pacific Standard Time, YCO 1973/214 -# http://www.canlii.org/en/yk/laws/regu/yco-1973-214/latest/yco-1973-214.html +# https://www.canlii.org/en/yk/laws/regu/yco-1973-214/latest/yco-1973-214.html # C.O. 1973/214 INTERPRETATION ACT ... # # 1. Effective October 28, 1973 Commissioner's Order 1967/59 is hereby @@ -2028,10 +2216,10 @@ Zone America/Creston -7:46:04 - LMT 1884 # to say eight hours behind Greenwich Time. # # * O.I.C. 1980/02 INTERPRETATION ACT -# http://? - no online source found +# [no online source found] # # * Yukon Daylight Saving Time, YOIC 1987/56 -# http://www.canlii.org/en/yk/laws/regu/yoic-1987-56/latest/yoic-1987-56.html +# https://www.canlii.org/en/yk/laws/regu/yoic-1987-56/latest/yoic-1987-56.html # O.I.C. 1987/056 INTERPRETATION ACT ... # # In every year between @@ -2043,7 +2231,7 @@ Zone America/Creston -7:46:04 - LMT 1884 # Dated ... 9th day of March, A.D., 1987. # # * Yukon Daylight Saving Time 2006, YOIC 2006/127 -# http://www.canlii.org/en/yk/laws/regu/yoic-2006-127/latest/yoic-2006-127.html +# https://www.canlii.org/en/yk/laws/regu/yoic-2006-127/latest/yoic-2006-127.html # O.I.C. 2006/127 INTERPRETATION ACT ... # # 1. In Yukon each year the time for general purposes shall be 7 hours @@ -2057,7 +2245,7 @@ Zone America/Creston -7:46:04 - LMT 1884 # 3. This order comes into force January 1, 2007. # # * Interpretation Act, RSY 2002, c 125 -# http://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html +# https://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html # From Rives McDow (1999-09-04): # Nunavut ... moved ... to incorporate the whole territory into one time zone. @@ -2100,7 +2288,7 @@ Zone America/Creston -7:46:04 - LMT 1884 # From Michaela Rodrigue, writing in the # Nunatsiaq News (1999-11-19): -# http://www.nunatsiaq.com/archives/nunavut991130/nvt91119_17.html +# http://www.nunatsiaqonline.ca/archives/nunavut991130/nvt91119_17.html # Clyde River, Pangnirtung and Sanikiluaq now operate with two time zones, # central - or Nunavut time - for government offices, and eastern time # for municipal offices and schools.... Igloolik [was similar but then] @@ -2118,7 +2306,7 @@ Zone America/Creston -7:46:04 - LMT 1884 # Central Time and Southampton Island [in the Central zone] is not # required to use daylight savings. -# From +# From # Nunavut now has two time zones (2000-11-10): # The Nunavut government would allow its employees in Kugluktuk and # Cambridge Bay to operate on central time year-round, putting them @@ -2244,7 +2432,7 @@ Rule NT_YK 1965 only - Oct lastSun 2:00 0 S Rule NT_YK 1980 1986 - Apr lastSun 2:00 1:00 D Rule NT_YK 1980 2006 - Oct lastSun 2:00 0 S Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # aka Panniqtuuq Zone America/Pangnirtung 0 - -00 1921 # trading post est. -4:00 NT_YK A%sT 1995 Apr Sun>=1 2:00 @@ -2391,7 +2579,7 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # From Paul Eggert (2001-03-03): # -# http://www.latimes.com/news/nation/20010303/t000018766.html +# https://www.latimes.com/archives/la-xpm-2001-mar-03-mn-32561-story.html # James F. Smith writes in today's LA Times # * Sonora will continue to observe standard time. # * Last week Mexico City's mayor Andrés Manuel López Obrador decreed that @@ -2449,7 +2637,7 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # http://gaceta.diputados.gob.mx/Gaceta/61/2009/dic/V2-101209.html # # Our page: -# http://www.timeanddate.com/news/time/north-mexico-dst-change.html +# https://www.timeanddate.com/news/time/north-mexico-dst-change.html # From Arthur David Olson (2010-01-20): # The page @@ -2518,7 +2706,7 @@ Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D Rule Mexico 2001 only - Sep lastSun 2:00 0 S Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D Rule Mexico 2002 max - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # Quintana Roo; represented by Cancún Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56 -6:00 - CST 1981 Dec 23 @@ -2711,7 +2899,7 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Bahamas 1964 1975 - Oct lastSun 2:00 0 S Rule Bahamas 1964 1975 - Apr lastSun 2:00 1:00 D -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Nassau -5:09:30 - LMT 1912 Mar 2 -5:00 Bahamas E%sT 1976 -5:00 US E%sT @@ -2726,7 +2914,7 @@ Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D Rule Barb 1979 only - Sep 30 2:00 0 S Rule Barb 1980 only - Sep 25 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Barbados -3:58:29 - LMT 1924 # Bridgetown -3:58:29 - BMT 1932 # Bridgetown Mean Time -4:00 Barb A%sT @@ -2734,15 +2922,15 @@ Zone America/Barbados -3:58:29 - LMT 1924 # Bridgetown # Belize # Whitman entirely disagrees with Shanks; go with Shanks & Pottenger. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Belize 1918 1942 - Oct Sun>=2 0:00 0:30 HD -Rule Belize 1919 1943 - Feb Sun>=9 0:00 0 S -Rule Belize 1973 only - Dec 5 0:00 1:00 D -Rule Belize 1974 only - Feb 9 0:00 0 S -Rule Belize 1982 only - Dec 18 0:00 1:00 D -Rule Belize 1983 only - Feb 12 0:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Belize 1918 1942 - Oct Sun>=2 0:00 0:30 -0530 +Rule Belize 1919 1943 - Feb Sun>=9 0:00 0 CST +Rule Belize 1973 only - Dec 5 0:00 1:00 CDT +Rule Belize 1974 only - Feb 9 0:00 0 CST +Rule Belize 1982 only - Dec 18 0:00 1:00 CDT +Rule Belize 1983 only - Feb 12 0:00 0 CST +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Belize -5:52:48 - LMT 1912 Apr - -6:00 Belize C%sT + -6:00 Belize %s # Bermuda @@ -2757,7 +2945,7 @@ Zone America/Belize -5:52:48 - LMT 1912 Apr # Friday, the same thing will happen in Bermuda. # http://www.theroyalgazette.com/apps/pbcs.dll/article?AID=/20060529/NEWS/105290135 -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/Bermuda -4:19:18 - LMT 1930 Jan 1 2:00 # Hamilton -4:00 - AST 1974 Apr 28 2:00 -4:00 Canada A%sT 1976 @@ -2779,7 +2967,7 @@ Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D Rule CR 1991 only - Jul 1 0:00 0 S Rule CR 1992 only - Mar 15 0:00 0 S # There are too many San Josés elsewhere, so we'll use 'Costa Rica'. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Costa_Rica -5:36:13 - LMT 1890 # San José -5:36:13 - SJMT 1921 Jan 15 # San José Mean Time -6:00 CR C%sT @@ -2868,7 +3056,7 @@ Zone America/Costa_Rica -5:36:13 - LMT 1890 # San José # http://www.nnc.cubaweb.cu/marzo-2008/cien-1-11-3-08.htm # # Some more background information is posted here: -# http://www.timeanddate.com/news/time/cuba-starts-dst-march-16.html +# https://www.timeanddate.com/news/time/cuba-starts-dst-march-16.html # # The article also says that Cuba has been observing DST since 1963, # while Shanks (and tzdata) has 1965 as the first date (except in the @@ -2915,7 +3103,7 @@ Zone America/Costa_Rica -5:36:13 - LMT 1890 # San José # http://granma.co.cu/2011/03/08/nacional/artic01.html # # Our info: -# http://www.timeanddate.com/news/time/cuba-starts-dst-2011.html +# https://www.timeanddate.com/news/time/cuba-starts-dst-2011.html # # From Steffen Thorsen (2011-10-30) # Cuba will end DST two weeks later this year. Instead of going back @@ -2925,7 +3113,7 @@ Zone America/Costa_Rica -5:36:13 - LMT 1890 # San José # http://www.radioangulo.cu/noticias/cuba/17105-cuba-restablecera-el-horario-del-meridiano-de-greenwich.html # # Our page: -# http://www.timeanddate.com/news/time/cuba-time-changes-2011.html +# https://www.timeanddate.com/news/time/cuba-time-changes-2011.html # # From Steffen Thorsen (2012-03-01) # According to Radio Reloj, Cuba will start DST on Midnight between March @@ -2935,7 +3123,7 @@ Zone America/Costa_Rica -5:36:13 - LMT 1890 # San José # http://www.radioreloj.cu/index.php/noticias-radio-reloj/71-miscelaneas/7529-cuba-aplicara-el-horario-de-verano-desde-el-1-de-abril # # Our info on it: -# http://www.timeanddate.com/news/time/cuba-starts-dst-2012.html +# https://www.timeanddate.com/news/time/cuba-starts-dst-2012.html # From Steffen Thorsen (2012-11-03): # Radio Reloj and many other sources report that Cuba is changing back @@ -2985,7 +3173,7 @@ Rule Cuba 2012 only - Apr 1 0:00s 1:00 D Rule Cuba 2012 max - Nov Sun>=1 0:00s 0 S Rule Cuba 2013 max - Mar Sun>=8 0:00s 1:00 D -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Havana -5:29:28 - LMT 1890 -5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT -5:00 Cuba C%sT @@ -3014,16 +3202,16 @@ Zone America/Havana -5:29:28 - LMT 1890 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule DR 1966 only - Oct 30 0:00 1:00 D -Rule DR 1967 only - Feb 28 0:00 0 S -Rule DR 1969 1973 - Oct lastSun 0:00 0:30 HD -Rule DR 1970 only - Feb 21 0:00 0 S -Rule DR 1971 only - Jan 20 0:00 0 S -Rule DR 1972 1974 - Jan 21 0:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule DR 1966 only - Oct 30 0:00 1:00 EDT +Rule DR 1967 only - Feb 28 0:00 0 EST +Rule DR 1969 1973 - Oct lastSun 0:00 0:30 -0430 +Rule DR 1970 only - Feb 21 0:00 0 EST +Rule DR 1971 only - Jan 20 0:00 0 EST +Rule DR 1972 1974 - Jan 21 0:00 0 EST +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Santo_Domingo -4:39:36 - LMT 1890 -4:40 - SDMT 1933 Apr 1 12:00 # S. Dom. MT - -5:00 DR E%sT 1974 Oct 27 + -5:00 DR %s 1974 Oct 27 -4:00 - AST 2000 Oct 29 2:00 -5:00 US E%sT 2000 Dec 3 1:00 -4:00 - AST @@ -3035,7 +3223,7 @@ Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D Rule Salv 1987 1988 - Sep lastSun 0:00 0 S # There are too many San Salvadors elsewhere, so use America/El_Salvador # instead of America/San_Salvador. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/El_Salvador -5:56:48 - LMT 1921 # San Salvador -6:00 Salv C%sT @@ -3068,7 +3256,7 @@ Rule Guat 1991 only - Mar 23 0:00 1:00 D Rule Guat 1991 only - Sep 7 0:00 0 S Rule Guat 2006 only - Apr 30 0:00 1:00 D Rule Guat 2006 only - Oct 1 0:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5 -6:00 Guat C%sT @@ -3130,10 +3318,16 @@ Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5 # From Steffen Thorsen (2016-03-12): # Jean Antoine, editor of www.haiti-reference.com informed us that Haiti # are not going on DST this year. Several other resources confirm this: ... -# http://www.radiotelevisioncaraibes.com/presse/heure_d_t_pas_de_changement_d_heure_pr_vu_pour_cet_ann_e.html -# http://www.vantbefinfo.com/changement-dheure-pas-pour-haiti/ +# https://www.radiotelevisioncaraibes.com/presse/heure_d_t_pas_de_changement_d_heure_pr_vu_pour_cet_ann_e.html +# https://www.vantbefinfo.com/changement-dheure-pas-pour-haiti/ # http://news.anmwe.com/haiti-lheure-nationale-ne-sera-ni-avancee-ni-reculee-cette-annee/ +# From Steffen Thorsen (2017-03-12): +# We have received 4 mails from different people telling that Haiti +# has started DST again today, and this source seems to confirm that, +# I have not been able to find a more authoritative source: +# https://www.haitilibre.com/en/news-20319-haiti-notices-time-change-in-haiti.html + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Haiti 1983 only - May 8 0:00 1:00 D Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D @@ -3146,7 +3340,9 @@ Rule Haiti 2005 2006 - Apr Sun>=1 0:00 1:00 D Rule Haiti 2005 2006 - Oct lastSun 0:00 0 S Rule Haiti 2012 2015 - Mar Sun>=8 2:00 1:00 D Rule Haiti 2012 2015 - Nov Sun>=1 2:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Haiti 2017 max - Mar Sun>=8 2:00 1:00 D +Rule Haiti 2017 max - Nov Sun>=1 2:00 0 S +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Port-au-Prince -4:49:20 - LMT 1890 -4:49 - PPMT 1917 Jan 24 12:00 # P-a-P MT -5:00 Haiti E%sT @@ -3185,7 +3381,7 @@ Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D Rule Hond 1987 1988 - Sep lastSun 0:00 0 S Rule Hond 2006 only - May Sun>=1 0:00 1:00 D Rule Hond 2006 only - Aug Mon>=1 0:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr -6:00 Hond C%sT # @@ -3206,15 +3402,15 @@ Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr # Neita L. The politician in all of us. Jamaica Observer 2014-09-20 # http://www.jamaicaobserver.com/columns/The-politician-in-all-of-us_17573647 # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Jamaica -5:07:11 - LMT 1890 # Kingston - -5:07:11 - KMT 1912 Feb # Kingston Mean Time +# Zone NAME STDOFF RULES FORMAT [UNTIL] +Zone America/Jamaica -5:07:10 - LMT 1890 # Kingston + -5:07:10 - KMT 1912 Feb # Kingston Mean Time -5:00 - EST 1974 -5:00 US E%sT 1984 -5:00 - EST # Martinique -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France -4:04:20 - FFMT 1911 May # Fort-de-France MT -4:00 - AST 1980 Apr 6 @@ -3278,7 +3474,7 @@ Rule Nic 2005 only - Apr 10 0:00 1:00 D Rule Nic 2005 only - Oct Sun>=1 0:00 0 S Rule Nic 2006 only - Apr 30 2:00 1:00 D Rule Nic 2006 only - Oct Sun>=1 1:00 0 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Managua -5:45:08 - LMT 1890 -5:45:12 - MMT 1934 Jun 23 # Managua Mean Time? -6:00 - CST 1973 May @@ -3290,7 +3486,7 @@ Zone America/Managua -5:45:08 - LMT 1890 -6:00 Nic C%sT # Panama -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Panama -5:18:08 - LMT 1890 -5:19:36 - CMT 1908 Apr 22 # Colón Mean Time -5:00 - EST @@ -3298,7 +3494,7 @@ Link America/Panama America/Cayman # Puerto Rico # There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan -4:00 - AST 1942 May 3 -4:00 US A%sT 1946 @@ -3310,11 +3506,11 @@ Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan # St Pierre and Miquelon # There are too many St Pierres elsewhere, so we'll use 'Miquelon'. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre -4:00 - AST 1980 May - -3:00 - PMST 1987 # Pierre & Miquelon Time - -3:00 Canada PM%sT + -3:00 - -03 1987 + -3:00 Canada -03/-02 # St Vincent and the Grenadines # See America/Port_of_Spain. @@ -3322,7 +3518,7 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre # Turks and Caicos # # From Chris Dunn in -# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=415007 +# https://bugs.debian.org/415007 # (2007-03-15): In the Turks & Caicos Islands (America/Grand_Turk) the # daylight saving dates for time changes have been adjusted to match # the recent U.S. change of dates. @@ -3344,12 +3540,25 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre # "permanent daylight saving time" by one year.... # http://tcweeklynews.com/time-change-to-go-ahead-this-november-p5437-127.htm # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# From the Turks & Caicos Cabinet (2017-07-20), heads-up from Steffen Thorsen: +# ... agreed to the reintroduction in TCI of Daylight Saving Time (DST) +# during the summer months and Standard Time, also known as Local +# Time, during the winter months with effect from April 2018 ... +# https://www.gov.uk/government/news/turks-and-caicos-post-cabinet-meeting-statement--3 +# +# From Paul Eggert (2017-08-26): +# The date of effect of the spring 2018 change appears to be March 11, +# which makes more sense. See: Hamilton D. Time change back +# by March 2018 for TCI. Magnetic Media. 2017-08-25. +# http://magneticmediatv.com/2017/08/time-change-back-by-march-2018-for-tci/ +# +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Grand_Turk -4:44:32 - LMT 1890 - -5:07:11 - KMT 1912 Feb # Kingston Mean Time + -5:07:10 - KMT 1912 Feb # Kingston Mean Time -5:00 - EST 1979 -5:00 US E%sT 2015 Nov Sun>=1 2:00 - -4:00 - AST + -4:00 - AST 2018 Mar 11 3:00 + -5:00 US E%sT # British Virgin Is # Virgin Is diff --git a/vendor/tzdata/pacificnew b/vendor/tzdata/pacificnew index 7349434..8403219 100644 --- a/vendor/tzdata/pacificnew +++ b/vendor/tzdata/pacificnew @@ -1,3 +1,5 @@ +# tzdb data for proposed US election time (this file is obsolete) + # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -19,7 +21,7 @@ ## Rule Twilite XXXX max uspres Nov Sun>=7 2:00 0 S ## Rule Twilite XXXX max nonpres Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] +# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL] ## Zone America/Los_Angeles-PET -8:00 US P%sT XXXX ## -8:00 Twilite P%sT diff --git a/vendor/tzdata/southamerica b/vendor/tzdata/southamerica index 5321451..9b679c6 100644 --- a/vendor/tzdata/southamerica +++ b/vendor/tzdata/southamerica @@ -1,3 +1,5 @@ +# tzdb data for South America and environs + # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -6,15 +8,15 @@ # tz@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. -# From Paul Eggert (2014-10-31): +# From Paul Eggert (2016-12-05): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), # San Diego: ACS Publications, Inc. (2003). # Unfortunately this book contains many errors and cites no sources. # -# Gwillim Law writes that a good source -# for recent time zone data is the International Air Transport +# Many years ago Gwillim Law wrote that a good source +# for time zone data was the International Air Transport # Association's Standard Schedules Information Manual (IATA SSIM), # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. Except where otherwise noted, @@ -22,34 +24,12 @@ # # For data circa 1899, a common source is: # Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. -# http://www.jstor.org/stable/1774359 -# -# Earlier editions of these tables used the North American style (e.g. ARST and -# ARDT for Argentine Standard and Daylight Time), but the following quote -# suggests that it's better to use European style (e.g. ART and ARST). -# I suggest the use of _Summer time_ instead of the more cumbersome -# _daylight-saving time_. _Summer time_ seems to be in general use -# in Europe and South America. -# -- E O Cutler, _New York Times_ (1937-02-14), quoted in -# H L Mencken, _The American Language: Supplement I_ (1960), p 466 -# -# Earlier editions of these tables also used the North American style -# for time zones in Brazil, but this was incorrect, as Brazilians say -# "summer time". Reinaldo Goulart, a São Paulo businessman active in -# the railroad sector, writes (1999-07-06): -# The subject of time zones is currently a matter of discussion/debate in -# Brazil. Let's say that "the Brasília time" is considered the -# "official time" because Brasília is the capital city. -# The other three time zones are called "Brasília time "minus one" or -# "plus one" or "plus two". As far as I know there is no such -# name/designation as "Eastern Time" or "Central Time". -# So I invented the following (English-language) abbreviations for now. -# Corrections are welcome! -# std dst -# -2:00 FNT FNST Fernando de Noronha -# -3:00 BRT BRST Brasília -# -4:00 AMT AMST Amazon -# -5:00 ACT ACST Acre +# https://www.jstor.org/stable/1774359 +# +# These tables use numeric abbreviations like -03 and -0330 for +# integer hour and minute UT offsets. Although earlier editions used +# alphabetic time zone abbreviations, these abbreviations were +# invented and did not reflect common practice. ############################################################################### @@ -69,28 +49,28 @@ # AR was chosen because they are the ISO letters that represent Argentina. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Arg 1930 only - Dec 1 0:00 1:00 S +Rule Arg 1930 only - Dec 1 0:00 1:00 - Rule Arg 1931 only - Apr 1 0:00 0 - -Rule Arg 1931 only - Oct 15 0:00 1:00 S +Rule Arg 1931 only - Oct 15 0:00 1:00 - Rule Arg 1932 1940 - Mar 1 0:00 0 - -Rule Arg 1932 1939 - Nov 1 0:00 1:00 S -Rule Arg 1940 only - Jul 1 0:00 1:00 S +Rule Arg 1932 1939 - Nov 1 0:00 1:00 - +Rule Arg 1940 only - Jul 1 0:00 1:00 - Rule Arg 1941 only - Jun 15 0:00 0 - -Rule Arg 1941 only - Oct 15 0:00 1:00 S +Rule Arg 1941 only - Oct 15 0:00 1:00 - Rule Arg 1943 only - Aug 1 0:00 0 - -Rule Arg 1943 only - Oct 15 0:00 1:00 S +Rule Arg 1943 only - Oct 15 0:00 1:00 - Rule Arg 1946 only - Mar 1 0:00 0 - -Rule Arg 1946 only - Oct 1 0:00 1:00 S +Rule Arg 1946 only - Oct 1 0:00 1:00 - Rule Arg 1963 only - Oct 1 0:00 0 - -Rule Arg 1963 only - Dec 15 0:00 1:00 S +Rule Arg 1963 only - Dec 15 0:00 1:00 - Rule Arg 1964 1966 - Mar 1 0:00 0 - -Rule Arg 1964 1966 - Oct 15 0:00 1:00 S +Rule Arg 1964 1966 - Oct 15 0:00 1:00 - Rule Arg 1967 only - Apr 2 0:00 0 - -Rule Arg 1967 1968 - Oct Sun>=1 0:00 1:00 S +Rule Arg 1967 1968 - Oct Sun>=1 0:00 1:00 - Rule Arg 1968 1969 - Apr Sun>=1 0:00 0 - -Rule Arg 1974 only - Jan 23 0:00 1:00 S +Rule Arg 1974 only - Jan 23 0:00 1:00 - Rule Arg 1974 only - May 1 0:00 0 - -Rule Arg 1988 only - Dec 1 0:00 1:00 S +Rule Arg 1988 only - Dec 1 0:00 1:00 - # # From Hernan G. Otero (1995-06-26): # These corrections were contributed by InterSoft Argentina S.A., @@ -98,7 +78,7 @@ Rule Arg 1988 only - Dec 1 0:00 1:00 S # Talleres de Hidrografía Naval Argentina # (Argentine Naval Hydrography Institute) Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 - -Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 S +Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 - # # From Hernan G. Otero (1995-06-26): # From this moment on, the law that mandated the daylight saving @@ -109,7 +89,7 @@ Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 S # On October 3, 1999, 0:00 local, Argentina implemented daylight savings time, # which did not result in the switch of a time zone, as they stayed 9 hours # from the International Date Line. -Rule Arg 1999 only - Oct Sun>=1 0:00 1:00 S +Rule Arg 1999 only - Oct Sun>=1 0:00 1:00 - # From Paul Eggert (2007-12-28): # DST was set to expire on March 5, not March 3, but since it was converted # to standard time on March 3 it's more convenient for us to pretend that @@ -212,9 +192,9 @@ Rule Arg 2000 only - Mar 3 0:00 0 - # la modificación del huso horario, ya que 2009 nos encuentra con # crecimiento en la producción y distribución energética." -Rule Arg 2007 only - Dec 30 0:00 1:00 S +Rule Arg 2007 only - Dec 30 0:00 1:00 - Rule Arg 2008 2009 - Mar Sun>=15 0:00 0 - -Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S +Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 - # From Mariano Absatz (2004-05-21): # Today it was officially published that the Province of Mendoza is changing @@ -224,12 +204,14 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S # It's Law No. 7,210. This change is due to a public power emergency, so for # now we'll assume it's for this year only. # -# From Paul Eggert (2014-08-09): +# From Paul Eggert (2018-01-31): # Hora de verano para la República Argentina # http://buenasiembra.com.ar/esoterismo/astrologia/hora-de-verano-de-la-republica-argentina-27.html # says that standard time in Argentina from 1894-10-31 # to 1920-05-01 was -4:16:48.25. Go with this more-precise value -# over Shanks & Pottenger. +# over Shanks & Pottenger. It is upward compatible with Milne, who +# says Córdoba time was -4:16:48.2. + # # From Mariano Absatz (2004-06-05): # These media articles from a major newspaper mostly cover the current state: @@ -287,8 +269,8 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S # # Es inminente que en San Luis atrasen una hora los relojes # (It is imminent in San Luis clocks one hour delay) -# http://www.lagaceta.com.ar/nota/253414/Economia/Es-inminente-que-en-San-Luis-atrasen-una-hora-los-relojes.html -# http://www.worldtimezone.net/dst_news/dst_news_argentina02.html +# https://www.lagaceta.com.ar/nota/253414/Economia/Es-inminente-que-en-San-Luis-atrasen-una-hora-los-relojes.html +# http://www.worldtimezone.com/dst_news/dst_news_argentina02.html # From Jesper Nørgaard Welen (2008-01-18): # The page of the San Luis provincial government @@ -384,12 +366,6 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S # # So I guess a new set of rules, besides "Arg", must be made and the last # America/Argentina/San_Luis entries should change to use these... -# -# I'm enclosing a patch that does what I say... regretfully, the San Luis -# timezone must be called "WART/WARST" even when most of the time (like, -# right now) WARST == ART... that is, since last Sunday, all the country -# is using UTC-3, but in my patch, San Luis calls it "WARST" and the rest -# of the country calls it "ART". # ... # From Alexander Krivenyshev (2010-04-09): @@ -409,30 +385,27 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S # rules...San Luis is still using "Western ARgentina Time" and it got # stuck on Summer daylight savings time even though the summer is over. -# From Paul Eggert (2013-09-05): +# From Paul Eggert (2018-01-23): # Perhaps San Luis operates on the legal fiction that it is at -04 -# with perpetual summer time, but ordinary usage typically seems to +# with perpetual daylight saving time, but ordinary usage typically seems to # just say it's at -03; see, for example, -# http://es.wikipedia.org/wiki/Hora_oficial_argentina +# https://es.wikipedia.org/wiki/Hora_oficial_argentina # We've documented similar situations as being plain changes to # standard time, so let's do that here too. This does not change UTC # offsets, only tm_isdst and the time zone abbreviations. One minor # plus is that this silences a zic complaint that there's no POSIX TZ -# setting for time stamps past 2038. - -# From Paul Eggert (2013-02-21): -# Milne says Córdoba time was -4:16:48.2. Round to the nearest second. +# setting for timestamps past 2038. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # # Buenos Aires (BA), Capital Federal (CF), Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May # Córdoba Mean Time - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 Arg AR%sT + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 Arg -03/-02 # # Córdoba (CB), Santa Fe (SF), Entre Ríos (ER), Corrientes (CN), Misiones (MN), # Chaco (CC), Formosa (FM), Santiago del Estero (SE) @@ -446,169 +419,169 @@ Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31 # Zone America/Argentina/Cordoba -4:16:48 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1991 Mar 3 - -4:00 - WART 1991 Oct 20 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 Arg AR%sT + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1991 Mar 3 + -4:00 - -04 1991 Oct 20 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 Arg -03/-02 # # Salta (SA), La Pampa (LP), Neuquén (NQ), Rio Negro (RN) Zone America/Argentina/Salta -4:21:40 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1991 Mar 3 - -4:00 - WART 1991 Oct 20 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 Arg AR%sT 2008 Oct 18 - -3:00 - ART + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1991 Mar 3 + -4:00 - -04 1991 Oct 20 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 Arg -03/-02 2008 Oct 18 + -3:00 - -03 # # Tucumán (TM) Zone America/Argentina/Tucuman -4:20:52 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1991 Mar 3 - -4:00 - WART 1991 Oct 20 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 - ART 2004 Jun 1 - -4:00 - WART 2004 Jun 13 - -3:00 Arg AR%sT + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1991 Mar 3 + -4:00 - -04 1991 Oct 20 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 - -03 2004 Jun 1 + -4:00 - -04 2004 Jun 13 + -3:00 Arg -03/-02 # # La Rioja (LR) Zone America/Argentina/La_Rioja -4:27:24 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1991 Mar 1 - -4:00 - WART 1991 May 7 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 - ART 2004 Jun 1 - -4:00 - WART 2004 Jun 20 - -3:00 Arg AR%sT 2008 Oct 18 - -3:00 - ART + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1991 Mar 1 + -4:00 - -04 1991 May 7 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 - -03 2004 Jun 1 + -4:00 - -04 2004 Jun 20 + -3:00 Arg -03/-02 2008 Oct 18 + -3:00 - -03 # # San Juan (SJ) Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1991 Mar 1 - -4:00 - WART 1991 May 7 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 - ART 2004 May 31 - -4:00 - WART 2004 Jul 25 - -3:00 Arg AR%sT 2008 Oct 18 - -3:00 - ART + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1991 Mar 1 + -4:00 - -04 1991 May 7 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 - -03 2004 May 31 + -4:00 - -04 2004 Jul 25 + -3:00 Arg -03/-02 2008 Oct 18 + -3:00 - -03 # # Jujuy (JY) Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1990 Mar 4 - -4:00 - WART 1990 Oct 28 - -4:00 1:00 WARST 1991 Mar 17 - -4:00 - WART 1991 Oct 6 - -3:00 1:00 ARST 1992 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 Arg AR%sT 2008 Oct 18 - -3:00 - ART + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1990 Mar 4 + -4:00 - -04 1990 Oct 28 + -4:00 1:00 -03 1991 Mar 17 + -4:00 - -04 1991 Oct 6 + -3:00 1:00 -02 1992 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 Arg -03/-02 2008 Oct 18 + -3:00 - -03 # # Catamarca (CT), Chubut (CH) Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1991 Mar 3 - -4:00 - WART 1991 Oct 20 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 - ART 2004 Jun 1 - -4:00 - WART 2004 Jun 20 - -3:00 Arg AR%sT 2008 Oct 18 - -3:00 - ART + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1991 Mar 3 + -4:00 - -04 1991 Oct 20 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 - -03 2004 Jun 1 + -4:00 - -04 2004 Jun 20 + -3:00 Arg -03/-02 2008 Oct 18 + -3:00 - -03 # # Mendoza (MZ) Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1990 Mar 4 - -4:00 - WART 1990 Oct 15 - -4:00 1:00 WARST 1991 Mar 1 - -4:00 - WART 1991 Oct 15 - -4:00 1:00 WARST 1992 Mar 1 - -4:00 - WART 1992 Oct 18 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 - ART 2004 May 23 - -4:00 - WART 2004 Sep 26 - -3:00 Arg AR%sT 2008 Oct 18 - -3:00 - ART + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1990 Mar 4 + -4:00 - -04 1990 Oct 15 + -4:00 1:00 -03 1991 Mar 1 + -4:00 - -04 1991 Oct 15 + -4:00 1:00 -03 1992 Mar 1 + -4:00 - -04 1992 Oct 18 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 - -03 2004 May 23 + -4:00 - -04 2004 Sep 26 + -3:00 Arg -03/-02 2008 Oct 18 + -3:00 - -03 # # San Luis (SL) Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 - -Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 S +Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 - Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31 -4:16:48 - CMT 1920 May - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1990 - -3:00 1:00 ARST 1990 Mar 14 - -4:00 - WART 1990 Oct 15 - -4:00 1:00 WARST 1991 Mar 1 - -4:00 - WART 1991 Jun 1 - -3:00 - ART 1999 Oct 3 - -4:00 1:00 WARST 2000 Mar 3 - -3:00 - ART 2004 May 31 - -4:00 - WART 2004 Jul 25 - -3:00 Arg AR%sT 2008 Jan 21 - -4:00 SanLuis WAR%sT 2009 Oct 11 - -3:00 - ART + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1990 + -3:00 1:00 -02 1990 Mar 14 + -4:00 - -04 1990 Oct 15 + -4:00 1:00 -03 1991 Mar 1 + -4:00 - -04 1991 Jun 1 + -3:00 - -03 1999 Oct 3 + -4:00 1:00 -03 2000 Mar 3 + -3:00 - -03 2004 May 31 + -4:00 - -04 2004 Jul 25 + -3:00 Arg -03/-02 2008 Jan 21 + -4:00 SanLuis -04/-03 2009 Oct 11 + -3:00 - -03 # # Santa Cruz (SC) Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31 - -4:16:48 - CMT 1920 May # Córdoba Mean Time - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 - ART 2004 Jun 1 - -4:00 - WART 2004 Jun 20 - -3:00 Arg AR%sT 2008 Oct 18 - -3:00 - ART + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 - -03 2004 Jun 1 + -4:00 - -04 2004 Jun 20 + -3:00 Arg -03/-02 2008 Oct 18 + -3:00 - -03 # # Tierra del Fuego, Antártida e Islas del Atlántico Sur (TF) Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31 - -4:16:48 - CMT 1920 May # Córdoba Mean Time - -4:00 - ART 1930 Dec - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1999 Oct 3 - -4:00 Arg AR%sT 2000 Mar 3 - -3:00 - ART 2004 May 30 - -4:00 - WART 2004 Jun 20 - -3:00 Arg AR%sT 2008 Oct 18 - -3:00 - ART + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1999 Oct 3 + -4:00 Arg -04/-03 2000 Mar 3 + -3:00 - -03 2004 May 30 + -4:00 - -04 2004 Jun 20 + -3:00 Arg -03/-02 2008 Oct 18 + -3:00 - -03 # Aruba Link America/Curacao America/Aruba # Bolivia -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/La_Paz -4:32:36 - LMT 1890 -4:32:36 - CMT 1931 Oct 15 # Calamarca MT - -4:32:36 1:00 BOST 1932 Mar 21 # Bolivia ST - -4:00 - BOT # Bolivia Time + -4:32:36 1:00 BST 1932 Mar 21 # Bolivia ST + -4:00 - -04 # Brazil @@ -744,7 +717,7 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # (Portuguese) # # We have a written a short article about it as well: -# http://www.timeanddate.com/news/time/brazil-dst-2008-2009.html +# https://www.timeanddate.com/news/time/brazil-dst-2008-2009.html # # From Alexander Krivenyshev (2011-10-04): # State Bahia will return to Daylight savings time this year after 8 years off. @@ -753,7 +726,7 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # In Portuguese: # http://g1.globo.com/bahia/noticia/2011/10/governador-jaques-wagner-confirma-horario-de-verao-na-bahia.html -# http://noticias.terra.com.br/brasil/noticias/0,,OI5390887-EI8139,00-Bahia+volta+a+ter+horario+de+verao+apos+oito+anos.html +# https://noticias.terra.com.br/brasil/noticias/0,,OI5390887-EI8139,00-Bahia+volta+a+ter+horario+de+verao+apos+oito+anos.html # From Guilherme Bernardes Rodrigues (2011-10-07): # There is news in the media, however there is still no decree about it. @@ -779,16 +752,16 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # From Rodrigo Severo (2012-10-16): # Tocantins state will have DST. -# http://noticias.terra.com.br/brasil/noticias/0,,OI6232536-EI306.html +# https://noticias.terra.com.br/brasil/noticias/0,,OI6232536-EI306.html # From Steffen Thorsen (2013-09-20): # Tocantins in Brazil is very likely not to observe DST from October.... # http://conexaoto.com.br/2013/09/18/ministerio-confirma-que-tocantins-esta-fora-do-horario-de-verao-em-2013-mas-falta-publicacao-de-decreto # We will keep this article updated when this is confirmed: -# http://www.timeanddate.com/news/time/brazil-starts-dst-2013.html +# https://www.timeanddate.com/news/time/brazil-starts-dst-2013.html # From Steffen Thorsen (2013-10-17): -# http://www.timeanddate.com/news/time/acre-amazonas-change-time-zone.html +# https://www.timeanddate.com/news/time/acre-amazonas-change-time-zone.html # Senator Jorge Viana announced that Acre will change time zone on November 10. # He did not specify the time of the change, nor if western parts of Amazonas # will change as well. @@ -799,14 +772,14 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Decree 20,466 (1931-10-01) # Decree 21,896 (1932-01-10) -Rule Brazil 1931 only - Oct 3 11:00 1:00 S +Rule Brazil 1931 only - Oct 3 11:00 1:00 - Rule Brazil 1932 1933 - Apr 1 0:00 0 - -Rule Brazil 1932 only - Oct 3 0:00 1:00 S +Rule Brazil 1932 only - Oct 3 0:00 1:00 - # Decree 23,195 (1933-10-10) # revoked DST. # Decree 27,496 (1949-11-24) # Decree 27,998 (1950-04-13) -Rule Brazil 1949 1952 - Dec 1 0:00 1:00 S +Rule Brazil 1949 1952 - Dec 1 0:00 1:00 - Rule Brazil 1950 only - Apr 16 1:00 0 - Rule Brazil 1951 1952 - Apr 1 0:00 0 - # Decree 32,308 (1953-02-24) @@ -818,51 +791,51 @@ Rule Brazil 1953 only - Mar 1 0:00 0 - # in SP, RJ, GB, MG, ES, due to the prolongation of the drought. # Decree 53,071 (1963-12-03) # extended the above decree to all of the national territory on 12-09. -Rule Brazil 1963 only - Dec 9 0:00 1:00 S +Rule Brazil 1963 only - Dec 9 0:00 1:00 - # Decree 53,604 (1964-02-25) # extended summer time by one day to 1964-03-01 00:00 (start of school). Rule Brazil 1964 only - Mar 1 0:00 0 - # Decree 55,639 (1965-01-27) -Rule Brazil 1965 only - Jan 31 0:00 1:00 S +Rule Brazil 1965 only - Jan 31 0:00 1:00 - Rule Brazil 1965 only - Mar 31 0:00 0 - # Decree 57,303 (1965-11-22) -Rule Brazil 1965 only - Dec 1 0:00 1:00 S +Rule Brazil 1965 only - Dec 1 0:00 1:00 - # Decree 57,843 (1966-02-18) Rule Brazil 1966 1968 - Mar 1 0:00 0 - -Rule Brazil 1966 1967 - Nov 1 0:00 1:00 S +Rule Brazil 1966 1967 - Nov 1 0:00 1:00 - # Decree 63,429 (1968-10-15) # revoked DST. # Decree 91,698 (1985-09-27) -Rule Brazil 1985 only - Nov 2 0:00 1:00 S +Rule Brazil 1985 only - Nov 2 0:00 1:00 - # Decree 92,310 (1986-01-21) # Decree 92,463 (1986-03-13) Rule Brazil 1986 only - Mar 15 0:00 0 - # Decree 93,316 (1986-10-01) -Rule Brazil 1986 only - Oct 25 0:00 1:00 S +Rule Brazil 1986 only - Oct 25 0:00 1:00 - Rule Brazil 1987 only - Feb 14 0:00 0 - # Decree 94,922 (1987-09-22) -Rule Brazil 1987 only - Oct 25 0:00 1:00 S +Rule Brazil 1987 only - Oct 25 0:00 1:00 - Rule Brazil 1988 only - Feb 7 0:00 0 - # Decree 96,676 (1988-09-12) # except for the states of AC, AM, PA, RR, RO, and AP (then a territory) -Rule Brazil 1988 only - Oct 16 0:00 1:00 S +Rule Brazil 1988 only - Oct 16 0:00 1:00 - Rule Brazil 1989 only - Jan 29 0:00 0 - # Decree 98,077 (1989-08-21) # with the same exceptions -Rule Brazil 1989 only - Oct 15 0:00 1:00 S +Rule Brazil 1989 only - Oct 15 0:00 1:00 - Rule Brazil 1990 only - Feb 11 0:00 0 - # Decree 99,530 (1990-09-17) # adopted by RS, SC, PR, SP, RJ, ES, MG, GO, MS, DF. # Decree 99,629 (1990-10-19) adds BA, MT. -Rule Brazil 1990 only - Oct 21 0:00 1:00 S +Rule Brazil 1990 only - Oct 21 0:00 1:00 - Rule Brazil 1991 only - Feb 17 0:00 0 - # Unnumbered decree (1991-09-25) # adopted by RS, SC, PR, SP, RJ, ES, MG, BA, GO, MT, MS, DF. -Rule Brazil 1991 only - Oct 20 0:00 1:00 S +Rule Brazil 1991 only - Oct 20 0:00 1:00 - Rule Brazil 1992 only - Feb 9 0:00 0 - # Unnumbered decree (1992-10-16) # adopted by same states. -Rule Brazil 1992 only - Oct 25 0:00 1:00 S +Rule Brazil 1992 only - Oct 25 0:00 1:00 - Rule Brazil 1993 only - Jan 31 0:00 0 - # Decree 942 (1993-09-28) # adopted by same states, plus AM. @@ -872,12 +845,12 @@ Rule Brazil 1993 only - Jan 31 0:00 0 - # adopted by same states, plus MT and TO. # Decree 1,674 (1995-10-13) # adds AL, SE. -Rule Brazil 1993 1995 - Oct Sun>=11 0:00 1:00 S +Rule Brazil 1993 1995 - Oct Sun>=11 0:00 1:00 - Rule Brazil 1994 1995 - Feb Sun>=15 0:00 0 - Rule Brazil 1996 only - Feb 11 0:00 0 - # Decree 2,000 (1996-09-04) # adopted by same states, minus AL, SE. -Rule Brazil 1996 only - Oct 6 0:00 1:00 S +Rule Brazil 1996 only - Oct 6 0:00 1:00 - Rule Brazil 1997 only - Feb 16 0:00 0 - # From Daniel C. Sobral (1998-02-12): # In 1997, the DS began on October 6. The stated reason was that @@ -887,19 +860,19 @@ Rule Brazil 1997 only - Feb 16 0:00 0 - # to help dealing with the shortages of electric power. # # Decree 2,317 (1997-09-04), adopted by same states. -Rule Brazil 1997 only - Oct 6 0:00 1:00 S +Rule Brazil 1997 only - Oct 6 0:00 1:00 - # Decree 2,495 # (1998-02-10) Rule Brazil 1998 only - Mar 1 0:00 0 - # Decree 2,780 (1998-09-11) # adopted by the same states as before. -Rule Brazil 1998 only - Oct 11 0:00 1:00 S +Rule Brazil 1998 only - Oct 11 0:00 1:00 - Rule Brazil 1999 only - Feb 21 0:00 0 - # Decree 3,150 # (1999-08-23) adopted by same states. # Decree 3,188 (1999-09-30) # adds SE, AL, PB, PE, RN, CE, PI, MA and RR. -Rule Brazil 1999 only - Oct 3 0:00 1:00 S +Rule Brazil 1999 only - Oct 3 0:00 1:00 - Rule Brazil 2000 only - Feb 27 0:00 0 - # Decree 3,592 (2000-09-06) # adopted by the same states as before. @@ -909,63 +882,82 @@ Rule Brazil 2000 only - Feb 27 0:00 0 - # repeals DST in SE, AL, PB, RN, CE, PI and MA, effective 2000-10-22 00:00. # Decree 3,916 # (2001-09-13) reestablishes DST in AL, CE, MA, PB, PE, PI, RN, SE. -Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 S +Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 - Rule Brazil 2001 2006 - Feb Sun>=15 0:00 0 - # Decree 4,399 (2002-10-01) repeals DST in AL, CE, MA, PB, PE, PI, RN, SE. # 4,399 -Rule Brazil 2002 only - Nov 3 0:00 1:00 S +Rule Brazil 2002 only - Nov 3 0:00 1:00 - # Decree 4,844 (2003-09-24; corrected 2003-09-26) repeals DST in BA, MT, TO. # 4,844 -Rule Brazil 2003 only - Oct 19 0:00 1:00 S +Rule Brazil 2003 only - Oct 19 0:00 1:00 - # Decree 5,223 (2004-10-01) reestablishes DST in MT. # 5,223 -Rule Brazil 2004 only - Nov 2 0:00 1:00 S +Rule Brazil 2004 only - Nov 2 0:00 1:00 - # Decree 5,539 (2005-09-19), # adopted by the same states as before. -Rule Brazil 2005 only - Oct 16 0:00 1:00 S +Rule Brazil 2005 only - Oct 16 0:00 1:00 - # Decree 5,920 (2006-10-03), # adopted by the same states as before. -Rule Brazil 2006 only - Nov 5 0:00 1:00 S +Rule Brazil 2006 only - Nov 5 0:00 1:00 - Rule Brazil 2007 only - Feb 25 0:00 0 - # Decree 6,212 (2007-09-26), # adopted by the same states as before. -Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 S +Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 - # From Frederico A. C. Neves (2008-09-10): # According to this decree # http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6558.htm # [t]he DST period in Brazil now on will be from the 3rd Oct Sunday to the # 3rd Feb Sunday. There is an exception on the return date when this is # the Carnival Sunday then the return date will be the next Sunday... -Rule Brazil 2008 max - Oct Sun>=15 0:00 1:00 S +Rule Brazil 2008 2017 - Oct Sun>=15 0:00 1:00 - Rule Brazil 2008 2011 - Feb Sun>=15 0:00 0 - +# Decree 7,584 (2011-10-13) +# added Bahia. Rule Brazil 2012 only - Feb Sun>=22 0:00 0 - +# Decree 7,826 (2012-10-15) +# removed Bahia and added Tocantins. +# Decree 8,112 (2013-09-30) +# removed Tocantins. Rule Brazil 2013 2014 - Feb Sun>=15 0:00 0 - Rule Brazil 2015 only - Feb Sun>=22 0:00 0 - -Rule Brazil 2016 2022 - Feb Sun>=15 0:00 0 - -Rule Brazil 2023 only - Feb Sun>=22 0:00 0 - -Rule Brazil 2024 2025 - Feb Sun>=15 0:00 0 - -Rule Brazil 2026 only - Feb Sun>=22 0:00 0 - -Rule Brazil 2027 2033 - Feb Sun>=15 0:00 0 - -Rule Brazil 2034 only - Feb Sun>=22 0:00 0 - -Rule Brazil 2035 2036 - Feb Sun>=15 0:00 0 - -Rule Brazil 2037 only - Feb Sun>=22 0:00 0 - -# From Arthur David Olson (2008-09-29): -# The next is wrong in some years but is better than nothing. -Rule Brazil 2038 max - Feb Sun>=15 0:00 0 - - -# The latest ruleset listed above says that the following states observe DST: +Rule Brazil 2016 2019 - Feb Sun>=15 0:00 0 - +# From Steffen Thorsen (2017-12-18): +# According to many media sources, next year's DST start in Brazil will move to +# the first Sunday of November +# ... https://www.timeanddate.com/news/time/brazil-delays-dst-2018.html +# From Steffen Thorsen (2017-12-20): +# http://www.planalto.gov.br/ccivil_03/_ato2015-2018/2017/decreto/D9242.htm +# From Fábio Gomes (2018-10-04): +# The Brazilian president just announced a new change on this year DST. +# It was scheduled to start on November 4th and it was changed to November 18th. +# From Rodrigo Brüning Wessler (2018-10-15): +# The Brazilian government just announced that the change in DST was +# canceled.... Maybe the president Michel Temer also woke up one hour +# earlier today. :) +Rule Brazil 2018 only - Nov Sun>=1 0:00 1:00 - +# The last ruleset listed above says that the following states observed DST: # DF, ES, GO, MG, MS, MT, PR, RJ, RS, SC, SP. +# +# From Steffen Thorsen (2019-04-05): +# According to multiple sources the Brazilian president wants to get rid of DST. +# https://gmconline.com.br/noticias/politica/bolsonaro-horario-de-verao-deve-acabar-este-ano +# https://g1.globo.com/economia/noticia/2019/04/05/governo-anuncia-fim-do-horario-de-verao.ghtml +# From Marcus Diniz (2019-04-25): +# Brazil no longer has DST changes - decree signed today +# https://g1.globo.com/politica/noticia/2019/04/25/bolsonaro-assina-decreto-que-acaba-com-o-horario-de-verao.ghtml +# From Daniel Soares de Oliveira (2019-04-26): +# http://www.planalto.gov.br/ccivil_03/_Ato2019-2022/2019/Decreto/D9772.htm -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] # # Fernando de Noronha (administratively part of PE) Zone America/Noronha -2:09:40 - LMT 1914 - -2:00 Brazil FN%sT 1990 Sep 17 - -2:00 - FNT 1999 Sep 30 - -2:00 Brazil FN%sT 2000 Oct 15 - -2:00 - FNT 2001 Sep 13 - -2:00 Brazil FN%sT 2002 Oct 1 - -2:00 - FNT + -2:00 Brazil -02/-01 1990 Sep 17 + -2:00 - -02 1999 Sep 30 + -2:00 Brazil -02/-01 2000 Oct 15 + -2:00 - -02 2001 Sep 13 + -2:00 Brazil -02/-01 2002 Oct 1 + -2:00 - -02 # Other Atlantic islands have no permanent settlement. # These include Trindade and Martim Vaz (administratively part of ES), # Rocas Atoll (RN), and the St Peter and St Paul Archipelago (PE). @@ -978,125 +970,125 @@ Zone America/Noronha -2:09:40 - LMT 1914 # In the north a very small part from the river Javary (now Jari I guess, # the border with Amapá) to the Amazon, then to the Xingu. Zone America/Belem -3:13:56 - LMT 1914 - -3:00 Brazil BR%sT 1988 Sep 12 - -3:00 - BRT + -3:00 Brazil -03/-02 1988 Sep 12 + -3:00 - -03 # # west Pará (PA) # West Pará includes Altamira, Óbidos, Prainha, Oriximiná, and Santarém. Zone America/Santarem -3:38:48 - LMT 1914 - -4:00 Brazil AM%sT 1988 Sep 12 - -4:00 - AMT 2008 Jun 24 0:00 - -3:00 - BRT + -4:00 Brazil -04/-03 1988 Sep 12 + -4:00 - -04 2008 Jun 24 0:00 + -3:00 - -03 # # Maranhão (MA), Piauí (PI), Ceará (CE), Rio Grande do Norte (RN), # Paraíba (PB) Zone America/Fortaleza -2:34:00 - LMT 1914 - -3:00 Brazil BR%sT 1990 Sep 17 - -3:00 - BRT 1999 Sep 30 - -3:00 Brazil BR%sT 2000 Oct 22 - -3:00 - BRT 2001 Sep 13 - -3:00 Brazil BR%sT 2002 Oct 1 - -3:00 - BRT + -3:00 Brazil -03/-02 1990 Sep 17 + -3:00 - -03 1999 Sep 30 + -3:00 Brazil -03/-02 2000 Oct 22 + -3:00 - -03 2001 Sep 13 + -3:00 Brazil -03/-02 2002 Oct 1 + -3:00 - -03 # # Pernambuco (PE) (except Atlantic islands) Zone America/Recife -2:19:36 - LMT 1914 - -3:00 Brazil BR%sT 1990 Sep 17 - -3:00 - BRT 1999 Sep 30 - -3:00 Brazil BR%sT 2000 Oct 15 - -3:00 - BRT 2001 Sep 13 - -3:00 Brazil BR%sT 2002 Oct 1 - -3:00 - BRT + -3:00 Brazil -03/-02 1990 Sep 17 + -3:00 - -03 1999 Sep 30 + -3:00 Brazil -03/-02 2000 Oct 15 + -3:00 - -03 2001 Sep 13 + -3:00 Brazil -03/-02 2002 Oct 1 + -3:00 - -03 # # Tocantins (TO) Zone America/Araguaina -3:12:48 - LMT 1914 - -3:00 Brazil BR%sT 1990 Sep 17 - -3:00 - BRT 1995 Sep 14 - -3:00 Brazil BR%sT 2003 Sep 24 - -3:00 - BRT 2012 Oct 21 - -3:00 Brazil BR%sT 2013 Sep - -3:00 - BRT + -3:00 Brazil -03/-02 1990 Sep 17 + -3:00 - -03 1995 Sep 14 + -3:00 Brazil -03/-02 2003 Sep 24 + -3:00 - -03 2012 Oct 21 + -3:00 Brazil -03/-02 2013 Sep + -3:00 - -03 # # Alagoas (AL), Sergipe (SE) Zone America/Maceio -2:22:52 - LMT 1914 - -3:00 Brazil BR%sT 1990 Sep 17 - -3:00 - BRT 1995 Oct 13 - -3:00 Brazil BR%sT 1996 Sep 4 - -3:00 - BRT 1999 Sep 30 - -3:00 Brazil BR%sT 2000 Oct 22 - -3:00 - BRT 2001 Sep 13 - -3:00 Brazil BR%sT 2002 Oct 1 - -3:00 - BRT + -3:00 Brazil -03/-02 1990 Sep 17 + -3:00 - -03 1995 Oct 13 + -3:00 Brazil -03/-02 1996 Sep 4 + -3:00 - -03 1999 Sep 30 + -3:00 Brazil -03/-02 2000 Oct 22 + -3:00 - -03 2001 Sep 13 + -3:00 Brazil -03/-02 2002 Oct 1 + -3:00 - -03 # # Bahia (BA) # There are too many Salvadors elsewhere, so use America/Bahia instead # of America/Salvador. Zone America/Bahia -2:34:04 - LMT 1914 - -3:00 Brazil BR%sT 2003 Sep 24 - -3:00 - BRT 2011 Oct 16 - -3:00 Brazil BR%sT 2012 Oct 21 - -3:00 - BRT + -3:00 Brazil -03/-02 2003 Sep 24 + -3:00 - -03 2011 Oct 16 + -3:00 Brazil -03/-02 2012 Oct 21 + -3:00 - -03 # # Goiás (GO), Distrito Federal (DF), Minas Gerais (MG), # Espírito Santo (ES), Rio de Janeiro (RJ), São Paulo (SP), Paraná (PR), # Santa Catarina (SC), Rio Grande do Sul (RS) Zone America/Sao_Paulo -3:06:28 - LMT 1914 - -3:00 Brazil BR%sT 1963 Oct 23 0:00 - -3:00 1:00 BRST 1964 - -3:00 Brazil BR%sT + -3:00 Brazil -03/-02 1963 Oct 23 0:00 + -3:00 1:00 -02 1964 + -3:00 Brazil -03/-02 # # Mato Grosso do Sul (MS) Zone America/Campo_Grande -3:38:28 - LMT 1914 - -4:00 Brazil AM%sT + -4:00 Brazil -04/-03 # # Mato Grosso (MT) Zone America/Cuiaba -3:44:20 - LMT 1914 - -4:00 Brazil AM%sT 2003 Sep 24 - -4:00 - AMT 2004 Oct 1 - -4:00 Brazil AM%sT + -4:00 Brazil -04/-03 2003 Sep 24 + -4:00 - -04 2004 Oct 1 + -4:00 Brazil -04/-03 # # Rondônia (RO) Zone America/Porto_Velho -4:15:36 - LMT 1914 - -4:00 Brazil AM%sT 1988 Sep 12 - -4:00 - AMT + -4:00 Brazil -04/-03 1988 Sep 12 + -4:00 - -04 # # Roraima (RR) Zone America/Boa_Vista -4:02:40 - LMT 1914 - -4:00 Brazil AM%sT 1988 Sep 12 - -4:00 - AMT 1999 Sep 30 - -4:00 Brazil AM%sT 2000 Oct 15 - -4:00 - AMT + -4:00 Brazil -04/-03 1988 Sep 12 + -4:00 - -04 1999 Sep 30 + -4:00 Brazil -04/-03 2000 Oct 15 + -4:00 - -04 # # east Amazonas (AM): Boca do Acre, Jutaí, Manaus, Floriano Peixoto # The great circle line from Tabatinga to Porto Acre divides # east from west Amazonas. Zone America/Manaus -4:00:04 - LMT 1914 - -4:00 Brazil AM%sT 1988 Sep 12 - -4:00 - AMT 1993 Sep 28 - -4:00 Brazil AM%sT 1994 Sep 22 - -4:00 - AMT + -4:00 Brazil -04/-03 1988 Sep 12 + -4:00 - -04 1993 Sep 28 + -4:00 Brazil -04/-03 1994 Sep 22 + -4:00 - -04 # # west Amazonas (AM): Atalaia do Norte, Boca do Maoco, Benjamin Constant, # Eirunepé, Envira, Ipixuna Zone America/Eirunepe -4:39:28 - LMT 1914 - -5:00 Brazil AC%sT 1988 Sep 12 - -5:00 - ACT 1993 Sep 28 - -5:00 Brazil AC%sT 1994 Sep 22 - -5:00 - ACT 2008 Jun 24 0:00 - -4:00 - AMT 2013 Nov 10 - -5:00 - ACT + -5:00 Brazil -05/-04 1988 Sep 12 + -5:00 - -05 1993 Sep 28 + -5:00 Brazil -05/-04 1994 Sep 22 + -5:00 - -05 2008 Jun 24 0:00 + -4:00 - -04 2013 Nov 10 + -5:00 - -05 # # Acre (AC) Zone America/Rio_Branco -4:31:12 - LMT 1914 - -5:00 Brazil AC%sT 1988 Sep 12 - -5:00 - ACT 2008 Jun 24 0:00 - -4:00 - AMT 2013 Nov 10 - -5:00 - ACT + -5:00 Brazil -05/-04 1988 Sep 12 + -5:00 - -05 2008 Jun 24 0:00 + -4:00 - -04 2013 Nov 10 + -5:00 - -05 # Chile # From Paul Eggert (2015-04-03): # Shanks & Pottenger says America/Santiago introduced standard time in -# 1890 and rounds its UTC offset to 70W40; guess that in practice this +# 1890 and rounds its UT offset to 70W40; guess that in practice this # was the same offset as in 1916-1919. It also says Pacific/Easter # standardized on 109W22 in 1890; assume this didn't change the clocks. # @@ -1104,18 +1096,18 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 # the following source, cited by Oscar van Vlijmen (2006-10-08): # [1] Chile Law # http://www.webexhibits.org/daylightsaving/chile.html -# This contains a copy of a this official table: +# This contains a copy of this official table: # Cambios en la hora oficial de Chile desde 1900 (retrieved 2008-03-30) -# http://web.archive.org/web/20080330200901/http://www.horaoficial.cl/cambio.htm +# https://web.archive.org/web/20080330200901/http://www.horaoficial.cl/cambio.htm # [1] needs several corrections, though. # # The first set of corrections is from: # [2] History of the Official Time of Chile # http://www.horaoficial.cl/ing/horaof_ing.html (retrieved 2012-03-06). See: -# http://web.archive.org/web/20120306042032/http://www.horaoficial.cl/ing/horaof_ing.html +# https://web.archive.org/web/20120306042032/http://www.horaoficial.cl/ing/horaof_ing.html # This is an English translation of: # Historia de la hora oficial de Chile (retrieved 2012-10-24). See: -# http://web.archive.org/web/20121024234627/http://www.horaoficial.cl/horaof.htm +# https://web.archive.org/web/20121024234627/http://www.horaoficial.cl/horaof.htm # A fancier Spanish version (requiring mouse-clicking) is at: # http://www.horaoficial.cl/historia_hora.html # Conflicts between [1] and [2] were resolved as follows: @@ -1235,29 +1227,60 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 # to mean 24:00 mainland time, not 24:00 local time, so that Easter # Island is always two hours behind the mainland. +# From Juan Correa (2016-12-04): +# Magallanes region ... will keep DST (UTC -3) all year round.... +# http://www.soychile.cl/Santiago/Sociedad/2016/12/04/433428/Bachelet-firmo-el-decreto-para-establecer-un-horario-unico-para-la-Region-de-Magallanes.aspx +# From Deborah Goldsmith (2017-01-19): +# http://www.diariooficial.interior.gob.cl/publicaciones/2017/01/17/41660/01/1169626.pdf + +# From Juan Correa (2018-08-13): +# As of moments ago, the Ministry of Energy in Chile has announced the new +# schema for DST. ... Announcement in video (in Spanish): +# https://twitter.com/MinEnergia/status/1029000399129374720 +# From Yonathan Dossow (2018-08-13): +# The video says "first Saturday of September", we all know it means Sunday at +# midnight. +# From Tim Parenti (2018-08-13): +# Translating the captions on the video at 0:44-0:55, "We want to announce as +# Government that from 2019, Winter Time will be increased to 5 months, between +# the first Saturday of April and the first Saturday of September." +# At 2:08-2:20, "The Magallanes region will maintain its current time, as +# decided by the citizens during 2017, but our Government will promote a +# regional dialogue table to gather their opinion on this matter." +# https://twitter.com/MinEnergia/status/1029009354001973248 +# "We will keep the new time policy unchanged for at least the next 4 years." +# So we extend the new rules on Saturdays at 24:00 mainland time indefinitely. +# From Juan Correa (2019-02-04): +# http://www.diariooficial.interior.gob.cl/publicaciones/2018/11/23/42212/01/1498738.pdf +# From Paul Eggert (2019-09-01): +# The above says the Magallanes exception expires 2022-04-02 at 24:00, +# so in theory, they will revert to -04/-03 after that. +# For now, assume that they will not revert, +# since they have extended the expiration date once already. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Chile 1927 1931 - Sep 1 0:00 1:00 S +Rule Chile 1927 1931 - Sep 1 0:00 1:00 - Rule Chile 1928 1932 - Apr 1 0:00 0 - -Rule Chile 1968 only - Nov 3 4:00u 1:00 S +Rule Chile 1968 only - Nov 3 4:00u 1:00 - Rule Chile 1969 only - Mar 30 3:00u 0 - -Rule Chile 1969 only - Nov 23 4:00u 1:00 S +Rule Chile 1969 only - Nov 23 4:00u 1:00 - Rule Chile 1970 only - Mar 29 3:00u 0 - Rule Chile 1971 only - Mar 14 3:00u 0 - -Rule Chile 1970 1972 - Oct Sun>=9 4:00u 1:00 S +Rule Chile 1970 1972 - Oct Sun>=9 4:00u 1:00 - Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 - -Rule Chile 1973 only - Sep 30 4:00u 1:00 S -Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S +Rule Chile 1973 only - Sep 30 4:00u 1:00 - +Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 - Rule Chile 1987 only - Apr 12 3:00u 0 - Rule Chile 1988 1990 - Mar Sun>=9 3:00u 0 - -Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 S -Rule Chile 1990 only - Sep 16 4:00u 1:00 S +Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 - +Rule Chile 1990 only - Sep 16 4:00u 1:00 - Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 - -Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S +Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 - Rule Chile 1997 only - Mar 30 3:00u 0 - Rule Chile 1998 only - Mar Sun>=9 3:00u 0 - -Rule Chile 1998 only - Sep 27 4:00u 1:00 S +Rule Chile 1998 only - Sep 27 4:00u 1:00 - Rule Chile 1999 only - Apr 4 3:00u 0 - -Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 S +Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 - Rule Chile 2000 2007 - Mar Sun>=9 3:00u 0 - # N.B.: the end of March 29 in Chile is March 30 in Universal time, # which is used below in specifying the transition. @@ -1265,32 +1288,47 @@ Rule Chile 2008 only - Mar 30 3:00u 0 - Rule Chile 2009 only - Mar Sun>=9 3:00u 0 - Rule Chile 2010 only - Apr Sun>=1 3:00u 0 - Rule Chile 2011 only - May Sun>=2 3:00u 0 - -Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 S +Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 - Rule Chile 2012 2014 - Apr Sun>=23 3:00u 0 - -Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 S -Rule Chile 2016 max - May Sun>=9 3:00u 0 - -Rule Chile 2016 max - Aug Sun>=9 4:00u 1:00 S +Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 - +Rule Chile 2016 2018 - May Sun>=9 3:00u 0 - +Rule Chile 2016 2018 - Aug Sun>=9 4:00u 1:00 - +Rule Chile 2019 max - Apr Sun>=2 3:00u 0 - +Rule Chile 2019 max - Sep Sun>=2 4:00u 1:00 - # IATA SSIM anomalies: (1992-02) says 1992-03-14; # (1996-09) says 1998-03-08. Ignore these. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Santiago -4:42:46 - LMT 1890 -4:42:46 - SMT 1910 Jan 10 # Santiago Mean Time - -5:00 - CLT 1916 Jul 1 # Chile Time + -5:00 - -05 1916 Jul 1 -4:42:46 - SMT 1918 Sep 10 - -4:00 - CLT 1919 Jul 1 + -4:00 - -04 1919 Jul 1 -4:42:46 - SMT 1927 Sep 1 - -5:00 Chile CL%sT 1932 Sep 1 - -4:00 - CLT 1942 Jun 1 - -5:00 - CLT 1942 Aug 1 - -4:00 - CLT 1946 Jul 15 - -4:00 1:00 CLST 1946 Sep 1 # central Chile - -4:00 - CLT 1947 Apr 1 - -5:00 - CLT 1947 May 21 23:00 - -4:00 Chile CL%sT + -5:00 Chile -05/-04 1932 Sep 1 + -4:00 - -04 1942 Jun 1 + -5:00 - -05 1942 Aug 1 + -4:00 - -04 1946 Jul 15 + -4:00 1:00 -03 1946 Sep 1 # central Chile + -4:00 - -04 1947 Apr 1 + -5:00 - -05 1947 May 21 23:00 + -4:00 Chile -04/-03 +Zone America/Punta_Arenas -4:43:40 - LMT 1890 + -4:42:46 - SMT 1910 Jan 10 + -5:00 - -05 1916 Jul 1 + -4:42:46 - SMT 1918 Sep 10 + -4:00 - -04 1919 Jul 1 + -4:42:46 - SMT 1927 Sep 1 + -5:00 Chile -05/-04 1932 Sep 1 + -4:00 - -04 1942 Jun 1 + -5:00 - -05 1942 Aug 1 + -4:00 - -04 1947 Apr 1 + -5:00 - -05 1947 May 21 23:00 + -4:00 Chile -04/-03 2016 Dec 4 + -3:00 - -03 Zone Pacific/Easter -7:17:28 - LMT 1890 -7:17:28 - EMT 1932 Sep # Easter Mean Time - -7:00 Chile EAS%sT 1982 Mar 14 3:00u # Easter Time - -6:00 Chile EAS%sT + -7:00 Chile -07/-06 1982 Mar 14 3:00u # Easter Time + -6:00 Chile -06/-05 # # Salas y Gómez Island is uninhabited. # Other Chilean locations, including Juan Fernández Is, Desventuradas Is, @@ -1308,11 +1346,12 @@ Zone Pacific/Easter -7:17:28 - LMT 1890 # Palmer has followed Chile. Prior to that, before the Falklands War, # Palmer used to be supplied from Argentina. # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Antarctica/Palmer 0 - -00 1965 - -4:00 Arg AR%sT 1969 Oct 5 - -3:00 Arg AR%sT 1982 May - -4:00 Chile CL%sT + -4:00 Arg -04/-03 1969 Oct 5 + -3:00 Arg -03/-02 1982 May + -4:00 Chile -04/-03 2016 Dec 4 + -3:00 - -03 # Colombia @@ -1320,12 +1359,12 @@ Zone Antarctica/Palmer 0 - -00 1965 # "A variation of fifteen minutes in the public clocks of Bogota is not rare." # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule CO 1992 only - May 3 0:00 1:00 S +Rule CO 1992 only - May 3 0:00 1:00 - Rule CO 1993 only - Apr 4 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 -4:56:16 - BMT 1914 Nov 23 # Bogotá Mean Time - -5:00 CO CO%sT # Colombia Time + -5:00 CO -05/-04 # Malpelo, Providencia, San Andres # no information; probably like America/Bogota @@ -1347,9 +1386,9 @@ Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 # Netherlands as Kingdom Islands. This won't affect their time zones # though, as far as we know. # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Curacao -4:35:47 - LMT 1912 Feb 12 # Willemstad - -4:30 - ANT 1965 # Netherlands Antilles Time + -4:30 - -0430 1965 -4:00 - AST # From Arthur David Olson (2011-06-15): @@ -1364,19 +1403,32 @@ Link America/Curacao America/Kralendijk # Caribbean Netherlands # # Milne says the Central and South American Telegraph Company used -5:24:15. # -# From Paul Eggert (2007-03-04): -# Apparently Ecuador had a failed experiment with DST in 1992. -# (2007-02-27) and -# (2006-11-06) both -# talk about "hora Sixto". Leave this alone for now, as we have no data. +# From Alois Treindl (2016-12-15): +# https://www.elcomercio.com/actualidad/hora-sixto-1993.html +# ... Whether the law applied also to Galápagos, I do not know. +# From Paul Eggert (2016-12-15): +# https://www.elcomercio.com/afull/modificacion-husohorario-ecuador-presidentes-decreto.html +# This says President Sixto Durán Ballén signed decree No. 285, which +# established DST from 1992-11-28 to 1993-02-05; it does not give transition +# times. The people called it "hora de Sixto" ("Sixto hour"). The change did +# not go over well; a popular song "Qué hora es" by Jaime Guevara had lyrics +# that included "Amanecía en mitad de la noche, los guaguas iban a clase sin +# sol" ("It was dawning in the middle of the night, the buses went to class +# without sun"). Although Ballén's campaign slogan was "Ni un paso atrás" +# (Not one step back), the clocks went back in 1993 and the experiment was not +# repeated. For now, assume transitions were at 00:00 local time country-wide. # -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Ecuador 1992 only - Nov 28 0:00 1:00 - +Rule Ecuador 1993 only - Feb 5 0:00 0 - +# +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Guayaquil -5:19:20 - LMT 1890 -5:14:00 - QMT 1931 # Quito Mean Time - -5:00 - ECT # Ecuador Time + -5:00 Ecuador -05/-04 Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno - -5:00 - ECT 1986 - -6:00 - GALT # Galápagos Time + -5:00 - -05 1986 + -6:00 Ecuador -06/-05 # Falklands @@ -1457,44 +1509,43 @@ Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno # the maintainers of the database to inform them we're adopting # the same policy this year and suggest recommendations for future years. # -# For now we will assume permanent summer time for the Falklands +# For now we will assume permanent -03 for the Falklands # until advised differently (to apply for 2012 and beyond, after the 2011 # experiment was apparently successful.) # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 S +Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 - Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 - -Rule Falk 1939 only - Oct 1 0:00 1:00 S -Rule Falk 1940 1942 - Sep lastSun 0:00 1:00 S +Rule Falk 1939 only - Oct 1 0:00 1:00 - +Rule Falk 1940 1942 - Sep lastSun 0:00 1:00 - Rule Falk 1943 only - Jan 1 0:00 0 - -Rule Falk 1983 only - Sep lastSun 0:00 1:00 S +Rule Falk 1983 only - Sep lastSun 0:00 1:00 - Rule Falk 1984 1985 - Apr lastSun 0:00 0 - -Rule Falk 1984 only - Sep 16 0:00 1:00 S -Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 S +Rule Falk 1984 only - Sep 16 0:00 1:00 - +Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 - Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 - Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 - -Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 S -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 - +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/Stanley -3:51:24 - LMT 1890 -3:51:24 - SMT 1912 Mar 12 # Stanley Mean Time - -4:00 Falk FK%sT 1983 May # Falkland Is Time - -3:00 Falk FK%sT 1985 Sep 15 - -4:00 Falk FK%sT 2010 Sep 5 2:00 - -3:00 - FKST + -4:00 Falk -04/-03 1983 May + -3:00 Falk -03/-02 1985 Sep 15 + -4:00 Falk -04/-03 2010 Sep 5 2:00 + -3:00 - -03 # French Guiana -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Cayenne -3:29:20 - LMT 1911 Jul - -4:00 - GFT 1967 Oct # French Guiana Time - -3:00 - GFT + -4:00 - -04 1967 Oct + -3:00 - -03 # Guyana -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Guyana -3:52:40 - LMT 1915 Mar # Georgetown - -3:45 - GBGT 1966 May 26 # Br Guiana Time - -3:45 - GYT 1975 Jul 31 # Guyana Time - -3:00 - GYT 1991 + -3:45 - -0345 1975 Jul 31 + -3:00 - -03 1991 # IATA SSIM (1996-06) says -4:00. Assume a 1991 switch. - -4:00 - GYT + -4:00 - -04 # Paraguay # @@ -1508,16 +1559,16 @@ Zone America/Guyana -3:52:40 - LMT 1915 Mar # Georgetown # adjust their clocks at 0 hour of the given dates. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Para 1975 1988 - Oct 1 0:00 1:00 S +Rule Para 1975 1988 - Oct 1 0:00 1:00 - Rule Para 1975 1978 - Mar 1 0:00 0 - Rule Para 1979 1991 - Apr 1 0:00 0 - -Rule Para 1989 only - Oct 22 0:00 1:00 S -Rule Para 1990 only - Oct 1 0:00 1:00 S -Rule Para 1991 only - Oct 6 0:00 1:00 S +Rule Para 1989 only - Oct 22 0:00 1:00 - +Rule Para 1990 only - Oct 1 0:00 1:00 - +Rule Para 1991 only - Oct 6 0:00 1:00 - Rule Para 1992 only - Mar 1 0:00 0 - -Rule Para 1992 only - Oct 5 0:00 1:00 S +Rule Para 1992 only - Oct 5 0:00 1:00 - Rule Para 1993 only - Mar 31 0:00 0 - -Rule Para 1993 1995 - Oct 1 0:00 1:00 S +Rule Para 1993 1995 - Oct 1 0:00 1:00 - Rule Para 1994 1995 - Feb lastSun 0:00 0 - Rule Para 1996 only - Mar 1 0:00 0 - # IATA SSIM (2000-02) says 1999-10-10; ignore this for now. @@ -1535,7 +1586,7 @@ Rule Para 1996 only - Mar 1 0:00 0 - # year, the time will change on the first Sunday of October; likewise, the # clock will be set back on the first Sunday of March. # -Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 S +Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 - # IATA SSIM (1997-09) says Mar 1; go with Shanks & Pottenger. Rule Para 1997 only - Feb lastSun 0:00 0 - # Shanks & Pottenger say 1999-02-28; IATA SSIM (1999-02) says 1999-02-27, but @@ -1546,7 +1597,7 @@ Rule Para 1998 2001 - Mar Sun>=1 0:00 0 - # dst method to be from the first Sunday in September to the first Sunday in # April. Rule Para 2002 2004 - Apr Sun>=1 0:00 0 - -Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 S +Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 - # # From Jesper Nørgaard Welen (2005-01-02): # There are several sources that claim that Paraguay made @@ -1555,7 +1606,7 @@ Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 S # Decree 1,867 (2004-03-05) # From Carlos Raúl Perasso via Jesper Nørgaard Welen (2006-10-13) # http://www.presidencia.gov.py/decretos/D1867.pdf -Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S +Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 - Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - # From Carlos Raúl Perasso (2010-02-18): # By decree number 3958 issued yesterday @@ -1568,7 +1619,7 @@ Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - # and that on the first Sunday of the month of October, it is to be set # forward 60 minutes, in all the territory of the Paraguayan Republic. # ... -Rule Para 2010 max - Oct Sun>=1 0:00 1:00 S +Rule Para 2010 max - Oct Sun>=1 0:00 1:00 - Rule Para 2010 2012 - Apr Sun>=8 0:00 0 - # # From Steffen Thorsen (2013-03-07): @@ -1583,12 +1634,12 @@ Rule Para 2010 2012 - Apr Sun>=8 0:00 0 - # http://www.presidencia.gov.py/archivos/documentos/DECRETO1264_ey9r8zai.pdf Rule Para 2013 max - Mar Sun>=22 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 -3:50:40 - AMT 1931 Oct 10 # Asunción Mean Time - -4:00 - PYT 1972 Oct # Paraguay Time - -3:00 - PYT 1974 Apr - -4:00 Para PY%sT + -4:00 - -04 1972 Oct + -3:00 - -03 1974 Apr + -4:00 Para -04/-03 # Peru # @@ -1601,41 +1652,40 @@ Zone America/Asuncion -3:50:40 - LMT 1890 # Shanks & Pottenger don't have this transition. Assume 1986 was like 1987. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Peru 1938 only - Jan 1 0:00 1:00 S +Rule Peru 1938 only - Jan 1 0:00 1:00 - Rule Peru 1938 only - Apr 1 0:00 0 - -Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 S +Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 - Rule Peru 1939 1940 - Mar Sun>=24 0:00 0 - -Rule Peru 1986 1987 - Jan 1 0:00 1:00 S +Rule Peru 1986 1987 - Jan 1 0:00 1:00 - Rule Peru 1986 1987 - Apr 1 0:00 0 - -Rule Peru 1990 only - Jan 1 0:00 1:00 S +Rule Peru 1990 only - Jan 1 0:00 1:00 - Rule Peru 1990 only - Apr 1 0:00 0 - # IATA is ambiguous for 1993/1995; go with Shanks & Pottenger. -Rule Peru 1994 only - Jan 1 0:00 1:00 S +Rule Peru 1994 only - Jan 1 0:00 1:00 - Rule Peru 1994 only - Apr 1 0:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Lima -5:08:12 - LMT 1890 -5:08:36 - LMT 1908 Jul 28 # Lima Mean Time? - -5:00 Peru PE%sT # Peru Time + -5:00 Peru -05/-04 # South Georgia -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Atlantic/South_Georgia -2:26:08 - LMT 1890 # Grytviken - -2:00 - GST # South Georgia Time + -2:00 - -02 # South Sandwich Is # uninhabited; scientific personnel have wintered # Suriname -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Paramaribo -3:40:40 - LMT 1911 -3:40:52 - PMT 1935 # Paramaribo Mean Time -3:40:36 - PMT 1945 Oct # The capital moved? - -3:30 - NEGT 1975 Nov 20 # Dutch Guiana Time - -3:30 - SRT 1984 Oct # Suriname Time - -3:00 - SRT + -3:30 - -0330 1984 Oct + -3:00 - -03 # Trinidad and Tobago -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2 -4:00 - AST @@ -1657,72 +1707,201 @@ Link America/Port_of_Spain America/Tortola # Virgin Islands (UK) # Uruguay # From Paul Eggert (1993-11-18): # Uruguay wins the prize for the strangest peacetime manipulation of the rules. -# From Shanks & Pottenger: +# +# From Tim Parenti (2018-02-20), per Jeremie Bonjour (2018-01-31) and Michael +# Deckers (2018-02-20): +# ... At least they kept good records... +# +# http://www.armada.mil.uy/ContenidosPDFs/sohma/web/almanaque/almanaque_2018.pdf#page=36 +# Page 36 of Almanaque 2018, published by the Oceanography, Hydrography, and +# Meteorology Service of the Uruguayan Navy, seems to give many transitions +# with greater clarity than we've had before. It directly references many laws +# and decrees which are, in turn, referenced below. They can be viewed in the +# public archives of the Diario Oficial (in Spanish) at +# http://www.impo.com.uy/diariooficial/ +# +# Ley No. 3920 of 1908-06-10 placed the determination of legal time under the +# auspices of the National Institute for the Prediction of Time. It is unclear +# exactly what offset was used during this period, though Ley No. 7200 of +# 1920-04-23 used the Observatory of the National Meteorological Institute in +# Montevideo (34° 54' 33" S, 56° 12' 45" W) as its reference meridian, +# retarding legal time by 15 minutes 9 seconds from 1920-04-30 24:00, +# resulting in UT-04. Assume the corresponding LMT of UT-03:44:51 (given on +# page 725 of the Proceedings of the Second Pan-American Scientific Congress, +# 1915-1916) was in use, and merely became official from 1908-06-10. +# https://www.impo.com.uy/diariooficial/1908/06/18/12 +# https://www.impo.com.uy/diariooficial/1920/04/27/9 +# +# Ley No. 7594 of 1923-06-28 specified legal time as Observatory time advanced +# by 44 minutes 51 seconds (UT-03) "from 30 September to 31 March", and by 14 +# minutes 51 seconds (UT-03:30) "the rest of the year"; a message from the +# National Council of Administration the same day, published directly below the +# law in the Diario Oficial, specified the first transition to be 1923-09-30 +# 24:00. This effectively established standard time at UT-03:30 with 30 +# minutes DST. Assume transitions at 24:00 on the specified days until Ley No. +# 7919 of 1926-03-05 ended this arrangement, repealing all "laws and other +# provisions which oppose" it, resulting in year-round UT-03:30; a Resolución +# of 1926-03-11 puts the final transition at 1926-03-31 24:00, the same as it +# would have been under the previous law. +# https://www.impo.com.uy/diariooficial/1923/07/02/2 +# https://www.impo.com.uy/diariooficial/1926/03/10/2 +# https://www.impo.com.uy/diariooficial/1926/03/18/2 +# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -# Whitman gives 1923 Oct 1; go with Shanks & Pottenger. -Rule Uruguay 1923 only - Oct 2 0:00 0:30 HS +Rule Uruguay 1923 1925 - Oct 1 0:00 0:30 - Rule Uruguay 1924 1926 - Apr 1 0:00 0 - -Rule Uruguay 1924 1925 - Oct 1 0:00 0:30 HS -Rule Uruguay 1933 1935 - Oct lastSun 0:00 0:30 HS -# Shanks & Pottenger give 1935 Apr 1 0:00 & 1936 Mar 30 0:00; go with Whitman. -Rule Uruguay 1934 1936 - Mar Sat>=25 23:30s 0 - -Rule Uruguay 1936 only - Nov 1 0:00 0:30 HS -Rule Uruguay 1937 1941 - Mar lastSun 0:00 0 - -# Whitman gives 1937 Oct 3; go with Shanks & Pottenger. -Rule Uruguay 1937 1940 - Oct lastSun 0:00 0:30 HS -# Whitman gives 1941 Oct 24 - 1942 Mar 27, 1942 Dec 14 - 1943 Apr 13, -# and 1943 Apr 13 "to present time"; go with Shanks & Pottenger. -Rule Uruguay 1941 only - Aug 1 0:00 0:30 HS -Rule Uruguay 1942 only - Jan 1 0:00 0 - -Rule Uruguay 1942 only - Dec 14 0:00 1:00 S +# From Tim Parenti (2018-02-15): +# http://www.impo.com.uy/diariooficial/1933/10/27/6 +# +# It appears Ley No. 9122 of 1933 was never published as such in the Diario +# Oficial, but instead appeared as Document 26 in the Diario on Friday +# 1933-10-27 as a decree made Monday 1933-10-23 and filed under the Ministry of +# National Defense. It reinstituted a DST of 30 minutes (to UT-03) "from the +# last Sunday of October...until the last Saturday of March." In accordance +# with this provision, the first transition was explicitly specified in Article +# 2 of the decree as Saturday 1933-10-28 at 24:00; that is, Sunday 1933-10-29 +# at 00:00. Assume transitions at 00:00 Sunday throughout. +# +# Departing from the matter-of-fact nature of previous timekeeping laws, the +# 1933 decree "consider[s] the advantages of...the advance of legal time": +# +# "Whereas: The measure adopted by almost all nations at the time of the last +# World War still persists in North America and Europe, precisely because of +# the economic, hygienic, and social advantages derived from such an +# emergency measure... +# +# Whereas: The advance of the legal time during the summer seasons, by +# displacing social activity near sunrise, favors the citizen populations +# and especially the society that creates and works..." +# +# It further specified that "necessary measures" be taken to ensure that +# "public spectacles finish, in general, before [01:00]." +Rule Uruguay 1933 1938 - Oct lastSun 0:00 0:30 - +Rule Uruguay 1934 1941 - Mar lastSat 24:00 0 - +# From Tim Parenti (2018-02-15): +# Most of the Rules below, and their contemporaneous Zone lines, have been +# updated simply to match the Almanaque 2018. Although the document does not +# list exact transition times, midnight transitions were already present in our +# data here for all transitions through 2004-09, and this is both consistent +# with prior transitions and verified in several decrees marked below between +# 1939-09 and 2004-09, wherein the relevant text was typically of the form: +# +# "From 0 hours on [date], the legal time of the entire Republic will be... +# +# In accordance with [the preceding], on [previous date] at 24 hours, all +# clocks throughout the Republic will be [advanced/retarded] by..." +# +# It is possible that there is greater specificity to be found for the Rules +# below, but it is buried in no fewer than 40 different decrees individually +# referenced by the Almanaque for the period from 1939-09 to 2014-09. +# Four-fifths of these were promulgated less than two weeks before taking +# effect; more than half within a week and none more than 5 weeks. Only the +# handful with comments below have been checked with any thoroughness. +Rule Uruguay 1939 only - Oct 1 0:00 0:30 - +Rule Uruguay 1940 only - Oct 27 0:00 0:30 - +# From Tim Parenti (2018-02-15): +# Decreto 1145 of the Ministry of National Defense, dated 1941-07-26, specified +# UT-03 from Friday 1941-08-01 00:00, citing an "urgent...need to save fuel". +# http://www.impo.com.uy/diariooficial/1941/08/04/1 +Rule Uruguay 1941 only - Aug 1 0:00 0:30 - +# From Tim Parenti (2018-02-15): +# Decreto 1866 of the Ministry of National Defense, dated 1942-12-09, specified +# further advancement (to UT-02:30) from Sunday 1942-12-13 24:00. Since clocks +# never went back to UT-03:30 thereafter, this is modeled as advancing standard +# time by 30 minutes to UT-03, while retaining 30 minutes of DST. +# http://www.impo.com.uy/diariooficial/1942/12/16/3 +Rule Uruguay 1942 only - Dec 14 0:00 0:30 - Rule Uruguay 1943 only - Mar 14 0:00 0 - -Rule Uruguay 1959 only - May 24 0:00 1:00 S +Rule Uruguay 1959 only - May 24 0:00 0:30 - Rule Uruguay 1959 only - Nov 15 0:00 0 - -Rule Uruguay 1960 only - Jan 17 0:00 1:00 S +Rule Uruguay 1960 only - Jan 17 0:00 1:00 - Rule Uruguay 1960 only - Mar 6 0:00 0 - -Rule Uruguay 1965 1967 - Apr Sun>=1 0:00 1:00 S +Rule Uruguay 1965 only - Apr 4 0:00 1:00 - Rule Uruguay 1965 only - Sep 26 0:00 0 - -Rule Uruguay 1966 1967 - Oct 31 0:00 0 - -Rule Uruguay 1968 1970 - May 27 0:00 0:30 HS -Rule Uruguay 1968 1970 - Dec 2 0:00 0 - -Rule Uruguay 1972 only - Apr 24 0:00 1:00 S -Rule Uruguay 1972 only - Aug 15 0:00 0 - -Rule Uruguay 1974 only - Mar 10 0:00 0:30 HS -Rule Uruguay 1974 only - Dec 22 0:00 1:00 S -Rule Uruguay 1976 only - Oct 1 0:00 0 - -Rule Uruguay 1977 only - Dec 4 0:00 1:00 S -Rule Uruguay 1978 only - Apr 1 0:00 0 - -Rule Uruguay 1979 only - Oct 1 0:00 1:00 S -Rule Uruguay 1980 only - May 1 0:00 0 - -Rule Uruguay 1987 only - Dec 14 0:00 1:00 S -Rule Uruguay 1988 only - Mar 14 0:00 0 - -Rule Uruguay 1988 only - Dec 11 0:00 1:00 S -Rule Uruguay 1989 only - Mar 12 0:00 0 - -Rule Uruguay 1989 only - Oct 29 0:00 1:00 S -# Shanks & Pottenger say no DST was observed in 1990/1 and 1991/2, -# and that 1992/3's DST was from 10-25 to 03-01. Go with IATA. -Rule Uruguay 1990 1992 - Mar Sun>=1 0:00 0 - -Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 S -Rule Uruguay 1992 only - Oct 18 0:00 1:00 S +# From Tim Parenti (2018-02-15): +# Decreto 321/968 of 1968-05-25, citing emergency drought measures decreed the +# day before, brought clocks forward 30 minutes from Monday 1968-05-27 00:00. +# http://www.impo.com.uy/diariooficial/1968/05/30/5 +Rule Uruguay 1968 only - May 27 0:00 0:30 - +Rule Uruguay 1968 only - Dec 1 0:00 0 - +# From Tim Parenti (2018-02-15): +# Decreto 188/970 of 1970-04-23 instituted restrictions on electricity +# consumption "as a consequence of the current rainfall regime in the country". +# Articles 13 and 14 advanced clocks by an hour from Saturday 1970-04-25 00:00. +# http://www.impo.com.uy/diariooficial/1970/04/29/4 +Rule Uruguay 1970 only - Apr 25 0:00 1:00 - +Rule Uruguay 1970 only - Jun 14 0:00 0 - +Rule Uruguay 1972 only - Apr 23 0:00 1:00 - +Rule Uruguay 1972 only - Jul 16 0:00 0 - +# From Tim Parenti (2018-02-15): +# Decreto 29/974 of 1974-01-11, citing "the international rise in the price of +# oil", advanced clocks by 90 minutes (to UT-01:30). Decreto 163/974 of +# 1974-03-04 returned 60 of those minutes (to UT-02:30), and the remaining 30 +# minutes followed in Decreto 679/974 of 1974-08-29. +# http://www.impo.com.uy/diariooficial/1974/01/22/11 +# http://www.impo.com.uy/diariooficial/1974/03/14/3 +# http://www.impo.com.uy/diariooficial/1974/09/04/6 +Rule Uruguay 1974 only - Jan 13 0:00 1:30 - +Rule Uruguay 1974 only - Mar 10 0:00 0:30 - +Rule Uruguay 1974 only - Sep 1 0:00 0 - +Rule Uruguay 1974 only - Dec 22 0:00 1:00 - +Rule Uruguay 1975 only - Mar 30 0:00 0 - +Rule Uruguay 1976 only - Dec 19 0:00 1:00 - +Rule Uruguay 1977 only - Mar 6 0:00 0 - +Rule Uruguay 1977 only - Dec 4 0:00 1:00 - +Rule Uruguay 1978 1979 - Mar Sun>=1 0:00 0 - +Rule Uruguay 1978 only - Dec 17 0:00 1:00 - +Rule Uruguay 1979 only - Apr 29 0:00 1:00 - +Rule Uruguay 1980 only - Mar 16 0:00 0 - +# From Tim Parenti (2018-02-15): +# Decreto 725/987 of 1987-12-04 cited "better use of national tourist +# attractions" to advance clocks one hour from Monday 1987-12-14 00:00. +# http://www.impo.com.uy/diariooficial/1988/01/25/1 +Rule Uruguay 1987 only - Dec 14 0:00 1:00 - +Rule Uruguay 1988 only - Feb 28 0:00 0 - +Rule Uruguay 1988 only - Dec 11 0:00 1:00 - +Rule Uruguay 1989 only - Mar 5 0:00 0 - +Rule Uruguay 1989 only - Oct 29 0:00 1:00 - +Rule Uruguay 1990 only - Feb 25 0:00 0 - +# From Tim Parenti (2018-02-15), per Paul Eggert (1999-11-04): +# IATA agrees as below for 1990-10 through 1993-02. Per Almanaque 2018, the +# 1992/1993 season appears to be the first in over half a century where DST +# both began and ended pursuant to the same decree. +Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 - +Rule Uruguay 1991 1992 - Mar Sun>=1 0:00 0 - +Rule Uruguay 1992 only - Oct 18 0:00 1:00 - Rule Uruguay 1993 only - Feb 28 0:00 0 - # From Eduardo Cota (2004-09-20): # The Uruguayan government has decreed a change in the local time.... -# http://www.presidencia.gub.uy/decretos/2004091502.htm -Rule Uruguay 2004 only - Sep 19 0:00 1:00 S +# From Tim Parenti (2018-02-15): +# Decreto 328/004 of 2004-09-15. +# http://www.impo.com.uy/diariooficial/2004/09/23/documentos.pdf#page=1 +Rule Uruguay 2004 only - Sep 19 0:00 1:00 - # From Steffen Thorsen (2005-03-11): # Uruguay's DST was scheduled to end on Sunday, 2005-03-13, but in order to # save energy ... it was postponed two weeks.... -# http://www.presidencia.gub.uy/_Web/noticias/2005/03/2005031005.htm +# From Tim Parenti (2018-02-15): +# This 2005 postponement is not in Almanaque 2018. Go with the contemporaneous +# reporting, which is confirmed by Decreto 107/005 of 2005-03-10 amending +# Decreto 328/004: +# http://www.impo.com.uy/diariooficial/2005/03/15/documentos.pdf#page=1 +# The original decree specified a transition of 2005-03-12 24:00, but the new +# one specified 2005-03-27 02:00. Rule Uruguay 2005 only - Mar 27 2:00 0 - # From Eduardo Cota (2005-09-27): -# http://www.presidencia.gub.uy/_Web/decretos/2005/09/CM%20119_09%2009%202005_00001.PDF -# This means that from 2005-10-09 at 02:00 local time, until 2006-03-12 at -# 02:00 local time, official time in Uruguay will be at GMT -2. -Rule Uruguay 2005 only - Oct 9 2:00 1:00 S -Rule Uruguay 2006 only - Mar 12 2:00 0 - -# From Jesper Nørgaard Welen (2006-09-06): -# http://www.presidencia.gub.uy/_web/decretos/2006/09/CM%20210_08%2006%202006_00001.PDF -# +# ...from 2005-10-09 at 02:00 local time, until 2006-03-12 at 02:00 local time, +# official time in Uruguay will be at GMT -2. +# From Tim Parenti (2018-02-15): +# Decreto 318/005 of 2005-09-19. +# http://www.impo.com.uy/diariooficial/2005/09/23/documentos.pdf#page=1 +Rule Uruguay 2005 only - Oct 9 2:00 1:00 - +Rule Uruguay 2006 2015 - Mar Sun>=8 2:00 0 - +# From Tim Parenti (2018-02-15), per Jesper Nørgaard Welen (2006-09-06): +# Decreto 311/006 of 2006-09-04 established regular DST from the first Sunday +# of October at 02:00 through the second Sunday of March at 02:00. Almanaque +# 2018 appears to have a few typoed dates through this period; ignore them. +# http://www.impo.com.uy/diariooficial/2006/09/08/documentos.pdf#page=1 +Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 - # From Steffen Thorsen (2015-06-30): # ... it looks like they will not be using DST the coming summer: # http://www.elobservador.com.uy/gobierno-resolvio-que-no-habra-cambio-horario-verano-n656787 @@ -1732,14 +1911,21 @@ Rule Uruguay 2006 only - Mar 12 2:00 0 - # instead of out to dinner. # From Pablo Camargo (2015-07-13): # http://archivo.presidencia.gub.uy/sci/decretos/2015/06/cons_min_201.pdf -# [dated 2015-06-29; repeals Decree 311/006 dated 2006-09-04] -Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 S -Rule Uruguay 2007 2015 - Mar Sun>=8 2:00 0 - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Montevideo -3:44:44 - LMT 1898 Jun 28 - -3:44:44 - MMT 1920 May 1 # Montevideo MT - -3:30 Uruguay UY%sT 1942 Dec 14 # Uruguay Time - -3:00 Uruguay UY%sT +# From Tim Parenti (2018-02-15): +# Decreto 178/015 of 2015-06-29; repeals Decreto 311/006. + +# This Zone can be simplified once we assume zic %z. +Zone America/Montevideo -3:44:51 - LMT 1908 Jun 10 + -3:44:51 - MMT 1920 May 1 # Montevideo MT + -4:00 - -04 1923 Oct 1 + -3:30 Uruguay -0330/-03 1942 Dec 14 + -3:00 Uruguay -03/-0230 1960 + -3:00 Uruguay -03/-02 1968 + -3:00 Uruguay -03/-0230 1970 + -3:00 Uruguay -03/-02 1974 + -3:00 Uruguay -03/-0130 1974 Mar 10 + -3:00 Uruguay -03/-0230 1974 Dec 22 + -3:00 Uruguay -03/-02 # Venezuela # @@ -1764,16 +1950,16 @@ Zone America/Montevideo -3:44:44 - LMT 1898 Jun 28 # hours of presidential broadcasts, hours of lines,' quipped comedian # Jean Mary Curró ...". See: Cawthorne A, Kai D. Venezuela scraps # half-hour time difference set by Chavez. Reuters 2016-04-15 14:50 -0400 -# http://www.reuters.com/article/us-venezuela-timezone-idUSKCN0XC2BE +# https://www.reuters.com/article/us-venezuela-timezone-idUSKCN0XC2BE # # From Matt Johnson (2016-04-20): # ... published in the official Gazette [2016-04-18], here: # http://historico.tsj.gob.ve/gaceta_ext/abril/1842016/E-1842016-4551.pdf -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Caracas -4:27:44 - LMT 1890 -4:27:40 - CMT 1912 Feb 12 # Caracas Mean Time? - -4:30 - VET 1965 Jan 1 0:00 # Venezuela T. - -4:00 - VET 2007 Dec 9 3:00 - -4:30 - VET 2016 May 1 2:30 - -4:00 - VET + -4:30 - -0430 1965 Jan 1 0:00 + -4:00 - -04 2007 Dec 9 3:00 + -4:30 - -0430 2016 May 1 2:30 + -4:00 - -04 diff --git a/vendor/tzdata/systemv b/vendor/tzdata/systemv index d9e2995..a8c037c 100644 --- a/vendor/tzdata/systemv +++ b/vendor/tzdata/systemv @@ -1,3 +1,5 @@ +# tzdb data for System V rules (this file is obsolete) + # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -21,7 +23,7 @@ Rule SystemV 1975 only - Oct lastSun 2:00 0 S Rule SystemV 1976 max - Apr lastSun 2:00 1:00 D Rule SystemV 1976 max - Oct lastSun 2:00 0 S -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] +# Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL] ## Zone SystemV/AST4ADT -4:00 SystemV A%sT ## Zone SystemV/EST5EDT -5:00 SystemV E%sT ## Zone SystemV/CST6CDT -6:00 SystemV C%sT diff --git a/vendor/tzdata/theory.html b/vendor/tzdata/theory.html new file mode 100644 index 0000000..7af7cb2 --- /dev/null +++ b/vendor/tzdata/theory.html @@ -0,0 +1,1452 @@ + + + + Theory and pragmatics of the tz code and data + + + + + +

Theory and pragmatics of the tz code and data

+

Outline

+ + +
+

Scope of the tz database

+

+The tz +database attempts to record the history and predicted future of +all computer-based clocks that track civil time. +It organizes time zone and daylight saving time +data by partitioning the world into timezones +whose clocks all agree about timestamps that occur after the POSIX Epoch +(1970-01-01 00:00:00 UTC). +The database labels each timezone with a notable location and +records all known clock transitions for that location. +Although 1970 is a somewhat-arbitrary cutoff, there are significant +challenges to moving the cutoff earlier even by a decade or two, due +to the wide variety of local practices before computer timekeeping +became prevalent. +

+ +

+Each timezone typically corresponds to a geographical region that is +smaller than a traditional time zone, because clocks in a timezone +all agree after 1970 whereas a traditional time zone merely +specifies current standard time. For example, applications that deal +with current and future timestamps in the traditional North +American mountain time zone can choose from the timezones +America/Denver which observes US-style daylight saving +time, America/Mazatlan which observes Mexican-style DST, +and America/Phoenix which does not observe DST. +Applications that also deal with past timestamps in the mountain time +zone can choose from over a dozen timezones, such as +America/Boise, America/Edmonton, and +America/Hermosillo, each of which currently uses mountain +time but differs from other timezones for some timestamps after 1970. +

+ +

+Clock transitions before 1970 are recorded for each timezone, +because most systems support timestamps before 1970 and could +misbehave if data entries were omitted for pre-1970 transitions. +However, the database is not designed for and does not suffice for +applications requiring accurate handling of all past times everywhere, +as it would take far too much effort and guesswork to record all +details of pre-1970 civil timekeeping. +Although some information outside the scope of the database is +collected in a file backzone that is distributed along +with the database proper, this file is less reliable and does not +necessarily follow database guidelines. +

+ +

+As described below, reference source code for using the +tz database is also available. +The tz code is upwards compatible with POSIX, an international +standard for UNIX-like systems. +As of this writing, the current edition of POSIX is: The Open +Group Base Specifications Issue 7, IEEE Std 1003.1-2017, 2018 +Edition. +Because the database's scope encompasses real-world changes to civil +timekeeping, its model for describing time is more complex than the +standard and daylight saving times supported by POSIX. +A tz timezone corresponds to a ruleset that can +have more than two changes per year, these changes need not merely +flip back and forth between two alternatives, and the rules themselves +can change at times. +Whether and when a timezone changes its clock, +and even the timezone's notional base offset from UTC, +are variable. +It does not always make sense to talk about a timezone's +"base offset", which is not necessarily a single number. +

+ +
+ +
+

Timezone identifiers

+

+Each timezone has a name that uniquely identifies the timezone. +Inexperienced users are not expected to select these names unaided. +Distributors should provide documentation and/or a simple selection +interface that explains each name via a map or via descriptive text like +"Ruthenia" instead of the timezone name "Europe/Uzhgorod". +If geolocation information is available, a selection interface can +locate the user on a timezone map or prioritize names that are +geographically close. For an example selection interface, see the +tzselect program in the tz code. +The Unicode Common Locale Data +Repository contains data that may be useful for other selection +interfaces; it maps timezone names like Europe/Uzhgorod +to CLDR names like uauzh which are in turn mapped to +locale-dependent strings like "Uzhhorod", "Ungvár", "Ужгород", and +"乌日哥罗德". +

+ +

+The naming conventions attempt to strike a balance +among the following goals: +

+ +
    +
  • + Uniquely identify every timezone where clocks have agreed since 1970. + This is essential for the intended use: static clocks keeping local + civil time. +
  • +
  • + Indicate to experts where the timezone's clocks typically are. +
  • +
  • + Be robust in the presence of political changes. + For example, names are typically not tied to countries, to avoid + incompatibilities when countries change their name (e.g., + Swaziland→Eswatini) or when locations change countries (e.g., Hong + Kong from UK colony to China). + There is no requirement that every country or national + capital must have a timezone name. +
  • +
  • + Be portable to a wide variety of implementations. +
  • +
  • + Use a consistent naming conventions over the entire world. +
  • +
+ +

+Names normally have the form +AREA/LOCATION, where +AREA is a continent or ocean, and +LOCATION is a specific location within the area. +North and South America share the same area, 'America'. +Typical names are 'Africa/Cairo', +'America/New_York', and 'Pacific/Honolulu'. +Some names are further qualified to help avoid confusion; for example, +'America/Indiana/Petersburg' distinguishes Petersburg, +Indiana from other Petersburgs in America. +

+ +

+Here are the general guidelines used for +choosing timezone names, +in decreasing order of importance: +

+ +
    +
  • + Use only valid POSIX file name components (i.e., the parts of + names other than '/'). + Do not use the file name components '.' and + '..'. + Within a file name component, use only ASCII letters, + '.', '-' and '_'. + Do not use digits, as that might create an ambiguity with POSIX + TZ strings. + A file name component must not exceed 14 characters or start with + '-'. + E.g., prefer Asia/Brunei to + Asia/Bandar_Seri_Begawan. + Exceptions: see the discussion of legacy names below. +
  • +
  • + A name must not be empty, or contain '//', or + start or end with '/'. +
  • +
  • + Do not use names that differ only in case. + Although the reference implementation is case-sensitive, some + other implementations are not, and they would mishandle names + differing only in case. +
  • +
  • + If one name A is an initial prefix of another + name AB (ignoring case), then B must not + start with '/', as a regular file cannot have the + same name as a directory in POSIX. + For example, America/New_York precludes + America/New_York/Bronx. +
  • +
  • + Uninhabited regions like the North Pole and Bouvet Island + do not need locations, since local time is not defined there. +
  • +
  • + If all the clocks in a timezone have agreed since 1970, + do not bother to include more than one timezone + even if some of the clocks disagreed before 1970. + Otherwise these tables would become annoyingly large. +
  • +
  • + If boundaries between regions are fluid, such as during a war or + insurrection, do not bother to create a new timezone merely + because of yet another boundary change. This helps prevent table + bloat and simplifies maintenance. +
  • +
  • + If a name is ambiguous, use a less ambiguous alternative; + e.g., many cities are named San José and Georgetown, so + prefer America/Costa_Rica to + America/San_Jose and America/Guyana + to America/Georgetown. +
  • +
  • + Keep locations compact. + Use cities or small islands, not countries or regions, so that any + future changes do not split individual locations into different + timezones. + E.g., prefer Europe/Paris to Europe/France, + since + France + has had multiple time zones. +
  • +
  • + Use mainstream English spelling, e.g., prefer + Europe/Rome to Europa/Roma, and + prefer Europe/Athens to the Greek + Ευρώπη/Αθήνα or the Romanized + Evrópi/Athína. + The POSIX file name restrictions encourage this guideline. +
  • +
  • + Use the most populous among locations in a region, + e.g., prefer Asia/Shanghai to + Asia/Beijing. + Among locations with similar populations, pick the best-known + location, e.g., prefer Europe/Rome to + Europe/Milan. +
  • +
  • + Use the singular form, e.g., prefer Atlantic/Canary to + Atlantic/Canaries. +
  • +
  • + Omit common suffixes like '_Islands' and + '_City', unless that would lead to ambiguity. + E.g., prefer America/Cayman to + America/Cayman_Islands and + America/Guatemala to + America/Guatemala_City, but prefer + America/Mexico_City to + America/Mexico + because the + country of Mexico has several time zones. +
  • +
  • + Use '_' to represent a space. +
  • +
  • + Omit '.' from abbreviations in names. + E.g., prefer Atlantic/St_Helena to + Atlantic/St._Helena. +
  • +
  • + Do not change established names if they only marginally violate + the above guidelines. + For example, do not change the existing name Europe/Rome to + Europe/Milan merely because Milan's population has grown + to be somewhat greater than Rome's. +
  • +
  • + If a name is changed, put its old spelling in the + 'backward' file. + This means old spellings will continue to work. +
  • +
+ +

+Guidelines have evolved with time, and names following old versions of +these guidelines might not follow the current version. When guidelines +have changed, old names continue to be supported. Guideline changes +have included the following: +

+ +
    +
  • +Older versions of this package used a different naming scheme. +See the file 'backward' for most of these older names +(e.g., 'US/Eastern' instead of 'America/New_York'). +The other old-fashioned names still supported are +'WET', 'CET', 'MET', and +'EET' (see the file 'europe'). +
  • + +
  • +Older versions of this package defined legacy names that are +incompatible with the first guideline of location names, but which are +still supported. +These legacy names are mostly defined in the file +'etcetera'. +Also, the file 'backward' defines the legacy names +'GMT0', 'GMT-0' and 'GMT+0', +and the file 'northamerica' defines the legacy names +'EST5EDT', 'CST6CDT', +'MST7MDT', and 'PST8PDT'. +
  • + +
  • +Older versions of these guidelines said that +there should typically be at least one name for each ISO +3166-1 officially assigned two-letter code for an inhabited +country or territory. +This old guideline has been dropped, as it was not needed to handle +timestamps correctly and it increased maintenance burden. +
  • +
+ +

+The file 'zone1970.tab' lists geographical locations used +to name timezones. +It is intended to be an exhaustive list of names for geographic +regions as described above; this is a subset of the timezones in the data. +Although a 'zone1970.tab' location's +longitude +corresponds to +its local mean +time (LMT) offset with one hour for every 15° +east longitude, this relationship is not exact. +

+ +

+Excluding 'backward' should not affect the other data. +If 'backward' is excluded, excluding +'etcetera' should not affect the remaining data. +

+
+ +
+

Time zone abbreviations

+

+When this package is installed, it generates time zone abbreviations +like 'EST' to be compatible with human tradition and POSIX. +Here are the general guidelines used for choosing time zone abbreviations, +in decreasing order of importance: +

+ +
    +
  • + Use three to six characters that are ASCII alphanumerics or + '+' or '-'. + Previous editions of this database also used characters like + space and '?', but these characters have a + special meaning to the + UNIX shell + and cause commands like + 'set + `date`' + to have unexpected effects. + Previous editions of this guideline required upper-case letters, but the + Congressman who introduced + Chamorro + Standard Time preferred "ChST", so lower-case letters are now + allowed. + Also, POSIX from 2001 on relaxed the rule to allow '-', + '+', and alphanumeric characters from the portable + character set in the current locale. + In practice ASCII alphanumerics and '+' and + '-' are safe in all locales. + +

    + In other words, in the C locale the POSIX extended regular + expression [-+[:alnum:]]{3,6} should match the + abbreviation. + This guarantees that all abbreviations could have been specified by a + POSIX TZ string. +

    +
  • +
  • + Use abbreviations that are in common use among English-speakers, + e.g., 'EST' for Eastern Standard Time in North America. + We assume that applications translate them to other languages + as part of the normal localization process; for example, + a French application might translate 'EST' to 'HNE'. + +

    + These abbreviations (for standard/daylight/etc. time) are: + ACST/ACDT Australian Central, + AST/ADT/APT/AWT/ADDT Atlantic, + AEST/AEDT Australian Eastern, + AHST/AHDT Alaska-Hawaii, + AKST/AKDT Alaska, + AWST/AWDT Australian Western, + BST/BDT Bering, + CAT/CAST Central Africa, + CET/CEST/CEMT Central European, + ChST Chamorro, + CST/CDT/CWT/CPT/CDDT Central [North America], + CST/CDT China, + GMT/BST/IST/BDST Greenwich, + EAT East Africa, + EST/EDT/EWT/EPT/EDDT Eastern [North America], + EET/EEST Eastern European, + GST/GDT Guam, + HST/HDT/HWT/HPT Hawaii, + HKT/HKST/HKWT Hong Kong, + IST India, + IST/GMT Irish, + IST/IDT/IDDT Israel, + JST/JDT Japan, + KST/KDT Korea, + MET/MEST Middle European (a backward-compatibility alias for + Central European), + MSK/MSD Moscow, + MST/MDT/MWT/MPT/MDDT Mountain, + NST/NDT/NWT/NPT/NDDT Newfoundland, + NST/NDT/NWT/NPT Nome, + NZMT/NZST New Zealand through 1945, + NZST/NZDT New Zealand 1946–present, + PKT/PKST Pakistan, + PST/PDT/PWT/PPT/PDDT Pacific, + PST/PDT Philippine, + SAST South Africa, + SST Samoa, + WAT/WAST West Africa, + WET/WEST/WEMT Western European, + WIB Waktu Indonesia Barat, + WIT Waktu Indonesia Timur, + WITA Waktu Indonesia Tengah, + YST/YDT/YWT/YPT/YDDT Yukon. +

    +
  • +
  • +

    + For times taken from a city's longitude, use the + traditional xMT notation. + The only abbreviation like this in current use is 'GMT'. + The others are for timestamps before 1960, + except that Monrovia Mean Time persisted until 1972. + Typically, numeric abbreviations (e.g., '-004430' for + MMT) would cause trouble here, as the numeric strings would exceed + the POSIX length limit. +

    + +

    + These abbreviations are: + AMT Amsterdam, Asunción, Athens; + BMT Baghdad, Bangkok, Batavia, Bern, Bogotá, Bridgetown, Brussels, + Bucharest; + CMT Calamarca, Caracas, Chisinau, Colón, Copenhagen, Córdoba; + DMT Dublin/Dunsink; + EMT Easter; + FFMT Fort-de-France; + FMT Funchal; + GMT Greenwich; + HMT Havana, Helsinki, Horta, Howrah; + IMT Irkutsk, Istanbul; + JMT Jerusalem; + KMT Kaunas, Kiev, Kingston; + LMT Lima, Lisbon, local, Luanda; + MMT Macassar, Madras, Malé, Managua, Minsk, Monrovia, Montevideo, + Moratuwa, Moscow; + PLMT Phù Liễn; + PMT Paramaribo, Paris, Perm, Pontianak, Prague; + PMMT Port Moresby; + QMT Quito; + RMT Rangoon, Riga, Rome; + SDMT Santo Domingo; + SJMT San José; + SMT Santiago, Simferopol, Singapore, Stanley; + TBMT Tbilisi; + TMT Tallinn, Tehran; + WMT Warsaw. +

    + +

    + A few abbreviations also follow the pattern that + GMT/BST established for time in the UK. + They are: + CMT/BST for Calamarca Mean Time and Bolivian Summer Time + 1890–1932, + DMT/IST for Dublin/Dunsink Mean Time and Irish Summer Time + 1880–1916, + MMT/MST/MDST for Moscow 1880–1919, and + RMT/LST for Riga Mean Time and Latvian Summer time 1880–1926. + An extra-special case is SET for Swedish Time (svensk + normaltid) 1879–1899, 3° west of the Stockholm + Observatory. +

    +
  • +
  • + Use 'LMT' for local mean time of locations before the + introduction of standard time; see "Scope of the + tz database". +
  • +
  • + If there is no common English abbreviation, use numeric offsets like + -05 and +0530 that are generated + by zic's %z notation. +
  • +
  • + Use current abbreviations for older timestamps to avoid confusion. + For example, in 1910 a common English abbreviation for time + in central Europe was 'MEZ' (short for both "Middle European + Zone" and for "Mitteleuropäische Zeit" in German). + Nowadays 'CET' ("Central European Time") is more common in + English, and the database uses 'CET' even for circa-1910 + timestamps as this is less confusing for modern users and avoids + the need for determining when 'CET' supplanted 'MEZ' in common + usage. +
  • +
  • + Use a consistent style in a timezone's history. + For example, if a history tends to use numeric + abbreviations and a particular entry could go either way, use a + numeric abbreviation. +
  • +
  • + Use + Universal Time + (UT) (with time zone abbreviation '-00') for + locations while uninhabited. + The leading '-' is a flag that the UT offset is in + some sense undefined; this notation is derived + from Internet + RFC 3339. +
  • +
+ +

+Application writers should note that these abbreviations are ambiguous +in practice: e.g., 'CST' means one thing in China and something else +in North America, and 'IST' can refer to time in India, Ireland or +Israel. +To avoid ambiguity, use numeric UT offsets like +'-0600' instead of time zone abbreviations like 'CST'. +

+
+ +
+

Accuracy of the tz database

+

+The tz database is not authoritative, and it +surely has errors. +Corrections are welcome and encouraged; see the file CONTRIBUTING. +Users requiring authoritative data should consult national standards +bodies and the references cited in the database's comments. +

+ +

+Errors in the tz database arise from many sources: +

+ +
    +
  • + The tz database predicts future + timestamps, and current predictions + will be incorrect after future governments change the rules. + For example, if today someone schedules a meeting for 13:00 next + October 1, Casablanca time, and tomorrow Morocco changes its + daylight saving rules, software can mess up after the rule change + if it blithely relies on conversions made before the change. +
  • +
  • + The pre-1970 entries in this database cover only a tiny sliver of how + clocks actually behaved; the vast majority of the necessary + information was lost or never recorded. + Thousands more timezones would be needed if + the tz database's scope were extended to + cover even just the known or guessed history of standard time; for + example, the current single entry for France would need to split + into dozens of entries, perhaps hundreds. + And in most of the world even this approach would be misleading + due to widespread disagreement or indifference about what times + should be observed. + In her 2015 book + The + Global Transformation of Time, 1870–1950, + Vanessa Ogle writes + "Outside of Europe and North America there was no system of time + zones at all, often not even a stable landscape of mean times, + prior to the middle decades of the twentieth century". + See: Timothy Shenk, Booked: + A Global History of Time. Dissent 2015-12-17. +
  • +
  • + Most of the pre-1970 data entries come from unreliable sources, often + astrology books that lack citations and whose compilers evidently + invented entries when the true facts were unknown, without + reporting which entries were known and which were invented. + These books often contradict each other or give implausible entries, + and on the rare occasions when they are checked they are + typically found to be incorrect. +
  • +
  • + For the UK the tz database relies on + years of first-class work done by + Joseph Myers and others; see + "History of + legal time in Britain". + Other countries are not done nearly as well. +
  • +
  • + Sometimes, different people in the same city maintain clocks + that differ significantly. + Historically, railway time was used by railroad companies (which + did not always + agree with each other), church-clock time was used for birth + certificates, etc. + More recently, competing political groups might disagree about + clock settings. Often this is merely common practice, but + sometimes it is set by law. + For example, from 1891 to 1911 the UT offset in France + was legally UT +00:09:21 outside train stations and + UT +00:04:21 inside. Other examples include + Chillicothe in 1920, Palm Springs in 1946/7, and Jerusalem and + Ürümqi to this day. +
  • +
  • + Although a named location in the tz + database stands for the containing region, its pre-1970 data + entries are often accurate for only a small subset of that region. + For example, Europe/London stands for the United + Kingdom, but its pre-1847 times are valid only for locations that + have London's exact meridian, and its 1847 transition + to GMT is known to be valid only for the L&NW and + the Caledonian railways. +
  • +
  • + The tz database does not record the + earliest time for which a timezone's + data entries are thereafter valid for every location in the region. + For example, Europe/London is valid for all locations + in its region after GMT was made the standard time, + but the date of standardization (1880-08-02) is not in the + tz database, other than in commentary. + For many timezones the earliest time of + validity is unknown. +
  • +
  • + The tz database does not record a + region's boundaries, and in many cases the boundaries are not known. + For example, the timezone + America/Kentucky/Louisville represents a region + around the city of Louisville, the boundaries of which are + unclear. +
  • +
  • + Changes that are modeled as instantaneous transitions in the + tz + database were often spread out over hours, days, or even decades. +
  • +
  • + Even if the time is specified by law, locations sometimes + deliberately flout the law. +
  • +
  • + Early timekeeping practices, even assuming perfect clocks, were + often not specified to the accuracy that the + tz database requires. +
  • +
  • + Sometimes historical timekeeping was specified more precisely + than what the tz code can handle. + For example, from 1909 to 1937 Netherlands clocks were legally Amsterdam Mean + Time (estimated to be UT + +00:19:32.13), but the tz + code cannot represent the fractional second. + In practice these old specifications were rarely if ever + implemented to subsecond precision. +
  • +
  • + Even when all the timestamp transitions recorded by the + tz database are correct, the + tz rules that generate them may not + faithfully reflect the historical rules. + For example, from 1922 until World War II the UK moved clocks + forward the day following the third Saturday in April unless that + was Easter, in which case it moved clocks forward the previous + Sunday. + Because the tz database has no + way to specify Easter, these exceptional years are entered as + separate tz Rule lines, even though the + legal rules did not change. + When transitions are known but the historical rules behind them are not, + the database contains Zone and Rule + entries that are intended to represent only the generated + transitions, not any underlying historical rules; however, this + intent is recorded at best only in commentary. +
  • +
  • + The tz database models time + using the proleptic + Gregorian calendar with days containing 24 equal-length hours + numbered 00 through 23, except when clock transitions occur. + Pre-standard time is modeled as local mean time. + However, historically many people used other calendars and other timescales. + For example, the Roman Empire used + the Julian + calendar, + and Roman + timekeeping had twelve varying-length daytime hours with a + non-hour-based system at night. + And even today, some local practices diverge from the Gregorian + calendar with 24-hour days. These divergences range from + relatively minor, such as Japanese bars giving times like "24:30" for the + wee hours of the morning, to more-significant differences such as the + east African practice of starting the day at dawn, renumbering + the Western 06:00 to be 12:00. These practices are largely outside + the scope of the tz code and data, which + provide only limited support for date and time localization + such as that required by POSIX. If DST is not used a different time zone + can often do the trick; for example, in Kenya a TZ setting + like <-03>3 or America/Cayenne starts + the day six hours later than Africa/Nairobi does. +
  • +
  • + Early clocks were less reliable, and data entries do not represent + clock error. +
  • +
  • + The tz database assumes Universal Time + (UT) as an origin, even though UT is not + standardized for older timestamps. + In the tz database commentary, + UT denotes a family of time standards that includes + Coordinated Universal Time (UTC) along with other + variants such as UT1 and GMT, + with days starting at midnight. + Although UT equals UTC for modern + timestamps, UTC was not defined until 1960, so + commentary uses the more-general abbreviation UT for + timestamps that might predate 1960. + Since UT, UT1, etc. disagree slightly, + and since pre-1972 UTC seconds varied in length, + interpretation of older timestamps can be problematic when + subsecond accuracy is needed. +
  • +
  • + Civil time was not based on atomic time before 1972, and we do not + know the history of + earth's + rotation accurately enough to map SI seconds to + historical solar time + to more than about one-hour accuracy. + See: Stephenson FR, Morrison LV, Hohenkerk CY. + Measurement of + the Earth's rotation: 720 BC to AD 2015. + Proc Royal Soc A. 2016 Dec 7;472:20160404. + Also see: Espenak F. Uncertainty + in Delta T (ΔT). +
  • +
  • + The relationship between POSIX time (that is, UTC but + ignoring leap + seconds) and UTC is not agreed upon after 1972. + Although the POSIX + clock officially stops during an inserted leap second, at least one + proposed standard has it jumping back a second instead; and in + practice POSIX clocks more typically either progress glacially during + a leap second, or are slightly slowed while near a leap second. +
  • +
  • + The tz database does not represent how + uncertain its information is. + Ideally it would contain information about when data entries are + incomplete or dicey. + Partial temporal knowledge is a field of active research, though, + and it is not clear how to apply it here. +
  • +
+ +

+In short, many, perhaps most, of the tz +database's pre-1970 and future timestamps are either wrong or +misleading. +Any attempt to pass the +tz database off as the definition of time +should be unacceptable to anybody who cares about the facts. +In particular, the tz database's +LMT offsets should not be considered meaningful, and +should not prompt creation of timezones +merely because two locations +differ in LMT or transitioned to standard time at +different dates. +

+
+ +
+

Time and date functions

+

+The tz code contains time and date functions +that are upwards compatible with those of POSIX. +Code compatible with this package is already +part of many platforms, where the +primary use of this package is to update obsolete time-related files. +To do this, you may need to compile the time zone compiler +'zic' supplied with this package instead of using the +system 'zic', since the format of zic's +input is occasionally extended, and a platform may still be shipping +an older zic. +

+ +

POSIX properties and limitations

+
    +
  • +

    + In POSIX, time display in a process is controlled by the + environment variable TZ. + Unfortunately, the POSIX + TZ string takes a form that is hard to describe and + is error-prone in practice. + Also, POSIX TZ strings cannot deal with daylight + saving time rules not based on the Gregorian calendar (as in + Iran), or with situations where more than two time zone + abbreviations or UT offsets are used in an area. +

    + +

    + The POSIX TZ string takes the following form: +

    + +

    + stdoffset[dst[offset][,date[/time],date[/time]]] +

    + +

    + where: +

    + +
    +
    std and dst
    + are 3 or more characters specifying the standard + and daylight saving time (DST) zone abbreviations. + Starting with POSIX.1-2001, std and dst + may also be in a quoted form like '<+09>'; + this allows "+" and "-" in the names. +
    +
    offset
    + is of the form + '[±]hh:[mm[:ss]]' + and specifies the offset west of UT. + 'hh' may be a single digit; + 0≤hh≤24. + The default DST offset is one hour ahead of + standard time. +
    +
    date[/time],date[/time]
    + specifies the beginning and end of DST. + If this is absent, the system supplies its own ruleset + for DST, and its rules can differ from year to year; + typically US DST rules are used. +
    +
    time
    + takes the form + 'hh:[mm[:ss]]' + and defaults to 02:00. + This is the same format as the offset, except that a + leading '+' or '-' is not allowed. +
    +
    date
    + takes one of the following forms: +
    +
    Jn (1≤n≤365)
    + origin-1 day number not counting February 29 +
    +
    n (0≤n≤365)
    + origin-0 day number counting February 29 if present +
    +
    Mm.n.d + (0[Sunday]≤d≤6[Saturday], 1≤n≤5, + 1≤m≤12)
    + for the dth day of week n of + month m of the year, where week 1 is the first + week in which day d appears, and + '5' stands for the last week in which + day d appears (which may be either the 4th or + 5th week). + Typically, this is the only useful form; the n + and Jn forms are rarely used. +
    +
    +
    +
    + +

    + Here is an example POSIX TZ string for New + Zealand after 2007. + It says that standard time (NZST) is 12 hours ahead + of UT, and that daylight saving time + (NZDT) is observed from September's last Sunday at + 02:00 until April's first Sunday at 03:00: +

    + +
    TZ='NZST-12NZDT,M9.5.0,M4.1.0/3'
    + +

    + This POSIX TZ string is hard to remember, and + mishandles some timestamps before 2008. + With this package you can use this instead: +

    + +
    TZ='Pacific/Auckland'
    +
  • +
  • + POSIX does not define the DST transitions + for TZ values like + "EST5EDT". + Traditionally the current US DST rules + were used to interpret such values, but this meant that the + US DST rules were compiled into each + program that did time conversion. This meant that when + US time conversion rules changed (as in the United + States in 1987), all programs that did time conversion had to be + recompiled to ensure proper results. +
  • +
  • + The TZ environment variable is process-global, which + makes it hard to write efficient, thread-safe applications that + need access to multiple timezones. +
  • +
  • + In POSIX, there is no tamper-proof way for a process to learn the + system's best idea of local (wall clock) time. + This is important for applications that an administrator wants + used only at certain times – without regard to whether the + user has fiddled the + TZ environment variable. + While an administrator can "do everything in UT" to + get around the problem, doing so is inconvenient and precludes + handling daylight saving time shifts – as might be required to + limit phone calls to off-peak hours. +
  • +
  • + POSIX provides no convenient and efficient way to determine + the UT offset and time zone abbreviation of arbitrary + timestamps, particularly for timezones + that do not fit into the POSIX model. +
  • +
  • + POSIX requires that time_t clock counts exclude leap + seconds. +
  • +
  • + The tz code attempts to support all the + time_t implementations allowed by POSIX. + The time_t type represents a nonnegative count of seconds + since 1970-01-01 00:00:00 UTC, ignoring leap seconds. + In practice, time_t is usually a signed 64- or 32-bit + integer; 32-bit signed time_t values stop working after + 2038-01-19 03:14:07 UTC, so new implementations these + days typically use a signed 64-bit integer. + Unsigned 32-bit integers are used on one or two platforms, and 36-bit + and 40-bit integers are also used occasionally. + Although earlier POSIX versions allowed time_t to be a + floating-point type, this was not supported by any practical system, + and POSIX.1-2013 and the tz code both + require time_t to be an integer type. +
  • +
+ +

Extensions to POSIX in the +tz code

+
    +
  • +

    + The TZ environment variable is used in generating + the name of a file from which time-related information is read + (or is interpreted à la POSIX); TZ is no longer + constrained to be a string containing abbreviations + and numeric data as described above. + The file's format is TZif, + a timezone information format that contains binary data; see + Internet + RFC 8536. + The daylight saving time rules to be used for a + particular timezone are encoded in the + TZif file; the format of the file allows US, + Australian, and other rules to be encoded, and + allows for situations where more than two time zone + abbreviations are used. +

    +

    + It was recognized that allowing the TZ environment + variable to take on values such as 'America/New_York' + might cause "old" programs (that expect TZ to have a + certain form) to operate incorrectly; consideration was given to using + some other environment variable (for example, TIMEZONE) + to hold the string used to generate the TZif file's name. + In the end, however, it was decided to continue using + TZ: it is widely used for time zone purposes; + separately maintaining both TZ + and TIMEZONE seemed a nuisance; and systems where + "new" forms of TZ might cause problems can simply + use legacy TZ values such as "EST5EDT" which + can be used by "new" programs as well as by "old" programs that + assume pre-POSIX TZ values. +

    +
  • +
  • + The code supports platforms with a UT offset member + in struct tm, e.g., tm_gmtoff. +
  • +
  • + The code supports platforms with a time zone abbreviation member in + struct tm, e.g., tm_zone. +
  • +
  • + Functions tzalloc, tzfree, + localtime_rz, and mktime_z for + more-efficient thread-safe applications that need to use multiple + timezones. + The tzalloc and tzfree functions + allocate and free objects of type timezone_t, + and localtime_rz and mktime_z are + like localtime_r and mktime with an + extra timezone_t argument. + The functions were inspired by NetBSD. +
  • +
  • + A function tzsetwall has been added to arrange for the + system's best approximation to local (wall clock) time to be delivered + by subsequent calls to localtime. + Source code for portable applications that "must" run on local + time should call tzsetwall; + if such code is moved to "old" systems that do not + provide tzsetwall, you will not be able to generate an + executable program. + (These functions also arrange for local time to + be used if tzset is called – directly or + indirectly – and there is no TZ environment + variable; portable applications should not, however, rely on this + behavior since it is not the way SVR2 + systems behave.) +
  • +
  • + Negative time_t values are supported, on systems + where time_t is signed. +
  • +
  • + These functions can account for leap seconds; + see Leap seconds below. +
  • +
+ +

POSIX features no longer needed

+

+POSIX and ISO C +define some APIs that are vestigial: +they are not needed, and are relics of a too-simple model that does +not suffice to handle many real-world timestamps. +Although the tz code supports these +vestigial APIs for backwards compatibility, they should +be avoided in portable applications. +The vestigial APIs are: +

+
    +
  • + The POSIX tzname variable does not suffice and is no + longer needed. + To get a timestamp's time zone abbreviation, consult + the tm_zone member if available; otherwise, + use strftime's "%Z" conversion + specification. +
  • +
  • + The POSIX daylight and timezone + variables do not suffice and are no longer needed. + To get a timestamp's UT offset, consult + the tm_gmtoff member if available; otherwise, + subtract values returned by localtime + and gmtime using the rules of the Gregorian calendar, + or use strftime's "%z" conversion + specification if a string like "+0900" suffices. +
  • +
  • + The tm_isdst member is almost never needed and most of + its uses should be discouraged in favor of the abovementioned + APIs. + Although it can still be used in arguments to + mktime to disambiguate timestamps near + a DST transition when the clock jumps back, this + disambiguation does not work when standard time itself jumps back, + which can occur when a location changes to a time zone with a + lesser UT offset. +
  • +
+ +

Other portability notes

+
    +
  • + The 7th Edition + UNIX timezone function is not present in this + package; it is impossible to reliably map timezone's + arguments (a "minutes west of GMT" value and a + "daylight saving time in effect" flag) to a time zone + abbreviation, and we refuse to guess. + Programs that in the past used the timezone function + may now examine localtime(&clock)->tm_zone + (if TM_ZONE is defined) or + tzname[localtime(&clock)->tm_isdst] + (if HAVE_TZNAME is defined) to learn the correct time + zone abbreviation to use. +
  • +
  • + The 4.2BSD + gettimeofday function is not + used in this package. + This formerly let users obtain the current UTC offset + and DST flag, but this functionality was removed in + later versions of BSD. +
  • +
  • + In SVR2, time conversion fails for near-minimum or + near-maximum time_t values when doing conversions + for places that do not use UT. + This package takes care to do these conversions correctly. + A comment in the source code tells how to get compatibly wrong + results. +
  • +
  • + The functions that are conditionally compiled + if STD_INSPIRED is defined should, at this point, be + looked on primarily as food for thought. + They are not in any sense "standard compatible" – some are + not, in fact, specified in any standard. + They do, however, represent responses of various authors to + standardization proposals. +
  • +
  • + Other time conversion proposals, in particular those supported by the + Time Zone + Database Parser, offer a wider selection of functions + that provide capabilities beyond those provided here. + The absence of such functions from this package is not meant to + discourage the development, standardization, or use of such + functions. + Rather, their absence reflects the decision to make this package + contain valid extensions to POSIX, to ensure its broad + acceptability. + If more powerful time conversion functions can be standardized, so + much the better. +
  • +
+
+ +
+

Interface stability

+

+The tz code and data supply the following interfaces: +

+ +
    +
  • + A set of timezone names as per + "Timezone identifiers" above. +
  • +
  • + Library functions described in "Time and date + functions" above. +
  • +
  • + The programs tzselect, zdump, + and zic, documented in their man pages. +
  • +
  • + The format of zic input files, documented in + the zic man page. +
  • +
  • + The format of zic output files, documented in + the tzfile man page. +
  • +
  • + The format of zone table files, documented in zone1970.tab. +
  • +
  • + The format of the country code file, documented in iso3166.tab. +
  • +
  • + The version number of the code and data, as the first line of + the text file 'version' in each release. +
  • +
+ +

+Interface changes in a release attempt to preserve compatibility with +recent releases. +For example, tz data files typically do not +rely on recently-added zic features, so that users can +run older zic versions to process newer data files. +Downloading +the tz database describes how releases +are tagged and distributed. +

+ +

+Interfaces not listed above are less stable. +For example, users should not rely on particular UT +offsets or abbreviations for timestamps, as data entries are often +based on guesswork and these guesses may be corrected or improved. +

+ +

+Timezone boundaries are not part of the stable interface. +For example, even though the Asia/Bangkok timezone +currently includes Chang Mai, Hanoi, and Phnom Penh, this is not part +of the stable interface and the timezone can split at any time. +If a calendar application records a future event in some location other +than Bangkok by putting "Asia/Bangkok" in the event's record, +the application should be robust in the presence of timezone splits +between now and the future time. +

+
+ +
+

Leap seconds

+

+The tz code and data can account for leap seconds, +thanks to code contributed by Bradley White. +However, the leap second support of this package is rarely used directly +because POSIX requires leap seconds to be excluded and many +software packages would mishandle leap seconds if they were present. +Instead, leap seconds are more commonly handled by occasionally adjusting +the operating system kernel clock as described in +Precision timekeeping, +and this package by default installs a leapseconds file +commonly used by +NTP +software that adjusts the kernel clock. +However, kernel-clock twiddling approximates UTC only roughly, +and systems needing more-precise UTC can use this package's leap +second support directly. +

+ +

+The directly-supported mechanism assumes that time_t +counts of seconds since the POSIX epoch normally include leap seconds, +as opposed to POSIX time_t counts which exclude leap seconds. +This modified timescale is converted to UTC +at the same point that time zone and DST adjustments are applied – +namely, at calls to localtime and analogous functions – +and the process is driven by leap second information +stored in alternate versions of the TZif files. +Because a leap second adjustment may be needed even +if no time zone correction is desired, +calls to gmtime-like functions +also need to consult a TZif file, +conventionally named GMT, +to see whether leap second corrections are needed. +To convert an application's time_t timestamps to or from +POSIX time_t timestamps (for use when, say, +embedding or interpreting timestamps in portable +tar +files), +the application can call the utility functions +time2posix and posix2time +included with this package. +

+ +

+If the POSIX-compatible TZif file set is installed +in a directory whose basename is zoneinfo, the +leap-second-aware file set is by default installed in a separate +directory zoneinfo-leaps. +Although each process can have its own time zone by setting +its TZ environment variable, there is no support for some +processes being leap-second aware while other processes are +POSIX-compatible; the leap-second choice is system-wide. +So if you configure your kernel to count leap seconds, you should also +discard zoneinfo and rename zoneinfo-leaps +to zoneinfo. +Alternatively, you can install just one set of TZif files +in the first place; see the REDO variable in this package's +makefile. +

+
+ +
+

Calendrical issues

+

+Calendrical issues are a bit out of scope for a time zone database, +but they indicate the sort of problems that we would run into if we +extended the time zone database further into the past. +An excellent resource in this area is Edward M. Reingold +and Nachum Dershowitz, Calendrical +Calculations: The Ultimate Edition, Cambridge University Press (2018). +Other information and sources are given in the file 'calendars' +in the tz distribution. +They sometimes disagree. +

+
+ +
+

Time and time zones on other planets

+

+Some people's work schedules +use Mars time. +Jet Propulsion Laboratory (JPL) coordinators kept Mars time on +and off during the +Mars +Pathfinder mission. +Some of their family members also adapted to Mars time. +Dozens of special Mars watches were built for JPL workers who kept +Mars time during the Mars Exploration Rovers mission (2004). +These timepieces look like normal Seikos and Citizens but use Mars +seconds rather than terrestrial seconds. +

+ +

+A Mars solar day is called a "sol" and has a mean period equal to +about 24 hours 39 minutes 35.244 seconds in terrestrial time. +It is divided into a conventional 24-hour clock, so each Mars second +equals about 1.02749125 terrestrial seconds. +

+ +

+The prime +meridian of Mars goes through the center of the crater +Airy-0, named in +honor of the British astronomer who built the Greenwich telescope that +defines Earth's prime meridian. +Mean solar time on the Mars prime meridian is +called Mars Coordinated Time (MTC). +

+ +

+Each landed mission on Mars has adopted a different reference for +solar timekeeping, so there is no real standard for Mars time zones. +For example, the +Mars +Exploration Rover project (2004) defined two time zones "Local +Solar Time A" and "Local Solar Time B" for its two missions, each zone +designed so that its time equals local true solar time at +approximately the middle of the nominal mission. +Such a "time zone" is not particularly suited for any application +other than the mission itself. +

+ +

+Many calendars have been proposed for Mars, but none have achieved +wide acceptance. +Astronomers often use Mars Sol Date (MSD) which is a +sequential count of Mars solar days elapsed since about 1873-12-29 +12:00 GMT. +

+ +

+In our solar system, Mars is the planet with time and calendar most +like Earth's. +On other planets, Sun-based time and calendars would work quite +differently. +For example, although Mercury's +sidereal +rotation period is 58.646 Earth days, Mercury revolves around the +Sun so rapidly that an observer on Mercury's equator would see a +sunrise only every 175.97 Earth days, i.e., a Mercury year is 0.5 of a +Mercury day. +Venus is more complicated, partly because its rotation is slightly +retrograde: +its year is 1.92 of its days. +Gas giants like Jupiter are trickier still, as their polar and +equatorial regions rotate at different rates, so that the length of a +day depends on latitude. +This effect is most pronounced on Neptune, where the day is about 12 +hours at the poles and 18 hours at the equator. +

+ +

+Although the tz database does not support +time on other planets, it is documented here in the hopes that support +will be added eventually. +

+ +

+Sources for time on other planets: +

+ + +
+ +
+
+ This file is in the public domain, so clarified as of 2009-05-17 by + Arthur David Olson. +
+ + diff --git a/vendor/tzdata/version b/vendor/tzdata/version index 72ca0d0..db18f83 100644 --- a/vendor/tzdata/version +++ b/vendor/tzdata/version @@ -1 +1 @@ -2016j +2019c diff --git a/vendor/tzdata/yearistype.sh b/vendor/tzdata/yearistype.sh index dfdcdf0..d674175 100644 --- a/vendor/tzdata/yearistype.sh +++ b/vendor/tzdata/yearistype.sh @@ -1,4 +1,5 @@ #! /bin/sh +: 'Determine whether year is of appropriate type (this file is obsolete).' : 'This file is in the public domain, so clarified as of' : '2006-07-17 by Arthur David Olson.' diff --git a/vendor/tzdata/ziguard.awk b/vendor/tzdata/ziguard.awk new file mode 100644 index 0000000..e8ef49e --- /dev/null +++ b/vendor/tzdata/ziguard.awk @@ -0,0 +1,124 @@ +# 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. +# +# 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. + +BEGIN { + dataform_type["vanguard"] = 1 + dataform_type["main"] = 1 + dataform_type["rearguard"] = 1 + + # The command line should set DATAFORM. + if (!dataform_type[DATAFORM]) exit 1 + vanguard = DATAFORM == "vanguard" +} + +/^Zone/ { zone = $2 } + +DATAFORM != "main" { + in_comment = /^#/ + uncomment = comment_out = 0 + + # If the line should differ due to Czechoslovakia using negative SAVE values, + # uncomment the desired version and comment out the undesired one. + if (zone == "Europe/Prague" && /1947 Feb 23/) { + if (($(in_comment + 2) != "-") == vanguard) { + 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 = /^#?Rule[\t ]+Eire[\t ]/ + Zone_Dublin_post_1968 \ + = (zone == "Europe/Dublin" && /^#?[\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")) \ + == vanguard) { + 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 = /^#?Rule[\t ]+Namibia[\t ]/ + Zone_using_Namibia_rule \ + = (zone == "Africa/Windhoek" \ + && ($(in_comment + 2) == "Namibia" \ + || (1994 <= $(in_comment + 4) && $(in_comment + 4) <= 2017) \ + || in_comment + 3 == NF)) + if (Rule_Namibia || Zone_using_Namibia_rule) { + if ((Rule_Namibia \ + ? ($(in_comment + 9) ~ /^-/ \ + || ($(in_comment + 9) == 0 && $(in_comment + 10) == "CAT")) \ + : $(in_comment + 1) == "2:00" && $(in_comment + 2) == "Namibia") \ + == vanguard) { + uncomment = in_comment + } else { + comment_out = !in_comment + } + } + + if (uncomment) { + sub(/^#/, "") + } + if (comment_out) { + sub(/^/, "#") + } + + # In rearguard format, 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 (!vanguard && $1 == "Rule" && $7 == "Sat>=8" && $8 == "25:00") { + sub(/Sat>=8/, "Sun>=9") + sub(/25:00/, " 1:00") + } + + # In rearguard format, change the Morocco lines with negative SAVE values + # to use positive SAVE values. + if (!vanguard && $1 == "Rule" && $2 == "Morocco" && $4 == 2018 \ + && $6 == "Oct") { + sub(/\t2018\t/, "\t2017\t") + } + if (!vanguard && $1 == "Rule" && $2 == "Morocco" && 2019 <= $3) { + if ($9 == "0") { + sub(/\t0\t/, "\t1:00\t") + } else { + sub(/\t-1:00\t/, "\t0\t") + } + } + if (!vanguard && $1 == "1:00" && $2 == "Morocco" && $3 == "+01/+00") { + sub(/1:00\tMorocco\t\+01\/\+00$/, "0:00\tMorocco\t+00/+01") + } +} + +# If a Link line is followed by a Zone line for the same data, comment +# out the Link line. This can happen if backzone overrides a Link +# with a Zone. +/^Link/ { + linkline[$3] = NR +} +/^Zone/ { + sub(/^Link/, "#Link", line[linkline[$2]]) +} + +{ line[NR] = $0 } + +END { + for (i = 1; i <= NR; i++) + print line[i] +} diff --git a/vendor/tzdata/zishrink.awk b/vendor/tzdata/zishrink.awk new file mode 100644 index 0000000..4e187ac --- /dev/null +++ b/vendor/tzdata/zishrink.awk @@ -0,0 +1,322 @@ +# 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 memonic: 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) + } +} + +# Process the input line LINE and save it for later output. + +function process_input_line(line, \ + field, end, i, n, 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) + + # SystemV rules are not needed. + if (line ~ /^R SystemV /) return + + # 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) + + # Abbreviate rule names. + i = zoneline ? 4 : linkline ? 0 : 2 + if (i && field[i] ~ /^[^-+0-9]/) { + if (!rule[field[i]]) + rule[field[i]] = gen_rule_name(field[i]) + field[i] = rule[field[i]] + } + + # 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. + line = field[1] + for (i = 2; i <= n; i++) + line = line " " field[i] + output_line[nout++] = line +} + +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["systemv"] = 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 { + output_saved_lines() +} diff --git a/vendor/tzdata/zone.tab b/vendor/tzdata/zone.tab index f3ff0b6..408fcb2 100644 --- a/vendor/tzdata/zone.tab +++ b/vendor/tzdata/zone.tab @@ -1,9 +1,9 @@ -# tz zone descriptions (deprecated version) +# 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 (2014-07-31): +# From Paul Eggert (2018-06-27): # 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: @@ -12,13 +12,13 @@ # 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 zone where civil +# 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. # -# This table is intended as an aid for users, to help them select time -# zone data entries appropriate for their practical needs. It is not -# intended to take or endorse any position on legal or territorial claims. +# 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 @@ -142,6 +142,7 @@ CH +4723+00832 Europe/Zurich CI +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago Chile (most areas) +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 @@ -185,7 +186,7 @@ GB +513030-0000731 Europe/London GD +1203-06145 America/Grenada GE +4143+04449 Asia/Tbilisi GF +0456-05220 America/Cayenne -GG +4927-00232 Europe/Guernsey +GG +492717-0023210 Europe/Guernsey GH +0533-00013 Africa/Accra GI +3608-00521 Europe/Gibraltar GL +6411-05144 America/Godthab Greenland (most areas) @@ -220,7 +221,7 @@ IQ +3321+04425 Asia/Baghdad IR +3540+05126 Asia/Tehran IS +6409-02151 Atlantic/Reykjavik IT +4154+01229 Europe/Rome -JE +4912-00207 Europe/Jersey +JE +491101-0020624 Europe/Jersey JM +175805-0764736 America/Jamaica JO +3157+03556 Asia/Amman JP +353916+1394441 Asia/Tokyo @@ -238,6 +239,7 @@ KW +2920+04759 Asia/Kuwait KY +1918-08123 America/Cayman KZ +4315+07657 Asia/Almaty Kazakhstan (most areas) 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 @@ -267,7 +269,7 @@ MM +1647+09610 Asia/Yangon MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas) MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar -MO +2214+11335 Asia/Macau +MO +221150+1133230 Asia/Macau MP +1512+14545 Pacific/Saipan MQ +1436-06105 America/Martinique MR +1806-01557 Africa/Nouakchott @@ -330,10 +332,13 @@ 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 -RU +4457+03406 Europe/Simferopol MSK+00 - Crimea -RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd +# 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 MSK+00 - Crimea RU +5836+04939 Europe/Kirov MSK+00 - Kirov RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan +RU +4844+04425 Europe/Volgograd MSK+01 - Volgograd 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 @@ -371,7 +376,7 @@ SM +4355+01228 Europe/San_Marino SN +1440-01726 Africa/Dakar SO +0204+04522 Africa/Mogadishu SR +0550-05510 America/Paramaribo -SS +0451+03136 Africa/Juba +SS +0451+03137 Africa/Juba ST +0020+00644 Africa/Sao_Tome SV +1342-08912 America/El_Salvador SX +180305-0630250 America/Lower_Princes @@ -397,7 +402,6 @@ UA +5026+03031 Europe/Kiev Ukraine (most areas) UA +4837+02218 Europe/Uzhgorod Ruthenia UA +4750+03510 Europe/Zaporozhye Zaporozh'ye/Zaporizhia; Lugansk/Luhansk (east) UG +0019+03225 Africa/Kampala -UM +1645-16931 Pacific/Johnston Johnston Atoll UM +2813-17722 Pacific/Midway Midway Islands UM +1917+16637 Pacific/Wake Wake Island US +404251-0740023 America/New_York Eastern (most areas) @@ -429,7 +433,7 @@ US +593249-1394338 America/Yakutat Alaska - Yakutat US +643004-1652423 America/Nome Alaska (west) US +515248-1763929 America/Adak Aleutian Islands US +211825-1575130 Pacific/Honolulu Hawaii -UY -3453-05611 America/Montevideo +UY -345433-0561245 America/Montevideo UZ +3940+06648 Asia/Samarkand Uzbekistan (west) UZ +4120+06918 Asia/Tashkent Uzbekistan (east) VA +415408+0122711 Europe/Vatican diff --git a/vendor/tzdata/zone1970.tab b/vendor/tzdata/zone1970.tab index dc50f6d..822ffa1 100644 --- a/vendor/tzdata/zone1970.tab +++ b/vendor/tzdata/zone1970.tab @@ -1,35 +1,35 @@ -# tz zone descriptions +# tzdb timezone descriptions # # This file is in the public domain. # -# From Paul Eggert (2014-07-31): -# This file contains a table where each row stands for a zone where -# civil time stamps have agreed since 1970. Columns are separated by +# 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 zone, as a comma-separated list +# 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 zone's principal location +# 2. Latitude and longitude of the timezone's principal location # in ISO 6709 sign-degrees-minutes-seconds format, -# either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS, +# either ±DDMM±DDDMM or ±DDMMSS±DDDMMSS, # first latitude (+ is north), then longitude (+ is east). -# 3. Zone name used in value of TZ environment variable. -# Please see the 'Theory' file for how zone names are chosen. -# If multiple zones overlap a country, each has a row in the +# 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 a country has multiple zones. +# 4. Comments; present if and only if a country has multiple timezones. # -# If a zone covers multiple countries, the most-populous city is used, +# 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 zones first, where that does not contradict (1). +# most populous timezones first, where that does not contradict (1). # -# This table is intended as an aid for users, to help them select time -# zone data entries appropriate for their practical needs. It is not -# intended to take or endorse any position on legal or territorial claims. +# 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 @@ -132,9 +132,10 @@ CA +6043-13503 America/Whitehorse Pacific - Yukon (south) CA +6404-13925 America/Dawson Pacific - Yukon (north) CC -1210+09655 Indian/Cocos CH,DE,LI +4723+00832 Europe/Zurich Swiss time -CI,BF,GM,GN,ML,MR,SH,SL,SN,ST,TG +0519-00402 Africa/Abidjan +CI,BF,GM,GN,ML,MR,SH,SL,SN,TG +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago Chile (most areas) +CL -5309-07055 America/Punta_Arenas Region of Magallanes CL -2709-10926 Pacific/Easter Easter Island CN +3114+12128 Asia/Shanghai Beijing Time CN +4348+08735 Asia/Urumqi Xinjiang Time @@ -210,6 +211,7 @@ KP +3901+12545 Asia/Pyongyang KR +3733+12658 Asia/Seoul KZ +4315+07657 Asia/Almaty Kazakhstan (most areas) 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 @@ -230,7 +232,7 @@ MM +1647+09610 Asia/Yangon MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas) MN +4801+09139 Asia/Hovd Bayan-Ölgii, Govi-Altai, Hovd, Uvs, Zavkhan MN +4804+11430 Asia/Choibalsan Dornod, Sükhbaatar -MO +2214+11335 Asia/Macau +MO +221150+1133230 Asia/Macau MQ +1436-06105 America/Martinique MT +3554+01431 Europe/Malta MU -2010+05730 Indian/Mauritius @@ -287,10 +289,11 @@ 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 -RU +4457+03406 Europe/Simferopol MSK+00 - Crimea -RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd +# Mention RU and UA alphabetically. See "territorial claims" above. +RU,UA +4457+03406 Europe/Simferopol MSK+00 - Crimea RU +5836+04939 Europe/Kirov MSK+00 - Kirov RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan +RU +4844+04425 Europe/Volgograd MSK+01 - Volgograd 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 @@ -315,10 +318,12 @@ RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea SA,KW,YE +2438+04643 Asia/Riyadh SB -0932+16012 Pacific/Guadalcanal SC -0440+05528 Indian/Mahe -SD,SS +1536+03232 Africa/Khartoum +SD +1536+03232 Africa/Khartoum SE +5920+01803 Europe/Stockholm SG +0117+10351 Asia/Singapore 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 @@ -368,7 +373,7 @@ US +593249-1394338 America/Yakutat Alaska - Yakutat US +643004-1652423 America/Nome Alaska (west) US +515248-1763929 America/Adak Aleutian Islands US,UM +211825-1575130 Pacific/Honolulu Hawaii -UY -3453-05611 America/Montevideo +UY -345433-0561245 America/Montevideo UZ +3940+06648 Asia/Samarkand Uzbekistan (west) UZ +4120+06918 Asia/Tashkent Uzbekistan (east) VE +1030-06656 America/Caracas diff --git a/vendor/tzdata/zoneinfo2tdf.pl b/vendor/tzdata/zoneinfo2tdf.pl index e05ec01..e07b00c 100755 --- a/vendor/tzdata/zoneinfo2tdf.pl +++ b/vendor/tzdata/zoneinfo2tdf.pl @@ -1,4 +1,5 @@ #! /usr/bin/perl -w +# Summarize .zi input in a .zi-like format. # Courtesy Ken Pizzini. @@ -27,7 +28,7 @@ $contZone = ''; if ($type eq 'zone') { - # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] + # Zone NAME STDOFF RULES/SAVE FORMAT [UNTIL] my $nfields = @fields; $nfields >= 5 or warn "bad zone line"; if ($nfields > 6) { diff --git a/vendor/wikipedia/majorcities.html b/vendor/wikipedia/majorcities.html new file mode 100644 index 0000000..23d464d --- /dev/null +++ b/vendor/wikipedia/majorcities.html @@ -0,0 +1,2179 @@ + + + + + +List of largest cities - Wikipedia + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+
Page semi-protected
+
+ +

List of largest cities

+ +
+
From Wikipedia, the free encyclopedia
+
+ + +
+ Jump to navigation + Jump to search +
+

+ +

+ + +

The United Nations uses three definitions for what constitutes a city, as not all cities in all jurisdictions are classified using the same criteria.[1] Cities may be defined as the cities proper, the extent of their urban area, or their metropolitan regions.[1] The largest city by population using the city proper definition, which is the area under the administrative boundaries of a local government, is Chongqing, China. The largest city by population using the metropolitan area definition, which is a loose term referring to urban area and its primary commuter areas, is Tokyo, Japan. The largest city by population using the urban area definition, which is a loose term referring to a contiguous area with a certain population density, is also Tokyo, Japan. +

+ + +

Common city definitions

+

City proper (administrative)

+ +
The municipality of Chongqing, whose administrative area is around the size of Austria, has the largest population for a city proper. However, more than 70% of its residents actually live in rural areas.
+

A city can be defined by its administrative boundaries (city proper). UNICEF[1] defines city proper as "the population living within the administrative boundaries of a city or controlled directly from the city by a single authority." A city proper is a locality defined according to legal or political boundaries and an administratively recognised urban status that is usually characterised by some form of local government.[2][3][4] Cities proper and their boundaries and population data may not include suburbs.[5] +

The use of city proper as defined by administrative boundaries may not include suburban areas where an important proportion of the population working or studying in the city lives.[5] Because of this definition, the city proper population figure may differ greatly with the urban area population figure, as many cities are amalgamations of smaller municipalities (Australia), and conversely, many Chinese cities govern territories that extend well beyond the traditional "city proper" into suburban and rural areas.[6] The Chinese municipality of Chongqing, which claims the largest city proper in the world, comprises a huge administrative area of 82,403 km2, around the size of Austria. However, more than 70% of its 30-million population are actually agricultural workers living in a rural setting.[7][8] +

+

Metropolitan area

+ +

A city can be defined by the inhabitants of its demographic population, as by metropolitan area, labour market area, or similar in a metropolitan area. UNICEF[1] defines metropolitan area as follows: +

+

A formal local government area comprising the urban area as a whole and its primary commuter areas, typically formed around a city with a large concentration of people (i.e., a population of at least 100,000). In addition to the city proper, a metropolitan area includes both the surrounding territory with urban levels of residential density and some additional lower-density areas that are adjacent to and linked to the city (e.g., through frequent transport, road linkages or commuting facilities).

+

In many countries, metropolitan areas are established either with an official organisation or only for statistical purposes. In the United States, metropolitan statistical area (MSA) is defined by the U.S. Office of Management and Budget (OMB) for statistical purpose.[9] In the Philippines, metropolitan areas have an official agency, such as Metropolitan Manila Development Authority (MMDA) which manages Manila metropolitan area.[10] Similar agencies exist in Indonesia such as Jabodetabekjur Development Cooperation Agency for Jakarta metropolitan area.[11] +

+

Urban area

+ + +
Tokyo is considered the world's largest city, with its urbanisation exceeding its city limits.
+

A city can be defined as a conditionally contiguous urban area, without regard to territorial or other boundaries inside an urban area. UNICEF[1] defines urban area as follows: +

+

The definition of "urban" varies from country to country, and, with periodic reclassification, can also vary within one country over time, making direct comparisons difficult. An urban area can be defined by one or more of the following: administrative criteria or political boundaries (e.g., area within the jurisdiction of a municipality or town committee), a threshold population size (where the minimum for an urban settlement is typically in the region of 2,000 people, although this varies globally between 200 and 50,000), population density, economic function (e.g., where a significant majority of the population is not primarily engaged in agriculture, or where there is surplus employment) or the presence of urban characteristics (e.g., paved streets, electric lighting, sewerage).

+

According to Demographia, an urban area is a continuously built up land mass of urban development that is within a labor market (metropolitan area or metropolitan region) and contains no rural land.[12] +

+

Largest cities

+

This list includes all cities with 6,000,000 or more population in urban area. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
City[a] +Country +Skyline +City proper[b] +Metropolitan area[c] +Urban area[12][d] +
Definition +Population +Area
(km2) +
Population +Area
(km2) +
Population +Area
(km2) +
Tokyo + Japan +Shinjuku skyline, Tokyo - Sony A7R (11831328835).jpg +Metropolis prefecture +13,515,271[13] +2,191[13] +37,274,000[14] +13,452[14] +38,505,000 +8,223[e] +
Jakarta + Indonesia +Jakarta-Skyline-from-Bund.jpg +Special capital region +10,154,134[15] +664[15] +33,430,285[16] +7,063[16] +34,365,000 +3,367[f] +
Delhi + India +Smog in Dehli edited.jpg +National capital territory +16,753,235[17] +1,484 +29,000,000[18] +3,483[18] +28,125,000 +2,240[g] +
Manila + Philippines +BGC.jpg +Capital city +1,780,148[19] +43 +12,877,253[19] +620 +25,065,000 +1,813[h] +
Seoul + South Korea +Seoul (South Korea).jpg +Special city +9,806,000[20] +605 +25,514,000[21] +11,704 +24,315,000 +2,745[i] +
Mumbai + India +Mumbai Skyline at Night.jpg +Municipality +12,478,447[22] +603 +24,400,000[23] +4,355[24] +23,645,000 +881[j] +
Shanghai + China +Shanghai skyline waterfront pudong 5166168 69 70.jpg +Municipality +24,183,000[25] +6,341 +N/A +N/A +22,125,000 +4,015[k] +
New York City + United States +A view of New York City with the Empire State Building and One World Trade Center from the Rockefeller Center.jpg +City +8,398,748[26] +786 +19,303,808[27] +17,315 +21,045,000 +11,875[l] +
São Paulo + Brazil +SP from Altino Arantes Building.jpg +Municipality +12,252,023[28] +1,521 +21,734,682[29] +7,947 +20,935,000 +3,043[m] +
Mexico City + Mexico +Ciudad.de.Mexico.City.- Paseo.Reforma.Skyline CDMX 2016 (cropped).jpg +City-state +8,918,653[30] +1,485 +20,892,724[31] +7,854 +20,395,000 +2,370 +
Guangzhou + China +Guangzhou skyline.jpg +City (sub-provincial) +14,498,400[25] +7,434 +N/A +N/A +20,130,000 +3,885[n] +
Beijing + China +Beijing Skyline.webp +Municipality +21,707,000[25] +16,411 +N/A +N/A +19,430,000 +4,144 +
Dhaka + Bangladesh +Dhaka 14th March (32624769393).jpg +Capital city +14,399,000[32] +338[33] +14,543,124[32] + +18,595,000 +453 +
Osaka + Japan +Nakanoshima Skyscrapers in 201504 001.jpg +Designated city +2,725,006[13] +225[13] +19,303,000[14] +13,228[14] +17,150,000 +3,004[o] +
Cairo + Egypt +Flickr - archer10 (Dennis) - Egypt-2A-007.jpg +Urban governorate +9,500,000[34] +3,085 +N/A +N/A +16,925,000 +1,917 +
Karachi + Pakistan + +Metropolitan city +14,910,352[35] +3,780 + + +16,900,000 +1,036 +
Moscow + Russia +Moscow-City (36211143494).jpg +Federal city +13,200,000[36] +2,511[37] +N/A +N/A +16,555,000 +5,698 +
Bangkok + Thailand +0008871 - Krung Thep Bridge 001.jpg +Special administrative area +5,782,000[38] +1,569 +16,255,900[39] +7,762[40] +16,045,000 +3,043 +
Los Angeles + United States +Los Angeles with Mount Baldy.jpg +City +3,990,456[26] +1,214 +13,291,486[41] +12,559 +15,440,000 +6,299 +
Kolkata + India +Calcutta skyline.jpg +Municipality +4,496,694[42] +205 +14,035,959[43] +1,851[44] +15,215,000 +1,347 +
Buenos Aires + Argentina +High-rises of Puerto Madero (40022145164).jpg +Autonomous city +3,054,300[45] +203 +12,806,866[46] + +15,130,000 +3,212 +
Lagos + Nigeria +Lagos skyline.jpg +N/A[p] +N/A +N/A +21,000,000[47] +1,171[47] +14,630,000 +1,943 +
Tehran + Iran +North of Tehran Skyline view.jpg +Capital city +9,033,003[48] +751[49] + + +14,630,000 +1,943 +
Istanbul + Turkey +Levent, Istanbul at night.jpg +Metropolitan municipality +15,029,231[50] +5,196 +N/A +N/A +13,860,000 +1,360 +
Shenzhen + China +Lo Wu District 201701.jpg +City (sub-provincial) +12,528,300[25] +2,050 +N/A +N/A +13,195,000 +1,748 +
Tianjin + China +Tianjin Skyline 2009 Sep 11 by Nangua 1.jpg +Municipality +15,569,000[25] +11,920 +N/A +N/A +13,035,000 +2,771 +
Kinshasa + DR Congo +Vue Kinshasa.jpg +City-province +11,462,000[51] +9,965 + + +12,960,000 +583 +
Chengdu + China +Jiuyanqiao.jpg +City (sub-provincial) +16,044,700[25] +14,378 +N/A +N/A +12,160,000 +1,813 +
Rio de Janeiro + Brazil +CentroRJ.jpg +Municipality +6,520,000[52] +1,221 +12,644,321[53] +5,327 +12,070,000 +1,917 +
Lahore + Pakistan +Badshahi Mosquee, Lahore.jpg +Metropolitan city +11,126,000[35] +1,772 + + +11,545,000 +896 +
Lima + Peru +Lima - Perú.jpg +Metropolitan municipality +8,894,000[54] +2,672 +9,569,468[55] +2,819 +11,460,000 +894 +
Bangalore + India +Bangalore Panorama edit1.jpg +Municipality +8,443,675[56] +709 + + +11,250,000 +1,166 +
Paris + France +La Défense from the Arc de Triomphe, Paris 6 March 2015 003.jpg +Capital city +2,148,271[57] +105 +12,244,807[58] + +10,960,000 +2,845 +
Ho Chi Minh City + Vietnam +Saigon skyline night view.jpg +Municipality +7,431,000[59] +2,061 + + +10,955,000 +1,645 +
London + United Kingdom +London Skyline (125508655).jpeg +Capital city +8,825,001[60] +1,572 +14,372,596[58] + +10,840,000 +1,738 +
Bogotá + Colombia +Bogota Skyline.jpg +Capital District +7,963,000[61] +1,587 + + +10,705,000 +585 +
Chennai + India +Chennai Skyline.jpg +Municipality +6,727,000[62] +426[63] + + +10,560,000 +1,049 +
Nagoya + Japan +Nagoya Night View.jpg +Designated city +2,320,361[13] +326[13] +9,363,000[14] +7,271[14] +10,240,000 +3,704 +
Hyderabad + India +High Rise buildings in Madhapur from Golkonda hill.jpg +Municipality +6,993,262[64] +650[65] + + +9,580,000 +1,230 +
Johannesburg + South Africa +Johannesburg view topofCC 03.jpg +Metropolitan municipality +4,434,827[66] +1,645 + + +9,335,000 +2,590[q] +
Chicago + United States +Chicago skyline, viewed from John Hancock Center.jpg +City +2,705,994[26] +589 +9,498,716[67] +18,640 +9,275,000 +6,856 +
Taipei + Taiwan +Taipei, Taiwan CBD Skyline.jpg +Special municipality +2,646,204[68] +272 +6,700,000[69] + +8,535,000 +1,140 +
Wuhan + China +Wuhan Xibeihu Area Panorama(2017).jpg +City (sub-provincial) +10,892,900[25] +8,494 +N/A +N/A +8,470,000 +1,619 +
Dongguan + China +东莞市, 中国 Jul 18, 2019 15-39-21.jpeg +Prefecture-level city +8,342,500[25] +2,465 +N/A +N/A +8,410,000 +1,748 +
Hanoi + Vietnam +West Hanoi.jpg +Municipality +7,232,700[59] +3,325[59] + + +8,350,000 +868 +
Chongqing + China +重庆市渝中区半岛.jpg +Municipality +30,165,500[70] +82,403 +N/A +N/A +8,300,000 +1,489 +
Onitsha + Nigeria +Onitsha City View.jpg +N/A[r] +N/A +N/A +N/A +N/A +8,075,000 +1,965 +
Kuala Lumpur + Malaysia +Moonrise over kuala lumpur.jpg +City +1,768,000[71] +243 +7,200,000[72] +2,793[72] +7,860,000 +2,163 +
Ahmedabad + India +Amdavad Aerial.jpg +Municipality +5,570,585[73] +464 +6,300,000[74] + +7,715,000 +350 +
Luanda + Angola +Luanda Skyline - Angola 2015 (cropped).jpg +Municipality +2,165,867[75] +116[75] + + +7,645,000 +984 +
Washington, D.C. + United States +Washington, D.C. - 2007 aerial view.jpg +Federal district +702,455[26] +177 +6,263,245[76] +17,009 +7,515,000 +5,281[s] +
Hong Kong + China +Hong Kong Skyline (157974881).jpeg +Special administrative region +7,298,600[77] +1,104[78] +N/A +N/A +7,435,000 +285 +
Baghdad + Iraq +فندق بغداد روتانا.jpg +Urban governorate +8,126,755[79] +5,200[79] +N/A +N/A +7,315,000 +673 +
Xi'an + China +China Telecom,xi'an,CHINA - panoramio.jpg +City (sub-provincial) +8,989,000[25] +10,135 +N/A +N/A +7,135,000 +1,088 +
Boston + United States +Boston skyline from Longfellow Bridge September 2017 panorama 2.jpg +City +694,583[26] +125 +4,875,390[80] +9,033 +7,130,000 +9,189[t] +
Zhengzhou + China +Zhengzhou East Railway Area.jpg +Prefecture-level city +9,880,000[25] +7,507 +N/A +N/A +7,090,000 +1,554 +
Shenyang + China +Shenyang Qingnian Street.JPG +City (sub-provincial) +8,294,000[25] +12,980 +N/A +N/A +7,055,000 +1,502[u] +
Hangzhou + China +Hangzhou CBD (Cropped).jpg +City (sub-provincial) +9,468,000[25] +16,596 +N/A +N/A +6,960,000 +1,334 +
Düsseldorf + Germany +Düsseldorf Panorama.jpg +Urban district +642,304[81] +217 +1,555,985[58] + +6,660,000 +2,655[v] +
Toronto + Canada +Sunset Toronto Skyline Panorama Crop from Snake Island.jpg +City +2,731,571[82] +630[83] +5,928,040[84] +5,906[84] +6,630,000 +2,300 +
Dallas + United States +Dallas Skyline with Arts District.jpg +City +1,345,047[26] +882 +7,470,158[85] +22,463[85] +6,550,000 +5,175[w] +
Quanzhou + China +泉州浦西万达广场 - panoramio.jpg +Prefecture-level city +8,650,000[25] +11,219 +N/A +N/A +6,495,000 +2,072 +
Santiago + Chile +J28 293 »Sanhattan«.jpg +City (commune) +236,453[86] +22[86] +7,112,808[87] +15,403[87] +6,410,000 +1,140 +
Surat + India +University Road Surat.jpg +Municipality +4,466,826[88] +327[88] + + +6,385,000 +233 +
Madrid + Spain +Madrid Cityscape.jpg +Municipality +3,266,126[89] +606 +6,641,649[58] + +6,345,000 +1,360 +
Houston + United States +Aerial views of the Houston, Texas, 28005u.jpg +City +2,325,502[26] +1,553 +6,997,384[90] +21,395[90] +6,315,000 +4,841 +
Pune + India +Pune West skyline - March 2017.jpg +Municipality +3,124,458[91] +276 +7,276,000[92] +7,256[92] +6,265,000 +583 +
Nanjing + China +Nanjing Skyline 2012.jpg +City (sub-provincial) +7,260,000[93] +6,582 +N/A +N/A +6,125,000 +1,489 +
San Francisco + United States +San Francisco Skyline at night.jpg +Consolidated city-county +883,305[26] +122 +4,729,484[94] +6,417[94] +6,100,000 +2,865[x] +
Riyadh + Saudi Arabia +Riyadh Skyline.jpg +Municipality +6,694,000[95] +1,913 +N/A +N/A +6,050,000 +1,658 +
+

See also

+ +

Notes

+
+
    +
  1. ^ For urban/metropolitan areas that have more than one core city, the figure for their city proper should use either the most populous one (e.g. Düsseldorf for Rhine-Ruhr, or Dallas for Dallas–Fort Worth metroplex) or the most well-known one (e.g. Manila for Metro Manila, instead of Quezon City). +
  2. +
  3. ^ Figures taken from official census when possible +
  4. +
  5. ^ Figures taken from official census when possible +
  6. +
  7. ^ Figure taken from Demographia's "World Urban Areas" study when possible +
  8. +
  9. ^ Includes large areas Tokyo, Kanagawa, Chiba and Saitama prefectures and smaller areas of Gunma, Tochigi and Ibaraki prefectures. +
  10. +
  11. ^ Includes Tangerang, South Tangerang, Bogor, Bekasi and Karawang. +
  12. +
  13. ^ Includes Faridabad, Ghaziabad, Noida, Gurgaon and Bahadurgarh urban areas and New Delhi. +
  14. +
  15. ^ The continuous urbanization of Manila extends outward its Metro Manila into other neighbouring provinces such as Bulacan, Cavite, Laguna, Rizal, Pampanga and Batangas provinces. +
  16. +
  17. ^ Includes the city of Incheon. +
  18. +
  19. ^ Includes Kalyan and urban areas of Panvel, Bhiwandi and Vasai-Virar. +
  20. +
  21. ^ Includes Taicang +
  22. +
  23. ^ Includes Bridgeport, New Haven, Trenton, Danbury, Waterbury and Twin Rivers urban areas. +
  24. +
  25. ^ Includes Francisco Morato +
  26. +
  27. ^ Includes the city of Foshan. +
  28. +
  29. ^ Includes major cities of Kobe and Kyoto, collectively also known as Keihanshin area. +
  30. +
  31. ^ Although commonly referred to as a city, Lagos is a metropolitan area consisting of 16 local government areas. +
  32. +
  33. ^ Includes the area of East Rand. +
  34. +
  35. ^ Onitsha does not have its own municipal government. The area generally referred to as the city is divided into two local government areas: Onitsha North and Onitsha South. +
  36. +
  37. ^ Includes the city of Baltimore. +
  38. +
  39. ^ Includes the city of Providence. +
  40. +
  41. ^ Includes the city of Fushun. +
  42. +
  43. ^ Includes the city of Essen, collectively known as the Rhine-Ruhr area. +
  44. +
  45. ^ Includes the city of Fort Worth, collectively known as Dallas–Fort Worth metroplex. +
  46. +
  47. ^ Includes the city of San Jose. +
  48. +
+

References

+
+
    +
  1. ^ a b c d e "SOWC-2012-DEFINITIONS". UNICEF. Archived from the original on 8 December 2013. Retrieved 29 January 2014. +
  2. +
  3. ^ "World Urbanization Prospects: The 2007 Revision Population Database". United Nations. Archived from the original on 22 August 2010. Retrieved 26 July 2010. +
  4. +
  5. ^ "United Nations Statistics Division – Demographic and Social Statistics". United Nations. Archived from the original on 23 June 2011. Retrieved 26 July 2010. +
  6. +
  7. ^ Demographic Yearbook 2005, Volume 57. United Nations. 2008. p. 241. ISBN 978-92-1-051099-8. Archived from the original on 2 May 2016. +
  8. +
  9. ^ a b World Urbanization Prospects: The 2003 Revision. United Nations. 2004. ISBN 92-1-151396-0. +
  10. +
  11. ^ Alexander, Ruth (29 January 2012). "The world's biggest cities: How do you measure them?". BBC News. Archived from the original on 2 March 2015. Retrieved 16 March 2015. +
  12. +
  13. ^ Alexander, Ruth (29 January 2012). "Which is the world's biggest city?" – via www.bbc.com. +
  14. +
  15. ^ Callahan, William A. (12 April 2015). "China Dreams: 20 Visions of the Future". Oxford University Press – via Google Books. +
  16. +
  17. ^ Nussle, Jim (20 November 2008). "Update of Statistical Area Definitions and Guidance on Their Uses" (PDF). Office of Management and Budget. pp. 1–2. Archived from the original (PDF) on 4 November 2010. +
  18. +
  19. ^ http://www.mmda.gov.ph/mmda-about-us.html +
  20. +
  21. ^ https://metro.tempo.co/read/1152868/3-masalah-utama-bksp-jabodetabekjur-yang-dipimpin-anies-baswedan?TerkiniUtama&campaign=TerkiniUtama_Click_10 +
  22. +
  23. ^ a b "Demographia World Urban Areas, 15th Annual Edition" (PDF). Demographia. April 2019. Archived (PDF) from the original on 7 February 2020. Retrieved 13 February 2016. +
  24. +
  25. ^ a b c d e f "Japan: Prefectures and Major Cities - Population Statistics, Maps, Charts, Weather and Web Information". +
  26. +
  27. ^ a b c d e f "Table 2.10 Population of Three Major Metropolitan Areas" (PDF). Statistics Bureau of Japan. p. 21. Retrieved 26 November 2013. +
  28. +
  29. ^ a b Indonesia: Administrative Division. "Regencies, Cities and Districts – Population Statistics, Charts and Map". www.citypopulation.de. Retrieved 14 January 2016. +
  30. +
  31. ^ a b "Jabodetabekpunjur". perkotaan.bpiw.pu.go.id. Ministry of Public Works and People's Housing. Retrieved 22 February 2020. +
  32. +
  33. ^ "Provisional Population Totals" (PDF). Ministry of Statistics and Programme Implementation. 2011. Retrieved 4 February 2020. +
  34. +
  35. ^ a b Sharma, Shantanu Nandan (17 February 2019). "Delhi could be the world's most populous city by 2028. But is it really prepared?" – via The Economic Times. +
  36. +
  37. ^ a b + Census of Population (2015). "National Capital Region (NCR)". Total Population by Province, City, Municipality and Barangay. PSA. Retrieved 20 June 2016. + +
  38. +
  39. ^ "2016년 5월 행정자치부 주민등록 인구통계". Archived from the original on 3 March 2011. +
  40. +
  41. ^ ???? : ???? ???? (in Korean). Ministry of Government Administration and Home Affairs. Archived from the original on 3 March 2011. Retrieved 4 April 2015. +
  42. +
  43. ^ "Maharashtra (India): Districts, Cities, Towns and Outgrowth Wards – Population Statistics in Maps and Charts". Archived from the original on 6 October 2014. +
  44. +
  45. ^ "Comprehensive Mobility Plan (CMP) for Greater Mumbai" (PDF). portal.mcgm.gov.in. Retrieved 12 March 2020. +
  46. +
  47. ^ "Mumbai Metropolitan Region Development Authority - About MMR". mmrda.maharashtra.gov.in. +
  48. +
  49. ^ a b c d e f g h i j k l m "China: Administrative Division (Provinces and Prefectures) - Population Statistics, Charts and Map". www.citypopulation.de. +
  50. +
  51. ^ a b c d e f g h "Annual Estimates of the Resident Population for Incorporated Places of 50,000 or More, Ranked by July 1, 2018 Population: April 1, 2010 to July 1, 2018". United States Census Bureau, Population Division. Archived from the original on 13 February 2020. Retrieved 23 May 2019. +
  52. +
  53. ^ "New York - Newark - Jersey City (Metropolitan Statistical Area, Metropolitan Areas, USA) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  54. +
  55. ^ "IBGE discloses municipal population estimates for 2019" (in Portuguese). IBGE. Retrieved 6 November 2019. +
  56. +
  57. ^ "São Paulo (Metropolitan Area, Metropolitan Areas, Brazil) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  58. +
  59. ^ "MEXICO: Mexico City (2014)". CityPopulation.De. Retrieved 15 March 2014. +
  60. +
  61. ^ "Valle de México (Metropolitan Area, Metropolitan Areas, Mexico) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  62. +
  63. ^ a b "Dhaka (Bangladesh): City Districts and Subdistricts - Population Statistics, Charts and Map". www.citypopulation.de. +
  64. +
  65. ^ Brinkhoff, Thomas. "Bangladesh: Districts and Cities". CityPopulation. Retrieved 20 October 2015. +
  66. +
  67. ^ "الجهاز المركزي للتعبئة العامة والإحصاء". www.capmas.gov.eg. Archived from the original on 1 October 2018. Retrieved 27 October 2018. +
  68. +
  69. ^ a b Pakistan Bureau of Statistics. "Population of Major Cities - Census 2017" (PDF). Archived from the original (PDF) on 29 August 2017. +
  70. +
  71. ^ "RUSSIA: Moscow". +
  72. +
  73. ^ "Ministry of Economic Development of the Russian Federation. Federal Registration, Cadastre&Cartography Service. Russia Landuse National Report 2008, p.187-188 (in Russian)" (PDF). Retrieved 5 October 2014. +
  74. +
  75. ^ "Table 1 Population by sex, household type and household by type, average size of private household by region and area: 2010". Statistic tables, NSO website. National Statistics Office. Archived from the original on 23 May 2013. Retrieved 18 September 2012. +
  76. +
  77. ^ "Thailand: Division (Planning Regions and Provinces) - Population Statistics, Charts and Map". www.citypopulation.de. +
  78. +
  79. ^ Nantasenamat, Pranee. "Bangkok Metropolitan area, Thailand" (Interview). International Urban Development Association (INTA). Retrieved 3 June 2019. +
  80. +
  81. ^ "Los Angeles - Long Beach - Anaheim (Metropolitan Statistical Area, Metropolitan Areas, USA) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  82. +
  83. ^ "Kolkata (West Bengal, India) - Population Statistics and Location in Maps and Charts - City Population". Citypopulation.de. Retrieved 19 July 2016. +
  84. +
  85. ^ "Responses to Information Requests - Immigration and Refugee Board of Canada". www.justice.gov. Retrieved 12 March 2020. +
  86. +
  87. ^ "..::Kolkata Metropolitan Development Authority::." kmdaonline.org. +
  88. +
  89. ^ "Argentina: Provinces and Agglomerations". citypopulation.de. Retrieved 20 October 2015. +
  90. +
  91. ^ "Región Metropolitana" (PDF). National Institute of Statistics and Census of Argentina. 2015. Retrieved 11 April 2020. +
  92. +
  93. ^ a b "Metro Lagos (Nigeria): Local Government Areas - Population Statistics, Charts and Map". www.citypopulation.de. +
  94. +
  95. ^ "IRAN: Tehran City (Census 2016-09-24)". CITY POPULATION.DE. Retrieved 25 February 2014. +
  96. +
  97. ^ "About Teheran". Tehran Municipality. Archived from the original on 19 February 2014. Retrieved 25 February 2014. +
  98. +
  99. ^ "The Results of Address Based Population Registration System, 2017". Turkish Statistical Institute. 1 February 2018. Retrieved 1 February 2018. +
  100. +
  101. ^ "Evenements: "Avec une population de 9,5 millions, Kinshasa est la troisième plus grande ville sur le continent africain, de taille égale à Johannesburg. Le Kinois (habitants de Kinshasa) sont connus pour leur sens de l'humour, leur musique et leur amour pour la danse."(2013)". Ville de Kinshasa. Archived from the original on 27 October 2001. Retrieved 27 October 2001. +
  102. +
  103. ^ "IBGE divulga as estimativas populacionais dos municípios em 2016" (in Portuguese). IBGE. Retrieved 12 December 2016. +
  104. +
  105. ^ "Rio de Janeiro (Metropolitan Area, Metropolitan Areas, Brazil) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  106. +
  107. ^ "PERU: Lima population". La Republica. +
  108. +
  109. ^ "Lima Metropolitan Area (Peru): Municipal Districts - Population Statistics, Charts and Map". www.citypopulation.de. +
  110. +
  111. ^ "Provisional Population Totals, Census of India 2011; Cities having population 1 lakh and above" (PDF). Office of the Registrar General & Census Commissioner, India. Archived from the original (PDF) on 7 May 2012. Retrieved 26 March 2012. +
  112. +
  113. ^ "INSEE official estimated population by department and region as of 1 January 2019". 22 January 2019. Archived from the original on 21 April 2017. Retrieved 4 April 2017. +
  114. +
  115. ^ a b c d "Metropolitan Area Populations". Eurostat. 18 June 2019. Retrieved 4 December 2019. +
  116. +
  117. ^ a b c Statistical Handbook of Vietnam 2014 Archived 6 July 2015 at the Wayback Machine, General Statistics Office Of Vietnam +
  118. +
  119. ^ "Population Estimates for UK, England and Wales, Scotland and Northern Ireland". Office for National Statistics. 28 June 2018. Retrieved 16 August 2018. +
  120. +
  121. ^ "Estimaciones y proyecciones de hogares y viviendas". DANE (2014). Archived from the original on 2 February 2016. +
  122. +
  123. ^ "Chennai: India Smart Cities Challenge". Official website of Smart Cities Challenge, India. Retrieved 19 July 2016.[permanent dead link] +
  124. +
  125. ^ "Expanded Chennai Corporationto be divided into 3 regions". The Hindu. Retrieved 22 March 2014. +
  126. +
  127. ^ "Hyderabad (Andhra Pradesh, India) - Population Statistics and Location in Maps and Charts - City Population". Citypopulation.de. Retrieved 19 July 2016. +
  128. +
  129. ^ "Greater Hyderabad Municipal corporation 2010". GHMC. Archived from the original on 1 January 2016. Retrieved 4 December 2010. +
  130. +
  131. ^ "Statistics by place". Statistics South Africa. Retrieved 27 September 2015. +
  132. +
  133. ^ "Chicago - Naperville - Elgin (Metropolitan Statistical Area, Metropolitan Areas, USA) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  134. +
  135. ^ 鄉鎮市區人口及按都會區統計. Taiwan Ministry of Interior. December 2015. Archived from the original on 9 December 2013. Retrieved 11 December 2016. +
  136. +
  137. ^ "Partnership for the studies of sustainable cities" (PDF). www.apec.org. Retrieved 12 March 2020. +
  138. +
  139. ^ +2015年重庆常住人口3016.55万人 继续保持增长态势 [In 2015, Chongqing's resident population of 30,165,500 people continued to grow] (in Chinese). Chongqing News. 28 January 2016. Archived from the original on 29 January 2016. Retrieved 13 February 2016. +
  140. +
  141. ^ "Population by States and Ethnic Group". Department of Information, Ministry of Communications and Multimedia, Malaysia. 2015. Archived from the original on 12 February 2016. Retrieved 12 February 2015. +
  142. +
  143. ^ a b "KL on track to megacity status". Focus Malaysia. Archived from the original on 19 December 2014. Retrieved 30 April 2015. +
  144. +
  145. ^ "Cities having population 1 lakh and above" (PDF). censusindia. The Registrar General & Census Commissioner, India. Retrieved 18 October 2011. +
  146. +
  147. ^ "Approval for Ahmedabad Metro Rail Project Phase-1". Press Information Bureau. 18 October 2014. Retrieved 11 April 2020. +
  148. +
  149. ^ a b "Luanda (Province, Angola) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  150. +
  151. ^ "Washington - Arlington - Alexandria (Metropolitan Statistical Area, Metropolitan Areas, USA) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  152. +
  153. ^ "Hong Kong Statistics". Census and Statistics Department. The Government of the Hong Kong Special Administrative Region. Retrieved 4 December 2015. +
  154. +
  155. ^ "Hong Kong Geographic" (PDF). The Government of the Hong Kong Special Administration Region. Retrieved 10 March 2014. +
  156. +
  157. ^ a b "Iraq: Governorates, Major Cities & Urban Centers - Population Statistics, Maps, Charts, Weather and Web Information". www.citypopulation.de. +
  158. +
  159. ^ "Boston - Cambridge - Newton (Metropolitan Statistical Area, Metropolitan Areas, USA) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  160. +
  161. ^ Amt für Statistik und Wahlenlanguage=German. "Demografie-Monitoring Düsseldorf 2013 bis 2018". Archived from the original (PDF) on 21 January 2010. Retrieved 7 March 2019. +
  162. +
  163. ^ "Census Profile, 2016 Census". www12.statcan.gc.ca. Statistics Canada. +
  164. +
  165. ^ "Population and dwelling counts, for Canada and census subdivisions (municipalities), 2011 and 2006 censuses". Statistics Canada. 8 February 2012. Retrieved 8 February 2012. +
  166. +
  167. ^ a b "Population and dwelling counts, for census metropolitan areas and census agglomerations, 2016 and 2011 censuses (table). 2016 Census". Statistics Canada. Retrieved 19 February 2017. +
  168. +
  169. ^ a b "Dallas - Fort Worth - Arlington (Metropolitan Statistical Area, Metropolitan Areas, USA) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  170. +
  171. ^ a b "Chile: Administrative Division (Provinces and Municipalities) - Population Statistics, Charts and Map". www.citypopulation.de. +
  172. +
  173. ^ a b "Región Metropolitana de Santiago (Chile): Provinces & Places - Population Statistics, Charts and Map". www.citypopulation.de. +
  174. +
  175. ^ a b "Statistics for Surat Municipal Corporation". Official website of Surat Municipal Corporation. Archived from the original on 15 September 2015. Retrieved 4 June 2015. +
  176. +
  177. ^ "Madrid (Spain): Province & Municipalities - Population Statistics, Charts and Map". www.citypopulation.de. +
  178. +
  179. ^ a b "Houston - The Woodlands - Sugar Land (Metropolitan Statistical Area, Metropolitan Areas, USA) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  180. +
  181. ^ "Maharashtra (India): Districts, Cities and Towns - Population Statistics, Charts and Map". www.citypopulation.de. +
  182. +
  183. ^ a b "Pune Metropolitan Region Development Authority – PMRDA". www.pmrda.gov.in. Archived from the original on 26 April 2018. Retrieved 25 April 2018. +
  184. +
  185. ^ "Census (2014)". Nanjing Municipal Bureru Statistucs. Archived from the original on 3 February 2015. Retrieved 19 January 2015. +
  186. +
  187. ^ a b "San Francisco - Oakland - Berkeley (Metropolitan Statistical Area, Metropolitan Areas, USA) - Population Statistics, Charts, Map and Location". www.citypopulation.de. +
  188. +
  189. ^ "Composition of Population (2012)" (PDF). Arriyadh Development Authority. Archived from the original (PDF) on 23 August 2013. Retrieved 4 March 2014. +
  190. +
+

External links

+ + + + + + + + +
+ + +
+ +
+
+
+
+
+ + + + + + + + diff --git a/vendor/wikipedia/majormetros.html b/vendor/wikipedia/majormetros.html deleted file mode 100644 index 3fddbed..0000000 --- a/vendor/wikipedia/majormetros.html +++ /dev/null @@ -1,1435 +0,0 @@ - - - - -List of metropolitan areas by population - Wikipedia - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-
-
-

List of metropolitan areas by population

-
-
From Wikipedia, the free encyclopedia
-
-
- Jump to: navigation, search -
-
- - - - - - - - - - - - - -

One concept which measures the world's largest cities is that of the metropolitan area, which is based on the concept of a labor market area and is typically defined as an employment core (an area with a high density of available jobs) and the surrounding areas that have strong commuting ties to the core. There is currently no generally accepted, globally consistent definition of exactly what constitutes a metropolitan area, thus making comparisons between cities in different countries especially difficult. However, for consistency, the sources on this article include official figures from governments only.

-

List[edit]

-

Note: Due to a lack of accurate governmental data, this list is incomplete.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RankMetropolitanCountryOfficial populationYear
1Tokyo Japan36,923,000[1]2010
2Shanghai China34,000,000[2]2010
3Jakarta Indonesia30,000,000[3]2014
4Seoul South Korea25,514,000[4]2016
5Guangzhou China25,000,000[2]2010
6Beijing China24,900,000[2]2010
7Karachi Pakistan24,300,000[5]2016
8Shenzhen China23,300,000[2]2010
9Delhi India21,753,486[6]2011
10Mexico City Mexico21,339,781[7]2015
11São Paulo Brazil21,242,939[8]2016
12Lagos Nigeria21,000,000[9]2014
13Mumbai India20,748,395[6]2011
14New York City United States20,092,883[10]2014
15Osaka Japan19,342,000[1]2010
16Wuhan China19,000,000[2]2010
17Chengdu China18,100,000[2]2010
18Dhaka Bangladesh17,151,925[11]2011
19Chongqing China17,000,000[2]2010
20Tianjin China15,400,000[2]2010
21Kolkata India14,617,882[6]2011
21Tehran Iran14,595,904[12]2011
22Istanbul Turkey14,377,018[13]2014
23London United Kingdom14,031,830[14]2014
24Hangzhou China13,400,000[2]2010
25Los Angeles[Note 1] United States13,262,220[10]2014
26Buenos Aires Argentina13,074,000[15]2010
27Xi'an China12,900,000[2]2010
28Manila Philippines12,877,253[16]2015
29Paris France12,405,426[2]2013
30Changzhou China12,400,000[2]2010
31Rio de Janeiro Brazil12,330,186[8]2016
32Shantou China12,000,000[2]2010
33Nanjing China11,700,000[2]2010
34Rhine-Ruhr Germany11,470,000[17]2012
35Jinan China11,000,000[2]2010
36Bangalore India10,576,167[18]2011
37Harbin China10,500,000[2]2010
38Lahore Pakistan10,052,000[19]]2010
38Lima Peru9,886,647[20]2015
39Zhengzhou China9,700,000[2]2010
40Qingdao China9,600,000[2]2010
41Chicago United States9,554,598[10]2014
42Bogotá Colombia9,286,225[21]2015
43Nagoya Japan9,107,000[1]2010
44Chennai India8,917,749[6]2011
45Bangkok Thailand8,305,218[22]2010
46Hyderabad India7,749,334[6]2011
47Riyadh Saudi Arabia7,739,570[3]2016
48Shenyang China7,700,000[2]2010
49Wenzhou China7,600,000[2]2010
50Nanchang China7,400,000[2]2010
51Hong Kong China7,298,600[23]2015
52Taipei Taiwan7,045,488[24]2013
53Dallas–Fort Worth United States6,954,330[10]2014
54Santiago Chile6,683,852[25]2012
55Luanda Angola6,542,944[26]2014
56Houston United States6,490,180[10]2014
57Madrid Spain6,378,297[14]2014
58Ahmedabad India6,352,254[6]2011
59Toronto Canada6,055,724[27]2014
60Washington, D.C. United States6,097,684[10]2015
61Philadelphia United States6,069,875[10]2015
62Berlin Germany6,004,857[14]2015
63Miami United States5,929,819[10]2014
64Belo Horizonte Brazil5,873,841[8]2016
65Atlanta United States5,614,323[10]2014
66Singapore Singapore5,535,000[28]2015
67Barcelona Spain5,445,616[14]2014
68Munich Germany5,203,738[29]2014
69Stuttgart Germany5,200,000[30]2013
70Ankara Turkey5,150,072[13]2014
71Hamburg Germany5,100,000[31]2012
72Pune India5,049,968[6]2011
73Sydney Australia5,000,500[32]2016
74Guadalajara Mexico4,796,050[7]2015
75Boston United States4,732,161[10]2014
76Melbourne Australia4,650,000[32]2016
77San Francisco United States4,594,060[10]2014
78Surat India4,585,367[6]2011
79Phoenix United States4,489,109[10]2014
80Monterrey Mexico4,477,614[7]2015
81Inland Empire[Note 1] United States4,441,890[10]2014
82Milan Italy4,321,244[14]2014
83Detroit United States4,296,611[10]2014
84Rome Italy4,267,946[14]2014
-

Notes[edit]

-
-
    -
  1. ^ a b Los Angeles is sometimes combined with the Inland Empire in what is known as the Greater Los Angeles Area, with a combined population of 17 million inhabitants.
  2. -
-
-

See also[edit]

- -

Lists of metropolitan areas by region[edit]

- -

Lists of metropolitan areas by country or region[edit]

- -

References[edit]

-
-
    -
  1. ^ a b c "Table 2.10 Population of Three Major Metropolitan Areas". Statistics Bureau of Japan. Retrieved 26 November 2013. 
  2. -
  3. ^ a b c d e f g h i j k l m n o p q r s t OECD Urban Policy Reviews: China 2015. OECD. 18 Apr 2015. p. 37. doi:10.1787/9789264230040-en. ISBN 9789264230033. 
  4. -
  5. ^ a b "Data Jumlah Penduduk Jabodetabek (2014)". finance.detik.com. Detik.com. Retrieved 17 May 2016.  Cite error: Invalid <ref> tag; name "Penduduk_Jabodetabek" defined multiple times with different content (see the help page).
  6. -
  7. ^ ???? : ???? ???? (in Korean). Ministry of Government Administration and Home Affairs. Retrieved 4 April 2015. 
  8. -
  9. ^ Brinkhoff, Thomas. "The Principal Agglomerations of the World". City Population. Retrieved 20 January 2016. 
  10. -
  11. ^ a b c d e f g h "INDIA STATS : Million plus cities in India as per Census 2011". Press Information Bureau, Government of India. 31 October 2011. Retrieved 22 December 2012. 
  12. -
  13. ^ a b c "Proyecciones de la población de las zonas metropolitanas, 2010-2030" (in Spanish). Consejo Nacional de Población (CONAPO). Retrieved 9 January 2016. 
  14. -
  15. ^ a b c "IBGE divulga as estimativas populacionais dos municípios em 2016". IBGE. August 30, 2016. Retrieved 13 December 2016. 
  16. -
  17. ^ "Population". Lagos State Government. Retrieved 30 March 2015. 
  18. -
  19. ^ a b c d e f g h i j k l m n "Annual Estimates of the Resident Population: April 1, 2010 to July 1, 2014 – United States -- Metropolitan and Micropolitan Statistical Area; and for Puerto Rico more information. 2014 Population Estimates". U.S. Census Bureau, Population Division. Retrieved 28 March 2015. 
  20. -
  21. ^ "..:: Bangladesh Bureau of Statistics ::..". 
  22. -
  23. ^ ????? ????? ???? ????? ?????????? ???/ ?????? ?????? ????? ???? ???? ???? ?????? ?????????. 
  24. -
  25. ^ a b "Adrese Dayali Nüfus Kayit Sistemi Sonuçlari, 2014" (in Turkish). TURKSTAT. Retrieved 21 September 2015. 
  26. -
  27. ^ a b c d e f "Metropolitan regions: Demographic balance and crude rates". Eurostat. Retrieved 26 January 2015. 
  28. -
  29. ^ "Censo 2010. Resultados provisionales: cuadros y gráficos" (in Spanish). Instituto Nacional de Estadística y Censos (INDEC). Retrieved 22 December 2012. 
  30. -
  31. ^ Census of Population (2015): Highlights of the Philippine Population 2015 Census of Population (Report). PSA. Retrieved 20 June 2016. 
  32. -
  33. ^ EMR
  34. -
  35. ^ [1]
  36. -
  37. ^ [http://www.demographia.com/db-worldua.pdf
  38. -
  39. ^ "PERÚ: ESTIMACIONES Y PROYECCIONES DE POBLACIÓN TOTAL POR SEXO DE LAS PRINCIPALES CIUDADES". Instituto Nacional de Estadistica e Informatica (INEI) (in Spanish). Scribd. March 2012. p. 32. Retrieved 28 October 2015. 
  40. -
  41. ^ "ESTIMACIONES DE POBLACIÓN 1985 – 2005 Y PROYECCIONES DE POBLACIÓN 2005–2020 TOTAL DEPARTAMENTAL POR ÁREA" (in Spanish). DANE. Retrieved 21 September 2015. 
  42. -
  43. ^ http://service.nso.go.th/nso/nso_center/project/table/files/C-pop/2553/000/00_C-pop_2553_000_010000_00100.xls
  44. -
  45. ^ "Population – Overview". Census and Statistics Department (Hong Kong). 25 November 2015. 
  46. -
  47. ^ "?????????????.". Ministry of the Interior (Republic of China). 2013. 
  48. -
  49. ^ "Región Metropolitana de Santiago" (PDF) (in Spanish). Instituto Nacional de Estadísticas. Retrieved 22 December 2012. 
  50. -
  51. ^ "Angola (2014)". 
  52. -
  53. ^ "Ontario Fact Sheet September 2014". Queen's Printer for Ontario. Retrieved 24 September 2014. 
  54. -
  55. ^ "Population & Land Area (Mid-Year Estimates)". Statistics Singapore. Retrieved 25 November 2015. 
  56. -
  57. ^ Metropolregion München. Metropolregion München. 
  58. -
  59. ^ Verband Region Stuttgart. "Portal der Region Stuttgart: Metropolregion Stuttgart". 
  60. -
  61. ^ "Initiativkreis Europäische Metropolregionen in Deutschland". 
  62. -
  63. ^ a b "3218.0 – Regional Population Growth, Australia, 2011–12". Australian Bureau of Statistics. 30 April 2013. Retrieved 2 May 2013. 
  64. -
-
-

External links[edit]

- - - - - - - - - - - - - - - - -
-
-
-
- - - - - diff --git a/whitelist.txt b/whitelist.txt index 9201cd7..aa9731b 100644 --- a/whitelist.txt +++ b/whitelist.txt @@ -2,34 +2,31 @@ Africa/Brazzaville Africa/Cairo Africa/Casablanca Africa/Harare +Africa/Lagos Africa/Nairobi +Africa/Onitsha Africa/Windhoek America/Anchorage -America/Atlanta +America/Argentina/Buenos_Aires America/Barbados -America/Belo_Horizonte America/Bogota America/Boston -America/Buenos_Aires America/Caracas America/Chicago America/Chihuahua America/Costa_Rica -America/DallasFort_Worth +America/Dallas America/Denver America/Godthab -America/Guadalajara America/Halifax America/Houston -America/Inland_Empire America/Los_Angeles America/Manaus America/Mexico_City -America/Miami America/Montevideo America/New_York -America/Philadelphia America/Phoenix +America/Recife America/Regina America/Rio_de_Janeiro America/San_Francisco @@ -47,25 +44,25 @@ Asia/Bangalore Asia/Bangkok Asia/Beijing Asia/Beirut -Asia/Calcutta -Asia/Changzhou Asia/Chengdu Asia/Chennai Asia/Chongqing Asia/Colombo Asia/Delhi +Asia/Dongguan Asia/Dubai Asia/Guangzhou Asia/Hangzhou +Asia/Hanoi +Asia/Ho_Chi_Minh Asia/Hong_Kong Asia/Hyderabad Asia/Irkutsk Asia/Jakarta Asia/Jerusalem -Asia/Jinan Asia/Kabul Asia/Karachi -Asia/Katmandu +Asia/Kathmandu Asia/Kolkata Asia/Krasnoyarsk Asia/Kuala_Lumpur @@ -74,13 +71,11 @@ Asia/Lahore Asia/Magadan Asia/Mumbai Asia/Nagoya -Asia/Nanchang Asia/Nanjing Asia/Oral Asia/Osaka Asia/Pune -Asia/Qingdao -Asia/Rangoon +Asia/Quanzhou Asia/Seoul Asia/Shanghai Asia/Shenyang @@ -92,10 +87,10 @@ Asia/Tehran Asia/Tianjin Asia/Tokyo Asia/Vladivostok -Asia/Wenzhou Asia/Wuhan Asia/Xi'an Asia/Yakutsk +Asia/Yangon Asia/Yekaterinburg Asia/Yerevan Asia/Zhengzhou @@ -108,30 +103,25 @@ Australia/Darwin Australia/Hobart Australia/Perth Australia/Sydney +Etc/UTC Europe/Amsterdam -Europe/Ankara Europe/Athens -Europe/Barcelona Europe/Belgrade Europe/Berlin Europe/Brussels -Europe/Hamburg +Europe/Dusseldorf Europe/Helsinki Europe/Istanbul Europe/London Europe/Madrid -Europe/Milan Europe/Minsk Europe/Moscow -Europe/Munich -Europe/Rhine-Ruhr -Europe/Rome Europe/Sarajevo -Europe/Stuttgart Pacific/Auckland Pacific/Fiji Pacific/Guam Pacific/Honolulu Pacific/Majuro Pacific/Midway +Pacific/Noumea Pacific/Tongatapu \ No newline at end of file diff --git a/zones.c b/zones.c index ea66148..8f02174 100644 --- a/zones.c +++ b/zones.c @@ -1,48 +1,88 @@ #include "utz.h" -const urule_packed_t zone_rules[50] = { +const urule_packed_t zone_rules[90] = { { 8, 255, 7, 1, 1, 2, 0, 1, 4, 0}, // AN 2008 max - Apr Sun>=1 2:00s 0 S { 8, 255, 7, 1, 1, 2, 0, 2, 10, 1}, // AN 2008 max - Oct Sun>=1 2:00s 1:00 D { 8, 255, 7, 1, 1, 2, 0, 1, 4, 0}, // AS 2008 max - Apr Sun>=1 2:00s 0 S { 8, 255, 7, 1, 1, 2, 0, 2, 10, 1}, // AS 2008 max - Oct Sun>=1 2:00s 1:00 D { 8, 255, 7, 1, 1, 2, 0, 1, 4, 0}, // AT 2008 max - Apr Sun>=1 2:00s 0 S { 1, 255, 7, 1, 1, 2, 0, 2, 10, 1}, // AT 2001 max - Oct Sun>=1 2:00s 1:00 D -{ 16, 22, 6, 14, 1, 23, 0, 0, 2, 0}, // Brazil 2016 2022 - Feb Sun>=15 0:00 0 - -{ 23, 23, 6, 21, 1, 23, 0, 0, 2, 0}, // Brazil 2023 only - Feb Sun>=22 0:00 0 - -{ 24, 25, 6, 14, 1, 23, 0, 0, 2, 0}, // Brazil 2024 2025 - Feb Sun>=15 0:00 0 - -{ 26, 26, 6, 21, 1, 23, 0, 0, 2, 0}, // Brazil 2026 only - Feb Sun>=22 0:00 0 - -{ 27, 33, 6, 14, 1, 23, 0, 0, 2, 0}, // Brazil 2027 2033 - Feb Sun>=15 0:00 0 - -{ 34, 34, 6, 21, 1, 23, 0, 0, 2, 0}, // Brazil 2034 only - Feb Sun>=22 0:00 0 - -{ 35, 36, 6, 14, 1, 23, 0, 0, 2, 0}, // Brazil 2035 2036 - Feb Sun>=15 0:00 0 - -{ 37, 37, 6, 21, 1, 23, 0, 0, 2, 0}, // Brazil 2037 only - Feb Sun>=22 0:00 0 - -{ 38, 255, 6, 14, 1, 23, 0, 0, 2, 0}, // Brazil 2038 max - Feb Sun>=15 0:00 0 - -{ 8, 255, 7, 15, 1, 0, 0, 1, 10, 1}, // Brazil 2008 max - Oct Sun>=15 0:00 1:00 S { 7, 255, 7, 8, 1, 2, 0, 2, 3, 1}, // Canada 2007 max - Mar Sun>=8 2:00 1:00 D { 7, 255, 7, 1, 1, 1, 0, 1, 11, 0}, // Canada 2007 max - Nov Sun>=1 2:00 0 S -{ 16, 255, 7, 9, 0, 3, 0, 0, 5, 0}, // Chile 2016 max - May Sun>=9 3:00u 0 - -{ 16, 255, 7, 9, 0, 4, 0, 1, 8, 1}, // Chile 2016 max - Aug Sun>=9 4:00u 1:00 S -{ 0, 255, 7, 0, 0, 1, 0, 1, 3, 1}, // EU 1981 max - Mar lastSun 1:00u 1:00 S -{ 0, 255, 7, 0, 0, 1, 0, 0, 10, 0}, // EU 1996 max - Oct lastSun 1:00u 0 - -{ 17, 19, 0, 22, 1, 0, 0, 2, 3, 1}, // Iran 2017 2019 - Mar 22 0:00 1:00 D -{ 20, 20, 0, 21, 1, 0, 0, 2, 3, 1}, // Iran 2020 only - Mar 21 0:00 1:00 D -{ 21, 23, 0, 22, 1, 0, 0, 2, 3, 1}, // Iran 2021 2023 - Mar 22 0:00 1:00 D -{ 24, 24, 0, 21, 1, 0, 0, 2, 3, 1}, // Iran 2024 only - Mar 21 0:00 1:00 D -{ 25, 27, 0, 22, 1, 0, 0, 2, 3, 1}, // Iran 2025 2027 - Mar 22 0:00 1:00 D -{ 28, 29, 0, 21, 1, 0, 0, 2, 3, 1}, // Iran 2028 2029 - Mar 21 0:00 1:00 D -{ 30, 31, 0, 22, 1, 0, 0, 2, 3, 1}, // Iran 2030 2031 - Mar 22 0:00 1:00 D -{ 32, 33, 0, 21, 1, 0, 0, 2, 3, 1}, // Iran 2032 2033 - Mar 21 0:00 1:00 D -{ 34, 35, 0, 22, 1, 0, 0, 2, 3, 1}, // Iran 2034 2035 - Mar 22 0:00 1:00 D -{ 36, 255, 0, 21, 1, 0, 0, 2, 3, 1}, // Iran 2036 max - Mar 21 0:00 1:00 D -{ 17, 19, 0, 21, 1, 23, 0, 1, 9, 0}, // Iran 2017 2019 - Sep 22 0:00 0 S -{ 20, 20, 0, 20, 1, 23, 0, 1, 9, 0}, // Iran 2020 only - Sep 21 0:00 0 S -{ 21, 23, 0, 21, 1, 23, 0, 1, 9, 0}, // Iran 2021 2023 - Sep 22 0:00 0 S -{ 24, 24, 0, 20, 1, 23, 0, 1, 9, 0}, // Iran 2024 only - Sep 21 0:00 0 S -{ 25, 27, 0, 21, 1, 23, 0, 1, 9, 0}, // Iran 2025 2027 - Sep 22 0:00 0 S -{ 28, 29, 0, 20, 1, 23, 0, 1, 9, 0}, // Iran 2028 2029 - Sep 21 0:00 0 S -{ 30, 31, 0, 21, 1, 23, 0, 1, 9, 0}, // Iran 2030 2031 - Sep 22 0:00 0 S -{ 32, 33, 0, 20, 1, 23, 0, 1, 9, 0}, // Iran 2032 2033 - Sep 21 0:00 0 S -{ 34, 35, 0, 21, 1, 23, 0, 1, 9, 0}, // Iran 2034 2035 - Sep 22 0:00 0 S -{ 36, 255, 0, 20, 1, 23, 0, 1, 9, 0}, // Iran 2036 max - Sep 21 0:00 0 S +{ 19, 255, 7, 2, 0, 3, 0, 0, 4, 0}, // Chile 2019 max - Apr Sun>=2 3:00u 0 - +{ 19, 255, 7, 2, 0, 4, 0, 0, 9, 1}, // Chile 2019 max - Sep Sun>=2 4:00u 1:00 - +{ 0, 255, 7, 0, 0, 1, 0, 1, 3, 1}, // EU 1981 max - Mar lastSun 1:00u 1:00 S +{ 0, 255, 7, 0, 0, 1, 0, 0, 10, 0}, // EU 1996 max - Oct lastSun 1:00u 0 - +{ 20, 20, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2020 only - Mar 20 24:00 1:00 - +{ 21, 23, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2021 2023 - Mar 21 24:00 1:00 - +{ 24, 24, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2024 only - Mar 20 24:00 1:00 - +{ 25, 27, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2025 2027 - Mar 21 24:00 1:00 - +{ 28, 29, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2028 2029 - Mar 20 24:00 1:00 - +{ 30, 31, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2030 2031 - Mar 21 24:00 1:00 - +{ 32, 33, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2032 2033 - Mar 20 24:00 1:00 - +{ 34, 35, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2034 2035 - Mar 21 24:00 1:00 - +{ 36, 37, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2036 2037 - Mar 20 24:00 1:00 - +{ 38, 39, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2038 2039 - Mar 21 24:00 1:00 - +{ 40, 41, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2040 2041 - Mar 20 24:00 1:00 - +{ 42, 43, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2042 2043 - Mar 21 24:00 1:00 - +{ 44, 45, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2044 2045 - Mar 20 24:00 1:00 - +{ 46, 47, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2046 2047 - Mar 21 24:00 1:00 - +{ 48, 49, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2048 2049 - Mar 20 24:00 1:00 - +{ 50, 51, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2050 2051 - Mar 21 24:00 1:00 - +{ 52, 53, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2052 2053 - Mar 20 24:00 1:00 - +{ 54, 55, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2054 2055 - Mar 21 24:00 1:00 - +{ 56, 57, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2056 2057 - Mar 20 24:00 1:00 - +{ 58, 59, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2058 2059 - Mar 21 24:00 1:00 - +{ 60, 62, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2060 2062 - Mar 20 24:00 1:00 - +{ 63, 63, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2063 only - Mar 21 24:00 1:00 - +{ 64, 66, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2064 2066 - Mar 20 24:00 1:00 - +{ 67, 67, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2067 only - Mar 21 24:00 1:00 - +{ 68, 70, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2068 2070 - Mar 20 24:00 1:00 - +{ 71, 71, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2071 only - Mar 21 24:00 1:00 - +{ 72, 74, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2072 2074 - Mar 20 24:00 1:00 - +{ 75, 75, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2075 only - Mar 21 24:00 1:00 - +{ 76, 78, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2076 2078 - Mar 20 24:00 1:00 - +{ 79, 79, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2079 only - Mar 21 24:00 1:00 - +{ 80, 82, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2080 2082 - Mar 20 24:00 1:00 - +{ 83, 83, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2083 only - Mar 21 24:00 1:00 - +{ 84, 86, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2084 2086 - Mar 20 24:00 1:00 - +{ 87, 87, 0, 21, 1, 24, 0, 0, 3, 1}, // Iran 2087 only - Mar 21 24:00 1:00 - +{ 88, 255, 0, 20, 1, 24, 0, 0, 3, 1}, // Iran 2088 max - Mar 20 24:00 1:00 - +{ 20, 20, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2020 only - Sep 20 24:00 0 - +{ 21, 23, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2021 2023 - Sep 21 24:00 0 - +{ 24, 24, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2024 only - Sep 20 24:00 0 - +{ 25, 27, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2025 2027 - Sep 21 24:00 0 - +{ 28, 29, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2028 2029 - Sep 20 24:00 0 - +{ 30, 31, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2030 2031 - Sep 21 24:00 0 - +{ 32, 33, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2032 2033 - Sep 20 24:00 0 - +{ 34, 35, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2034 2035 - Sep 21 24:00 0 - +{ 36, 37, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2036 2037 - Sep 20 24:00 0 - +{ 38, 39, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2038 2039 - Sep 21 24:00 0 - +{ 40, 41, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2040 2041 - Sep 20 24:00 0 - +{ 42, 43, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2042 2043 - Sep 21 24:00 0 - +{ 44, 45, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2044 2045 - Sep 20 24:00 0 - +{ 46, 47, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2046 2047 - Sep 21 24:00 0 - +{ 48, 49, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2048 2049 - Sep 20 24:00 0 - +{ 50, 51, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2050 2051 - Sep 21 24:00 0 - +{ 52, 53, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2052 2053 - Sep 20 24:00 0 - +{ 54, 55, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2054 2055 - Sep 21 24:00 0 - +{ 56, 57, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2056 2057 - Sep 20 24:00 0 - +{ 58, 59, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2058 2059 - Sep 21 24:00 0 - +{ 60, 62, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2060 2062 - Sep 20 24:00 0 - +{ 63, 63, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2063 only - Sep 21 24:00 0 - +{ 64, 66, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2064 2066 - Sep 20 24:00 0 - +{ 67, 67, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2067 only - Sep 21 24:00 0 - +{ 68, 70, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2068 2070 - Sep 20 24:00 0 - +{ 71, 71, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2071 only - Sep 21 24:00 0 - +{ 72, 74, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2072 2074 - Sep 20 24:00 0 - +{ 75, 75, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2075 only - Sep 21 24:00 0 - +{ 76, 78, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2076 2078 - Sep 20 24:00 0 - +{ 79, 79, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2079 only - Sep 21 24:00 0 - +{ 80, 82, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2080 2082 - Sep 20 24:00 0 - +{ 83, 83, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2083 only - Sep 21 24:00 0 - +{ 84, 86, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2084 2086 - Sep 20 24:00 0 - +{ 87, 87, 0, 21, 1, 23, 0, 0, 9, 0}, // Iran 2087 only - Sep 21 24:00 0 - +{ 88, 255, 0, 20, 1, 23, 0, 0, 9, 0}, // Iran 2088 max - Sep 20 24:00 0 - { 2, 255, 7, 1, 1, 2, 0, 2, 4, 1}, // Mexico 2002 max - Apr Sun>=1 2:00 1:00 D { 2, 255, 7, 0, 1, 1, 0, 1, 10, 0}, // Mexico 2002 max - Oct lastSun 2:00 0 S { 8, 255, 7, 1, 1, 2, 0, 1, 4, 0}, // NZ 2008 max - Apr Sun>=1 2:00s 0 S @@ -53,36 +93,35 @@ const urule_packed_t zone_rules[50] = { { 13, 255, 7, 0, 1, 1, 0, 1, 10, 0}, // Zion 2013 max - Oct lastSun 2:00 0 S }; -const char zone_abrevs[209] = { +const char zone_abrevs[214] = { 'E','E','S','T','\0', 'W','A','T','\0', 'C','A','T','\0', 'E','A','T','\0', 'A','K','%','c','T','\0', -'A','R','S','T','\0', +'-','0','3','/','-','0','2','\0', 'C','%','c','T','\0', 'M','%','c','T','\0', 'A','%','c','T','\0', 'P','%','c','T','\0', -'A','M','T','\0', +'-','0','4','\0', 'E','%','c','T','\0', 'M','S','T','\0', 'C','S','T','\0', -'C','L','%','c','T','\0', -'B','R','%','c','T','\0', +'-','0','4','/','-','0','3','\0', 'N','%','c','T','\0', -'I','C','T','\0', -'G','S','T','\0', +'+','0','7','\0', +'+','0','4','\0', 'H','K','S','T','\0', 'I','%','c','T','\0', 'P','K','S','T','\0', -'N','P','T','\0', +'+','0','5','4','5','\0', 'I','S','T','\0', -'A','S','T','\0', +'+','0','3','\0', 'K','S','T','\0', -'I','R','%','c','T','\0', +'+','0','3','3','0','/','+','0','4','3','0','\0', 'J','S','T','\0', -'M','M','T','\0', +'+','0','6','3','0','\0', 'A','C','%','c','T','\0', 'A','E','S','T','\0', 'A','C','S','T','\0', @@ -90,7 +129,6 @@ const char zone_abrevs[209] = { 'A','W','S','T','\0', 'C','E','%','c','T','\0', 'E','E','%','c','T','\0', -'+','0','3','\0', 'G','M','T','/','B','S','T','\0', 'M','S','K','\0', 'N','Z','%','c','T','\0', @@ -99,205 +137,188 @@ const char zone_abrevs[209] = { 'S','S','T','\0', }; -const uzone_packed_t zone_defns[46] = { -// Africa/Cairo 2:00 Egypt EE%sT +const uzone_packed_t zone_defns[44] = { +// Africa/Cairo 2:00 Egypt EE%sT { 8, 0, 0, 0}, -// Africa/Lagos 1:00 - WAT +// Africa/Lagos 1:00 - WAT { 4, 0, 0, 5}, -// Africa/Maputo 2:00 - CAT +// Africa/Maputo 2:00 - CAT { 8, 0, 0, 9}, -// Africa/Nairobi 3:00 - EAT +// Africa/Nairobi 3:00 - EAT { 12, 0, 0, 13}, -// America/Anchorage -9:00 US AK%sT -{-36, 46, 2, 17}, -// America/Argentina/Buenos_Aires -3:00 Arg AR%sT +// America/Anchorage -9:00 US AK%sT +{-36, 86, 2, 17}, +// America/Argentina/Buenos_Aires -3:00 Arg -03/-02 +// America/Sao_Paulo -3:00 Brazil -03/-02 {-12, 0, 0, 23}, -// America/Chicago -6:00 US C%sT -{-24, 46, 2, 28}, -// America/Denver -7:00 US M%sT -{-28, 46, 2, 33}, -// America/Halifax -4:00 Canada A%sT -{-16, 16, 2, 38}, -// America/Los_Angeles -8:00 US P%sT -// America/Tijuana -8:00 US P%sT -{-32, 46, 2, 43}, -// America/Manaus -4:00 - AMT -{-16, 0, 0, 48}, -// America/Mexico_City -6:00 Mexico C%sT -{-24, 42, 2, 28}, -// America/New_York -5:00 US E%sT -{-20, 46, 2, 52}, -// America/Phoenix -7:00 - MST -{-28, 0, 0, 57}, -// America/Regina -6:00 - CST -{-24, 0, 0, 61}, -// America/Santiago -4:00 Chile CL%sT -{-16, 18, 2, 65}, -// America/Sao_Paulo -3:00 Brazil BR%sT -{-12, 6, 10, 71}, -// America/St_Johns -3:30 Canada N%sT -{-10, 16, 2, 77}, -// Asia/Bangkok 7:00 - ICT -{ 28, 0, 0, 82}, -// Asia/Dubai 4:00 - GST -{ 16, 0, 0, 86}, -// Asia/Hong_Kong 8:00 HK HK%sT -{ 32, 0, 0, 90}, -// Asia/Jerusalem 2:00 Zion I%sT -{ 8, 48, 2, 95}, -// Asia/Karachi 5:00 Pakistan PK%sT -{ 20, 0, 0, 100}, -// Asia/Kathmandu 5:45 - NPT -{ 23, 0, 0, 105}, -// Asia/Kolkata 5:30 - IST -{ 22, 0, 0, 109}, -// Asia/Riyadh 3:00 - AST -{ 12, 0, 0, 113}, -// Asia/Seoul 9:00 ROK K%sT -{ 36, 0, 0, 117}, -// Asia/Shanghai 8:00 PRC C%sT -// Asia/Taipei 8:00 Taiwan C%sT -{ 32, 0, 0, 61}, -// Asia/Tehran 3:30 Iran IR%sT -{ 14, 22, 20, 121}, -// Asia/Tokyo 9:00 Japan J%sT -{ 36, 0, 0, 127}, -// Asia/Yangon 6:30 - MMT -{ 26, 0, 0, 131}, -// Australia/Adelaide 9:30 AS AC%sT -{ 38, 2, 2, 135}, -// Australia/Brisbane 10:00 AQ AE%sT -{ 40, 0, 0, 141}, -// Australia/Darwin 9:30 Aus AC%sT -{ 38, 0, 0, 146}, -// Australia/Hobart 10:00 AT AE%sT -{ 40, 4, 2, 151}, -// Australia/Perth 8:00 AW AW%sT -{ 32, 0, 0, 157}, -// Australia/Sydney 10:00 AN AE%sT -{ 40, 0, 2, 151}, -// Europe/Belgrade 1:00 EU CE%sT -// Europe/Berlin 1:00 EU CE%sT -// Europe/Madrid 1:00 EU CE%sT -// Europe/Rome 1:00 EU CE%sT -{ 4, 20, 2, 162}, -// Europe/Helsinki 2:00 EU EE%sT -{ 8, 20, 2, 168}, -// Europe/Istanbul 3:00 - +03 -{ 12, 0, 0, 174}, -// Europe/London 0:00 EU GMT/BST -{ 0, 20, 2, 178}, -// Europe/Moscow 3:00 - MSK -{ 12, 0, 0, 186}, -// Pacific/Auckland 12:00 NZ NZ%sT -{ 48, 44, 2, 190}, -// Pacific/Guam 10:00 - ChST -{ 40, 0, 0, 196}, -// Pacific/Honolulu -10:00 - HST -{-40, 0, 0, 201}, -// Pacific/Pago_Pago -11:00 - SST -{-44, 0, 0, 205}, +// America/Chicago -6:00 US C%sT +{-24, 86, 2, 31}, +// America/Denver -7:00 US M%sT +{-28, 86, 2, 36}, +// America/Halifax -4:00 Canada A%sT +{-16, 6, 2, 41}, +// America/Los_Angeles -8:00 US P%sT +// America/Tijuana -8:00 US P%sT +{-32, 86, 2, 46}, +// America/Manaus -4:00 - -04 +{-16, 0, 0, 51}, +// America/Mexico_City -6:00 Mexico C%sT +{-24, 82, 2, 31}, +// America/New_York -5:00 US E%sT +{-20, 86, 2, 55}, +// America/Phoenix -7:00 - MST +{-28, 0, 0, 60}, +// America/Regina -6:00 - CST +{-24, 0, 0, 64}, +// America/Santiago -4:00 Chile -04/-03 +{-16, 8, 2, 68}, +// America/St_Johns -3:30 Canada N%sT +{-10, 6, 2, 76}, +// Asia/Bangkok 7:00 - +07 +// Asia/Ho_Chi_Minh 7:00 - +07 +{ 28, 0, 0, 81}, +// Asia/Dubai 4:00 - +04 +{ 16, 0, 0, 85}, +// Asia/Hong_Kong 8:00 HK HK%sT +{ 32, 0, 0, 89}, +// Asia/Jerusalem 2:00 Zion I%sT +{ 8, 88, 2, 94}, +// Asia/Karachi 5:00 Pakistan PK%sT +{ 20, 0, 0, 99}, +// Asia/Kathmandu 5:45 - +0545 +{ 23, 0, 0, 104}, +// Asia/Kolkata 5:30 - IST +{ 22, 0, 0, 110}, +// Asia/Riyadh 3:00 - +03 +// Europe/Istanbul 3:00 - +03 +{ 12, 0, 0, 114}, +// Asia/Seoul 9:00 ROK K%sT +{ 36, 0, 0, 118}, +// Asia/Shanghai 8:00 PRC C%sT +// Asia/Taipei 8:00 Taiwan C%sT +{ 32, 0, 0, 64}, +// Asia/Tehran 3:30 Iran +0330/+0430 +{ 14, 12, 70, 122}, +// Asia/Tokyo 9:00 Japan J%sT +{ 36, 0, 0, 134}, +// Asia/Yangon 6:30 - +0630 +{ 26, 0, 0, 138}, +// Australia/Adelaide 9:30 AS AC%sT +{ 38, 2, 2, 144}, +// Australia/Brisbane 10:00 AQ AE%sT +{ 40, 0, 0, 150}, +// Australia/Darwin 9:30 Aus AC%sT +{ 38, 0, 0, 155}, +// Australia/Hobart 10:00 AT AE%sT +{ 40, 4, 2, 160}, +// Australia/Perth 8:00 AW AW%sT +{ 32, 0, 0, 166}, +// Australia/Sydney 10:00 AN AE%sT +{ 40, 0, 2, 160}, +// Europe/Belgrade 1:00 EU CE%sT +// Europe/Berlin 1:00 EU CE%sT +{ 4, 10, 2, 171}, +// Europe/Helsinki 2:00 EU EE%sT +{ 8, 10, 2, 177}, +// Europe/London 0:00 EU GMT/BST +{ 0, 10, 2, 183}, +// Europe/Moscow 3:00 - MSK +{ 12, 0, 0, 191}, +// Pacific/Auckland 12:00 NZ NZ%sT +{ 48, 84, 2, 195}, +// Pacific/Guam 10:00 - ChST +{ 40, 0, 0, 201}, +// Pacific/Honolulu -10:00 - HST +{-40, 0, 0, 206}, +// Pacific/Pago_Pago -11:00 - SST +{-44, 0, 0, 210}, }; -const unsigned char zone_names[961] = { - 'A','d','e','l','a','i','d','e','\0', 31, // Adelaide - 'A','h','m','e','d','a','b','a','d','\0', 24, // Ahmedabad +const unsigned char zone_names[809] = { + 'A','d','e','l','a','i','d','e','\0', 30, // Adelaide + 'A','h','m','e','d','a','b','a','d','\0', 23, // Ahmedabad 'A','n','c','h','o','r','a','g','e','\0', 4, // Anchorage - 'A','n','k','a','r','a','\0', 39, // Ankara - 'A','t','l','a','n','t','a','\0', 12, // Atlanta - 'A','u','c','k','l','a','n','d','\0', 42, // Auckland - 'B','a','n','g','a','l','o','r','e','\0', 24, // Bangalore - 'B','a','n','g','k','o','k','\0', 18, // Bangkok - 'B','a','r','c','e','l','o','n','a','\0', 37, // Barcelona - 'B','e','i','j','i','n','g','\0', 27, // Beijing - 'B','e','l','g','r','a','d','e','\0', 37, // Belgrade - 'B','e','l','o',' ','H','o','r','i','z','o','n','t','e','\0', 16, // Belo Horizonte - 'B','e','r','l','i','n','\0', 37, // Berlin + 'A','u','c','k','l','a','n','d','\0', 40, // Auckland + 'B','a','n','g','a','l','o','r','e','\0', 23, // Bangalore + 'B','a','n','g','k','o','k','\0', 17, // Bangkok + 'B','e','i','j','i','n','g','\0', 26, // Beijing + 'B','e','l','g','r','a','d','e','\0', 36, // Belgrade + 'B','e','r','l','i','n','\0', 36, // Berlin 'B','o','s','t','o','n','\0', 12, // Boston 'B','r','a','z','z','a','v','i','l','l','e','\0', 1, // Brazzaville - 'B','r','i','s','b','a','n','e','\0', 32, // Brisbane + 'B','r','i','s','b','a','n','e','\0', 31, // Brisbane 'B','u','e','n','o','s',' ','A','i','r','e','s','\0', 5, // Buenos Aires 'C','a','i','r','o','\0', 0, // Cairo - 'C','a','l','c','u','t','t','a','\0', 24, // Calcutta - 'C','h','a','n','g','z','h','o','u','\0', 27, // Changzhou - 'C','h','e','n','g','d','u','\0', 27, // Chengdu - 'C','h','e','n','n','a','i','\0', 24, // Chennai + 'C','h','e','n','g','d','u','\0', 26, // Chengdu + 'C','h','e','n','n','a','i','\0', 23, // Chennai 'C','h','i','c','a','g','o','\0', 6, // Chicago - 'C','h','o','n','g','q','i','n','g','\0', 27, // Chongqing - 'D','a','l','l','a','s','F','o','r','t',' ','W','o','r','t','h','\0', 6, // DallasFort Worth - 'D','a','r','w','i','n','\0', 33, // Darwin - 'D','e','l','h','i','\0', 24, // Delhi + 'C','h','o','n','g','q','i','n','g','\0', 26, // Chongqing + 'D','a','l','l','a','s','\0', 6, // Dallas + 'D','a','r','w','i','n','\0', 32, // Darwin + 'D','e','l','h','i','\0', 23, // Delhi 'D','e','n','v','e','r','\0', 7, // Denver - 'D','u','b','a','i','\0', 19, // Dubai - 'G','u','a','d','a','l','a','j','a','r','a','\0', 11, // Guadalajara - 'G','u','a','m','\0', 43, // Guam - 'G','u','a','n','g','z','h','o','u','\0', 27, // Guangzhou + 'D','o','n','g','g','u','a','n','\0', 26, // Dongguan + 'D','u','b','a','i','\0', 18, // Dubai + 'D','u','s','s','e','l','d','o','r','f','\0', 36, // Dusseldorf + 'G','u','a','m','\0', 41, // Guam + 'G','u','a','n','g','z','h','o','u','\0', 26, // Guangzhou 'H','a','l','i','f','a','x','\0', 8, // Halifax - 'H','a','m','b','u','r','g','\0', 37, // Hamburg - 'H','a','n','g','z','h','o','u','\0', 27, // Hangzhou + 'H','a','n','g','z','h','o','u','\0', 26, // Hangzhou + 'H','a','n','o','i','\0', 17, // Hanoi 'H','a','r','a','r','e','\0', 2, // Harare - 'H','e','l','s','i','n','k','i','\0', 38, // Helsinki - 'H','o','b','a','r','t','\0', 34, // Hobart - 'H','o','n','g',' ','K','o','n','g','\0', 20, // Hong Kong - 'H','o','n','o','l','u','l','u','\0', 44, // Honolulu + 'H','e','l','s','i','n','k','i','\0', 37, // Helsinki + 'H','o',' ','C','h','i',' ','M','i','n','h','\0', 17, // Ho Chi Minh + 'H','o','b','a','r','t','\0', 33, // Hobart + 'H','o','n','g',' ','K','o','n','g','\0', 19, // Hong Kong + 'H','o','n','o','l','u','l','u','\0', 42, // Honolulu 'H','o','u','s','t','o','n','\0', 6, // Houston - 'H','y','d','e','r','a','b','a','d','\0', 24, // Hyderabad - 'I','n','l','a','n','d',' ','E','m','p','i','r','e','\0', 9, // Inland Empire - 'I','s','t','a','n','b','u','l','\0', 39, // Istanbul - 'J','e','r','u','s','a','l','e','m','\0', 21, // Jerusalem - 'J','i','n','a','n','\0', 27, // Jinan - 'K','a','r','a','c','h','i','\0', 22, // Karachi - 'K','a','t','m','a','n','d','u','\0', 23, // Katmandu - 'K','o','l','k','a','t','a','\0', 24, // Kolkata - 'K','u','w','a','i','t','\0', 25, // Kuwait - 'L','a','h','o','r','e','\0', 22, // Lahore - 'L','o','n','d','o','n','\0', 40, // London + 'H','y','d','e','r','a','b','a','d','\0', 23, // Hyderabad + 'I','s','t','a','n','b','u','l','\0', 24, // Istanbul + 'J','e','r','u','s','a','l','e','m','\0', 20, // Jerusalem + 'K','a','r','a','c','h','i','\0', 21, // Karachi + 'K','a','t','h','m','a','n','d','u','\0', 22, // Kathmandu + 'K','o','l','k','a','t','a','\0', 23, // Kolkata + 'K','u','w','a','i','t','\0', 24, // Kuwait + 'L','a','g','o','s','\0', 1, // Lagos + 'L','a','h','o','r','e','\0', 21, // Lahore + 'L','o','n','d','o','n','\0', 38, // London 'L','o','s',' ','A','n','g','e','l','e','s','\0', 9, // Los Angeles - 'M','a','d','r','i','d','\0', 37, // Madrid 'M','a','n','a','u','s','\0', 10, // Manaus 'M','e','x','i','c','o',' ','C','i','t','y','\0', 11, // Mexico City - 'M','i','a','m','i','\0', 12, // Miami - 'M','i','d','w','a','y','\0', 45, // Midway - 'M','i','l','a','n','\0', 37, // Milan - 'M','o','s','c','o','w','\0', 41, // Moscow - 'M','u','m','b','a','i','\0', 24, // Mumbai - 'M','u','n','i','c','h','\0', 37, // Munich - 'N','a','g','o','y','a','\0', 29, // Nagoya + 'M','i','d','w','a','y','\0', 43, // Midway + 'M','o','s','c','o','w','\0', 39, // Moscow + 'M','u','m','b','a','i','\0', 23, // Mumbai + 'N','a','g','o','y','a','\0', 28, // Nagoya 'N','a','i','r','o','b','i','\0', 3, // Nairobi - 'N','a','n','c','h','a','n','g','\0', 27, // Nanchang - 'N','a','n','j','i','n','g','\0', 27, // Nanjing + 'N','a','n','j','i','n','g','\0', 26, // Nanjing 'N','e','w',' ','Y','o','r','k','\0', 12, // New York - 'O','s','a','k','a','\0', 29, // Osaka - 'P','e','r','t','h','\0', 35, // Perth - 'P','h','i','l','a','d','e','l','p','h','i','a','\0', 12, // Philadelphia + 'O','n','i','t','s','h','a','\0', 1, // Onitsha + 'O','s','a','k','a','\0', 28, // Osaka + 'P','e','r','t','h','\0', 34, // Perth 'P','h','o','e','n','i','x','\0', 13, // Phoenix - 'P','u','n','e','\0', 24, // Pune - 'Q','i','n','g','d','a','o','\0', 27, // Qingdao - 'R','a','n','g','o','o','n','\0', 30, // Rangoon + 'P','u','n','e','\0', 23, // Pune + 'Q','u','a','n','z','h','o','u','\0', 26, // Quanzhou 'R','e','g','i','n','a','\0', 14, // Regina - 'R','h','i','n','e','-','R','u','h','r','\0', 37, // Rhine-Ruhr - 'R','i','o',' ','d','e',' ','J','a','n','e','i','r','o','\0', 16, // Rio de Janeiro - 'R','o','m','e','\0', 37, // Rome + 'R','i','o',' ','d','e',' ','J','a','n','e','i','r','o','\0', 5, // Rio de Janeiro 'S','a','n',' ','F','r','a','n','c','i','s','c','o','\0', 9, // San Francisco 'S','a','n','t','i','a','g','o','\0', 15, // Santiago - 'S','a','o',' ','P','a','u','l','o','\0', 16, // Sao Paulo - 'S','a','r','a','j','e','v','o','\0', 37, // Sarajevo - 'S','e','o','u','l','\0', 26, // Seoul - 'S','h','a','n','g','h','a','i','\0', 27, // Shanghai - 'S','h','e','n','y','a','n','g','\0', 27, // Shenyang - 'S','h','e','n','z','h','e','n','\0', 27, // Shenzhen - 'S','t',' ','J','o','h','n','s','\0', 17, // St Johns - 'S','t','u','t','t','g','a','r','t','\0', 37, // Stuttgart - 'S','u','r','a','t','\0', 24, // Surat - 'S','y','d','n','e','y','\0', 36, // Sydney - 'T','a','i','p','e','i','\0', 27, // Taipei - 'T','e','h','r','a','n','\0', 28, // Tehran - 'T','i','a','n','j','i','n','\0', 27, // Tianjin + 'S','a','o',' ','P','a','u','l','o','\0', 5, // Sao Paulo + 'S','a','r','a','j','e','v','o','\0', 36, // Sarajevo + 'S','e','o','u','l','\0', 25, // Seoul + 'S','h','a','n','g','h','a','i','\0', 26, // Shanghai + 'S','h','e','n','y','a','n','g','\0', 26, // Shenyang + 'S','h','e','n','z','h','e','n','\0', 26, // Shenzhen + 'S','t',' ','J','o','h','n','s','\0', 16, // St Johns + 'S','u','r','a','t','\0', 23, // Surat + 'S','y','d','n','e','y','\0', 35, // Sydney + 'T','a','i','p','e','i','\0', 26, // Taipei + 'T','e','h','r','a','n','\0', 27, // Tehran + 'T','i','a','n','j','i','n','\0', 26, // Tianjin 'T','i','j','u','a','n','a','\0', 9, // Tijuana - 'T','o','k','y','o','\0', 29, // Tokyo + 'T','o','k','y','o','\0', 28, // Tokyo 'W','a','s','h','i','n','g','t','o','n',',',' ','D','.','C','.','\0', 12, // Washington, D.C. - 'W','e','n','z','h','o','u','\0', 27, // Wenzhou - 'W','u','h','a','n','\0', 27, // Wuhan - 'X','i','\'','a','n','\0', 27, // Xi'an - 'Z','h','e','n','g','z','h','o','u','\0', 27, // Zhengzhou + 'W','u','h','a','n','\0', 26, // Wuhan + 'X','i','\'','a','n','\0', 26, // Xi'an + 'Y','a','n','g','o','n','\0', 29, // Yangon + 'Z','h','e','n','g','z','h','o','u','\0', 26, // Zhengzhou }; diff --git a/zones.h b/zones.h index e85ab97..1df390e 100644 --- a/zones.h +++ b/zones.h @@ -1,115 +1,101 @@ #ifndef _ZONES_H #define _ZONES_H -const urule_packed_t zone_rules[50]; -const char zone_abrevs[209]; +const urule_packed_t zone_rules[90]; +const char zone_abrevs[214]; -#define MAX_ABREV_FORMATTER_LEN 7 +#define MAX_ABREV_FORMATTER_LEN 11 -const uzone_packed_t zone_defns[46]; -#define UTZ_ADELAIDE &zone_defns[ 31] -#define UTZ_AHMEDABAD &zone_defns[ 24] +const uzone_packed_t zone_defns[44]; +#define UTZ_ADELAIDE &zone_defns[ 30] +#define UTZ_AHMEDABAD &zone_defns[ 23] #define UTZ_ANCHORAGE &zone_defns[ 4] -#define UTZ_ANKARA &zone_defns[ 39] -#define UTZ_ATLANTA &zone_defns[ 12] -#define UTZ_AUCKLAND &zone_defns[ 42] -#define UTZ_BANGALORE &zone_defns[ 24] -#define UTZ_BANGKOK &zone_defns[ 18] -#define UTZ_BARCELONA &zone_defns[ 37] -#define UTZ_BEIJING &zone_defns[ 27] -#define UTZ_BELGRADE &zone_defns[ 37] -#define UTZ_BELO_HORIZONTE &zone_defns[ 16] -#define UTZ_BERLIN &zone_defns[ 37] +#define UTZ_AUCKLAND &zone_defns[ 40] +#define UTZ_BANGALORE &zone_defns[ 23] +#define UTZ_BANGKOK &zone_defns[ 17] +#define UTZ_BEIJING &zone_defns[ 26] +#define UTZ_BELGRADE &zone_defns[ 36] +#define UTZ_BERLIN &zone_defns[ 36] #define UTZ_BOSTON &zone_defns[ 12] #define UTZ_BRAZZAVILLE &zone_defns[ 1] -#define UTZ_BRISBANE &zone_defns[ 32] +#define UTZ_BRISBANE &zone_defns[ 31] #define UTZ_BUENOS_AIRES &zone_defns[ 5] #define UTZ_CAIRO &zone_defns[ 0] -#define UTZ_CALCUTTA &zone_defns[ 24] -#define UTZ_CHANGZHOU &zone_defns[ 27] -#define UTZ_CHENGDU &zone_defns[ 27] -#define UTZ_CHENNAI &zone_defns[ 24] +#define UTZ_CHENGDU &zone_defns[ 26] +#define UTZ_CHENNAI &zone_defns[ 23] #define UTZ_CHICAGO &zone_defns[ 6] -#define UTZ_CHONGQING &zone_defns[ 27] -#define UTZ_DALLASFORT_WORTH &zone_defns[ 6] -#define UTZ_DARWIN &zone_defns[ 33] -#define UTZ_DELHI &zone_defns[ 24] +#define UTZ_CHONGQING &zone_defns[ 26] +#define UTZ_DALLAS &zone_defns[ 6] +#define UTZ_DARWIN &zone_defns[ 32] +#define UTZ_DELHI &zone_defns[ 23] #define UTZ_DENVER &zone_defns[ 7] -#define UTZ_DUBAI &zone_defns[ 19] -#define UTZ_GUADALAJARA &zone_defns[ 11] -#define UTZ_GUAM &zone_defns[ 43] -#define UTZ_GUANGZHOU &zone_defns[ 27] +#define UTZ_DONGGUAN &zone_defns[ 26] +#define UTZ_DUBAI &zone_defns[ 18] +#define UTZ_DUSSELDORF &zone_defns[ 36] +#define UTZ_GUAM &zone_defns[ 41] +#define UTZ_GUANGZHOU &zone_defns[ 26] #define UTZ_HALIFAX &zone_defns[ 8] -#define UTZ_HAMBURG &zone_defns[ 37] -#define UTZ_HANGZHOU &zone_defns[ 27] +#define UTZ_HANGZHOU &zone_defns[ 26] +#define UTZ_HANOI &zone_defns[ 17] #define UTZ_HARARE &zone_defns[ 2] -#define UTZ_HELSINKI &zone_defns[ 38] -#define UTZ_HOBART &zone_defns[ 34] -#define UTZ_HONG_KONG &zone_defns[ 20] -#define UTZ_HONOLULU &zone_defns[ 44] +#define UTZ_HELSINKI &zone_defns[ 37] +#define UTZ_HO_CHI_MINH &zone_defns[ 17] +#define UTZ_HOBART &zone_defns[ 33] +#define UTZ_HONG_KONG &zone_defns[ 19] +#define UTZ_HONOLULU &zone_defns[ 42] #define UTZ_HOUSTON &zone_defns[ 6] -#define UTZ_HYDERABAD &zone_defns[ 24] -#define UTZ_INLAND_EMPIRE &zone_defns[ 9] -#define UTZ_ISTANBUL &zone_defns[ 39] -#define UTZ_JERUSALEM &zone_defns[ 21] -#define UTZ_JINAN &zone_defns[ 27] -#define UTZ_KARACHI &zone_defns[ 22] -#define UTZ_KATMANDU &zone_defns[ 23] -#define UTZ_KOLKATA &zone_defns[ 24] -#define UTZ_KUWAIT &zone_defns[ 25] -#define UTZ_LAHORE &zone_defns[ 22] -#define UTZ_LONDON &zone_defns[ 40] +#define UTZ_HYDERABAD &zone_defns[ 23] +#define UTZ_ISTANBUL &zone_defns[ 24] +#define UTZ_JERUSALEM &zone_defns[ 20] +#define UTZ_KARACHI &zone_defns[ 21] +#define UTZ_KATHMANDU &zone_defns[ 22] +#define UTZ_KOLKATA &zone_defns[ 23] +#define UTZ_KUWAIT &zone_defns[ 24] +#define UTZ_LAGOS &zone_defns[ 1] +#define UTZ_LAHORE &zone_defns[ 21] +#define UTZ_LONDON &zone_defns[ 38] #define UTZ_LOS_ANGELES &zone_defns[ 9] -#define UTZ_MADRID &zone_defns[ 37] #define UTZ_MANAUS &zone_defns[ 10] #define UTZ_MEXICO_CITY &zone_defns[ 11] -#define UTZ_MIAMI &zone_defns[ 12] -#define UTZ_MIDWAY &zone_defns[ 45] -#define UTZ_MILAN &zone_defns[ 37] -#define UTZ_MOSCOW &zone_defns[ 41] -#define UTZ_MUMBAI &zone_defns[ 24] -#define UTZ_MUNICH &zone_defns[ 37] -#define UTZ_NAGOYA &zone_defns[ 29] +#define UTZ_MIDWAY &zone_defns[ 43] +#define UTZ_MOSCOW &zone_defns[ 39] +#define UTZ_MUMBAI &zone_defns[ 23] +#define UTZ_NAGOYA &zone_defns[ 28] #define UTZ_NAIROBI &zone_defns[ 3] -#define UTZ_NANCHANG &zone_defns[ 27] -#define UTZ_NANJING &zone_defns[ 27] +#define UTZ_NANJING &zone_defns[ 26] #define UTZ_NEW_YORK &zone_defns[ 12] -#define UTZ_OSAKA &zone_defns[ 29] -#define UTZ_PERTH &zone_defns[ 35] -#define UTZ_PHILADELPHIA &zone_defns[ 12] +#define UTZ_ONITSHA &zone_defns[ 1] +#define UTZ_OSAKA &zone_defns[ 28] +#define UTZ_PERTH &zone_defns[ 34] #define UTZ_PHOENIX &zone_defns[ 13] -#define UTZ_PUNE &zone_defns[ 24] -#define UTZ_QINGDAO &zone_defns[ 27] -#define UTZ_RANGOON &zone_defns[ 30] +#define UTZ_PUNE &zone_defns[ 23] +#define UTZ_QUANZHOU &zone_defns[ 26] #define UTZ_REGINA &zone_defns[ 14] -#define UTZ_RHINERUHR &zone_defns[ 37] -#define UTZ_RIO_DE_JANEIRO &zone_defns[ 16] -#define UTZ_ROME &zone_defns[ 37] +#define UTZ_RIO_DE_JANEIRO &zone_defns[ 5] #define UTZ_SAN_FRANCISCO &zone_defns[ 9] #define UTZ_SANTIAGO &zone_defns[ 15] -#define UTZ_SAO_PAULO &zone_defns[ 16] -#define UTZ_SARAJEVO &zone_defns[ 37] -#define UTZ_SEOUL &zone_defns[ 26] -#define UTZ_SHANGHAI &zone_defns[ 27] -#define UTZ_SHENYANG &zone_defns[ 27] -#define UTZ_SHENZHEN &zone_defns[ 27] -#define UTZ_ST_JOHNS &zone_defns[ 17] -#define UTZ_STUTTGART &zone_defns[ 37] -#define UTZ_SURAT &zone_defns[ 24] -#define UTZ_SYDNEY &zone_defns[ 36] -#define UTZ_TAIPEI &zone_defns[ 27] -#define UTZ_TEHRAN &zone_defns[ 28] -#define UTZ_TIANJIN &zone_defns[ 27] +#define UTZ_SAO_PAULO &zone_defns[ 5] +#define UTZ_SARAJEVO &zone_defns[ 36] +#define UTZ_SEOUL &zone_defns[ 25] +#define UTZ_SHANGHAI &zone_defns[ 26] +#define UTZ_SHENYANG &zone_defns[ 26] +#define UTZ_SHENZHEN &zone_defns[ 26] +#define UTZ_ST_JOHNS &zone_defns[ 16] +#define UTZ_SURAT &zone_defns[ 23] +#define UTZ_SYDNEY &zone_defns[ 35] +#define UTZ_TAIPEI &zone_defns[ 26] +#define UTZ_TEHRAN &zone_defns[ 27] +#define UTZ_TIANJIN &zone_defns[ 26] #define UTZ_TIJUANA &zone_defns[ 9] -#define UTZ_TOKYO &zone_defns[ 29] +#define UTZ_TOKYO &zone_defns[ 28] #define UTZ_WASHINGTON_DC &zone_defns[ 12] -#define UTZ_WENZHOU &zone_defns[ 27] -#define UTZ_WUHAN &zone_defns[ 27] -#define UTZ_XIAN &zone_defns[ 27] -#define UTZ_ZHENGZHOU &zone_defns[ 27] +#define UTZ_WUHAN &zone_defns[ 26] +#define UTZ_XIAN &zone_defns[ 26] +#define UTZ_YANGON &zone_defns[ 29] +#define UTZ_ZHENGZHOU &zone_defns[ 26] -#define NUM_ZONE_NAMES 100 +#define NUM_ZONE_NAMES 86 #define MAX_ZONE_NAME_LEN 17 -const unsigned char zone_names[961]; +const unsigned char zone_names[809]; #endif /* _ZONES_H */ \ No newline at end of file