提交 52249481 编写于 作者: R robm

Merge

OPENJDK ASSEMBLY EXCEPTION OPENJDK ASSEMBLY EXCEPTION
The OpenJDK source code made available by Sun at openjdk.java.net and The OpenJDK source code made available by Oracle America, Inc. (Oracle) at
openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU
GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2 General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
only ("GPL2"), with the following clarification and special exception. only ("GPL2"), with the following clarification and special exception.
Linking this OpenJDK Code statically or dynamically with other code Linking this OpenJDK Code statically or dynamically with other code
is making a combined work based on this library. Thus, the terms is making a combined work based on this library. Thus, the terms
and conditions of GPL2 cover the whole combination. and conditions of GPL2 cover the whole combination.
As a special exception, Sun gives you permission to link this As a special exception, Oracle gives you permission to link this
OpenJDK Code with certain code licensed by Sun as indicated at OpenJDK Code with certain code licensed by Oracle as indicated at
http://openjdk.java.net/legal/exception-modules-2007-05-08.html http://openjdk.java.net/legal/exception-modules-2007-05-08.html
("Designated Exception Modules") to produce an executable, ("Designated Exception Modules") to produce an executable,
regardless of the license terms of the Designated Exception Modules, regardless of the license terms of the Designated Exception Modules,
and to copy and distribute the resulting executable under GPL2, and to copy and distribute the resulting executable under GPL2,
provided that the Designated Exception Modules continue to be provided that the Designated Exception Modules continue to be
governed by the licenses under which they were offered by Sun. governed by the licenses under which they were offered by Oracle.
As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code
build an executable that includes those portions of necessary code that Sun to build an executable that includes those portions of necessary code that
could not provide under GPL2 (or that Sun has provided under GPL2 with the Oracle could not provide under GPL2 (or that Oracle has provided under GPL2
Classpath exception). If you modify or add to the OpenJDK code, that new with the Classpath exception). If you modify or add to the OpenJDK code,
GPL2 code may still be combined with Designated Exception Modules if the that new GPL2 code may still be combined with Designated Exception Modules
new code is made subject to this exception by its copyright holder. if the new code is made subject to this exception by its copyright holder.
...@@ -21,4 +21,4 @@ ...@@ -21,4 +21,4 @@
# or visit www.oracle.com if you need additional information or have any # or visit www.oracle.com if you need additional information or have any
# questions. # questions.
# #
tzdata2016f tzdata2016g
...@@ -487,7 +487,7 @@ Zone Africa/Monrovia -0:43:08 - LMT 1882 ...@@ -487,7 +487,7 @@ Zone Africa/Monrovia -0:43:08 - LMT 1882
# http://www.libyaherald.com/2013/10/24/correction-no-time-change-tomorrow/ # http://www.libyaherald.com/2013/10/24/correction-no-time-change-tomorrow/
# #
# From Paul Eggert (2013-10-25): # From Paul Eggert (2013-10-25):
# For now, assume they're reverting to the pre-2012 rules of permanent UTC+2. # For now, assume they're reverting to the pre-2012 rules of permanent UT +02.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Libya 1951 only - Oct 14 2:00 1:00 S Rule Libya 1951 only - Oct 14 2:00 1:00 S
......
...@@ -33,9 +33,7 @@ ...@@ -33,9 +33,7 @@
# http://www.spri.cam.ac.uk/bob/periant.htm # http://www.spri.cam.ac.uk/bob/periant.htm
# for information. # for information.
# Unless otherwise specified, we have no time zone information. # Unless otherwise specified, we have no time zone information.
#
# Except for the French entries,
# I made up all time zone abbreviations mentioned here; corrections welcome!
# FORMAT is '-00' and GMTOFF is 0 for locations while uninhabited. # FORMAT is '-00' and GMTOFF is 0 for locations while uninhabited.
# Argentina - year-round bases # Argentina - year-round bases
...@@ -52,7 +50,7 @@ ...@@ -52,7 +50,7 @@
# previously sealers and scientific personnel wintered # previously sealers and scientific personnel wintered
# Margaret Turner reports # Margaret Turner reports
# http://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html # http://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html
# (1999-09-30) that they're UTC+5, with no DST; # (1999-09-30) that they're UT +05, with no DST;
# presumably this is when they have visitors. # presumably this is when they have visitors.
# #
# year-round bases # year-round bases
...@@ -91,23 +89,22 @@ ...@@ -91,23 +89,22 @@
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Casey 0 - -00 1969 Zone Antarctica/Casey 0 - -00 1969
8:00 - AWST 2009 Oct 18 2:00 8:00 - +08 2009 Oct 18 2:00
# Australian Western Std Time 11:00 - +11 2010 Mar 5 2:00
11:00 - CAST 2010 Mar 5 2:00 # Casey Time 8:00 - +08 2011 Oct 28 2:00
8:00 - AWST 2011 Oct 28 2:00 11:00 - +11 2012 Feb 21 17:00u
11:00 - CAST 2012 Feb 21 17:00u 8:00 - +08
8:00 - AWST
Zone Antarctica/Davis 0 - -00 1957 Jan 13 Zone Antarctica/Davis 0 - -00 1957 Jan 13
7:00 - DAVT 1964 Nov # Davis Time 7:00 - +07 1964 Nov
0 - -00 1969 Feb 0 - -00 1969 Feb
7:00 - DAVT 2009 Oct 18 2:00 7:00 - +07 2009 Oct 18 2:00
5:00 - DAVT 2010 Mar 10 20:00u 5:00 - +05 2010 Mar 10 20:00u
7:00 - DAVT 2011 Oct 28 2:00 7:00 - +07 2011 Oct 28 2:00
5:00 - DAVT 2012 Feb 21 20:00u 5:00 - +05 2012 Feb 21 20:00u
7:00 - DAVT 7:00 - +07
Zone Antarctica/Mawson 0 - -00 1954 Feb 13 Zone Antarctica/Mawson 0 - -00 1954 Feb 13
6:00 - MAWT 2009 Oct 18 2:00 # Mawson Time 6:00 - +06 2009 Oct 18 2:00
5:00 - MAWT 5:00 - +05
# References: # References:
# Casey Weather (1998-02-26) # Casey Weather (1998-02-26)
# http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html # http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html
...@@ -161,7 +158,7 @@ Zone Antarctica/Mawson 0 - -00 1954 Feb 13 ...@@ -161,7 +158,7 @@ Zone Antarctica/Mawson 0 - -00 1954 Feb 13
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français
5:00 - TFT # ISO code TF Time 5:00 - +05
# #
# year-round base in the main continent # year-round base in the main continent
# Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11 # Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11
...@@ -172,9 +169,9 @@ Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français ...@@ -172,9 +169,9 @@ Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/DumontDUrville 0 - -00 1947 Zone Antarctica/DumontDUrville 0 - -00 1947
10:00 - PMT 1952 Jan 14 # Port-Martin Time 10:00 - +10 1952 Jan 14
0 - -00 1956 Nov 0 - -00 1956 Nov
10:00 - DDUT # Dumont-d'Urville Time 10:00 - +10
# France & Italy - year-round base # France & Italy - year-round base
# Concordia, -750600+1232000, since 2005 # Concordia, -750600+1232000, since 2005
...@@ -200,7 +197,7 @@ Zone Antarctica/DumontDUrville 0 - -00 1947 ...@@ -200,7 +197,7 @@ Zone Antarctica/DumontDUrville 0 - -00 1947
# station of Japan, it's appropriate for the principal location. # station of Japan, it's appropriate for the principal location.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Syowa 0 - -00 1957 Jan 29 Zone Antarctica/Syowa 0 - -00 1957 Jan 29
3:00 - SYOT # Syowa Time 3:00 - +03
# See: # See:
# NIPR Antarctic Research Activities (1999-08-17) # NIPR Antarctic Research Activities (1999-08-17)
# http://www.nipr.ac.jp/english/ara01.html # http://www.nipr.ac.jp/english/ara01.html
...@@ -237,17 +234,17 @@ Zone Antarctica/Syowa 0 - -00 1957 Jan 29 ...@@ -237,17 +234,17 @@ Zone Antarctica/Syowa 0 - -00 1957 Jan 29
# correct, but they should be quite close to the actual dates. # correct, but they should be quite close to the actual dates.
# #
# From Paul Eggert (2014-03-21): # From Paul Eggert (2014-03-21):
# The CET-switching Troll rules require zic from tzcode 2014b or later, so as # The CET-switching Troll rules require zic from tz 2014b or later, so as
# suggested by Bengt-Inge Larsson comment them out for now, and approximate # suggested by Bengt-Inge Larsson comment them out for now, and approximate
# with only UTC and CEST. Uncomment them when 2014b is more prevalent. # with only UTC and CEST. Uncomment them when 2014b is more prevalent.
# #
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
#Rule Troll 2005 max - Mar 1 1:00u 1:00 CET #Rule Troll 2005 max - Mar 1 1:00u 1:00 +01
Rule Troll 2005 max - Mar lastSun 1:00u 2:00 CEST Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
#Rule Troll 2005 max - Oct lastSun 1:00u 1:00 CET #Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01
#Rule Troll 2004 max - Nov 7 1:00u 0:00 UTC #Rule Troll 2004 max - Nov 7 1:00u 0:00 +00
# Remove the following line when uncommenting the above '#Rule' lines. # Remove the following line when uncommenting the above '#Rule' lines.
Rule Troll 2004 max - Oct lastSun 1:00u 0:00 UTC Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Troll 0 - -00 2005 Feb 12 Zone Antarctica/Troll 0 - -00 2005 Feb 12
0:00 Troll %s 0:00 Troll %s
...@@ -288,10 +285,10 @@ Zone Antarctica/Troll 0 - -00 2005 Feb 12 ...@@ -288,10 +285,10 @@ Zone Antarctica/Troll 0 - -00 2005 Feb 12
# changes during the year and does not necessarily correspond to mean # changes during the year and does not necessarily correspond to mean
# solar noon. So the Vostok time might have been whatever the clocks # solar noon. So the Vostok time might have been whatever the clocks
# happened to be during their visit. So we still don't really know what time # happened to be during their visit. So we still don't really know what time
# it is at Vostok. But we'll guess UTC+6. # it is at Vostok. But we'll guess +06.
# #
Zone Antarctica/Vostok 0 - -00 1957 Dec 16 Zone Antarctica/Vostok 0 - -00 1957 Dec 16
6:00 - VOST # Vostok time 6:00 - +06
# S Africa - year-round bases # S Africa - year-round bases
# Marion Island, -4653+03752 # Marion Island, -4653+03752
...@@ -324,7 +321,7 @@ Zone Antarctica/Vostok 0 - -00 1957 Dec 16 ...@@ -324,7 +321,7 @@ Zone Antarctica/Vostok 0 - -00 1957 Dec 16
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Rothera 0 - -00 1976 Dec 1 Zone Antarctica/Rothera 0 - -00 1976 Dec 1
-3:00 - ROTT # Rothera time -3:00 - -03
# Uruguay - year round base # Uruguay - year round base
# Artigas, King George Island, -621104-0585107 # Artigas, King George Island, -621104-0585107
......
...@@ -139,13 +139,11 @@ Zone Asia/Kabul 4:36:48 - LMT 1890 ...@@ -139,13 +139,11 @@ Zone Asia/Kabul 4:36:48 - LMT 1890
# http://www.worldtimezone.com/dst_news/dst_news_armenia03.html # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2
3:00 - YERT 1957 Mar # Yerevan Time 3:00 - +03 1957 Mar
4:00 RussiaAsia YER%sT 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s
3:00 1:00 YERST 1991 Sep 23 # independence 3:00 RussiaAsia +03/+04 1995 Sep 24 2:00s
3:00 RussiaAsia AM%sT 1995 Sep 24 2:00s 4:00 - +04 1997
4:00 - AMT 1997 4:00 RussiaAsia +04/+05
4:00 RussiaAsia AM%sT 2012 Feb 9
4:00 - AMT
# Azerbaijan # Azerbaijan
...@@ -166,13 +164,12 @@ Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 S ...@@ -166,13 +164,12 @@ Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 S
Rule Azer 1997 2015 - Oct lastSun 5:00 0 - Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Baku 3:19:24 - LMT 1924 May 2 Zone Asia/Baku 3:19:24 - LMT 1924 May 2
3:00 - BAKT 1957 Mar # Baku Time 3:00 - +03 1957 Mar
4:00 RussiaAsia BAK%sT 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s
3:00 1:00 BAKST 1991 Aug 30 # independence 3:00 RussiaAsia +03/+04 1992 Sep lastSun 2:00s
3:00 RussiaAsia AZ%sT 1992 Sep lastSun 2:00s 4:00 - +04 1996
4:00 - AZT 1996 # Azerbaijan Time 4:00 EUAsia +04/+05 1997
4:00 EUAsia AZ%sT 1997 4:00 Azer +04/+05
4:00 Azer AZ%sT
# Bahrain # Bahrain
# See Asia/Qatar. # See Asia/Qatar.
...@@ -291,7 +288,7 @@ Zone Asia/Brunei 7:39:40 - LMT 1926 Mar # Bandar Seri Begawan ...@@ -291,7 +288,7 @@ Zone Asia/Brunei 7:39:40 - LMT 1926 Mar # Bandar Seri Begawan
# Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon. # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Rangoon 6:24:40 - LMT 1880 # or Yangon Zone Asia/Yangon 6:24:40 - LMT 1880 # or Rangoon
6:24:40 - RMT 1920 # Rangoon Mean Time? 6:24:40 - RMT 1920 # Rangoon Mean Time?
6:30 - BURT 1942 May # Burma Time 6:30 - BURT 1942 May # Burma Time
9:00 - JST 1945 May 3 9:00 - JST 1945 May 3
...@@ -406,7 +403,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -406,7 +403,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# Lewiston (ME) Daily Sun (1939-05-29), p 17, said "Even the time is # Lewiston (ME) Daily Sun (1939-05-29), p 17, said "Even the time is
# different - the occupied districts going by Tokyo time, an hour # different - the occupied districts going by Tokyo time, an hour
# ahead of that prevailing in the rest of Shanghai." Guess that the # ahead of that prevailing in the rest of Shanghai." Guess that the
# Xujiahui Observatory was under French control and stuck with UT+8. # Xujiahui Observatory was under French control and stuck with UT +08.
# #
# In earlier versions of this file, China had many separate Zone entries, but # In earlier versions of this file, China had many separate Zone entries, but
# this was based on what were apparently incorrect data in Shanks & Pottenger. # this was based on what were apparently incorrect data in Shanks & Pottenger.
...@@ -415,26 +412,26 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -415,26 +412,26 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# Proposed in 1918 and theoretically in effect until 1949 (although in practice # Proposed in 1918 and theoretically in effect until 1949 (although in practice
# mainly observed in coastal areas), the five zones were: # mainly observed in coastal areas), the five zones were:
# #
# Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT+8.5 # Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT +08:30
# Asia/Harbin (currently a link to Asia/Shanghai) # Asia/Harbin (currently a link to Asia/Shanghai)
# Heilongjiang (except Mohe county), Jilin # Heilongjiang (except Mohe county), Jilin
# #
# Zhongyuan Time ("Central plain Time") UT+8 # Zhongyuan Time ("Central plain Time") UT +08
# Asia/Shanghai # Asia/Shanghai
# most of China # most of China
# This currently represents most other zones as well, # This currently represents most other zones as well,
# as apparently these regions have been the same since 1970. # as apparently these regions have been the same since 1970.
# Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest. # Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest.
# Guo says Shanghai switched to UT+8 "from the end of the 19th century". # 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 that area) UT+7 # 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) # Asia/Chongqing (currently a link to Asia/Shanghai)
# Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan; # 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; west Qinghai; and the Guangdong
# counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing, # counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing,
# Yangchun, Yangjiang, Yu'nan, and Yunfu. # Yangchun, Yangjiang, Yu'nan, and Yunfu.
# #
# Xin-zang Time ("Xinjiang-Tibet Time") UT+6 # Xin-zang Time ("Xinjiang-Tibet Time") UT +06
# Asia/Urumqi # Asia/Urumqi
# This currently represents Kunlun Time as well, # This currently represents Kunlun Time as well,
# as apparently the two regions have been the same since 1970. # as apparently the two regions have been the same since 1970.
...@@ -447,7 +444,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -447,7 +444,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami, # Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami,
# Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan. # Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan.
# #
# Kunlun Time UT+5.5 # Kunlun Time UT +05:30
# Asia/Kashgar (currently a link to Asia/Urumqi) # Asia/Kashgar (currently a link to Asia/Urumqi)
# West Tibet, including Pulan, Aheqi, Shufu, Shule; # West Tibet, including Pulan, Aheqi, Shufu, Shule;
# West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke, # West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke,
...@@ -463,7 +460,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -463,7 +460,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# #
# On the other hand, ethnic Uyghurs, who make up about half the # On the other hand, ethnic Uyghurs, who make up about half the
# population of Xinjiang, typically use "Xinjiang time" which is two # population of Xinjiang, typically use "Xinjiang time" which is two
# hours behind Beijing time, or UTC +0600. The government of the Xinjiang # hours behind Beijing time, or UT +06. The government of the Xinjiang
# Uyghur Autonomous Region, (XAUR, or just Xinjiang for short) as well as # Uyghur Autonomous Region, (XAUR, or just Xinjiang for short) as well as
# local governments such as the Ürümqi city government use both times in # local governments such as the Ürümqi city government use both times in
# publications, referring to what is popularly called Xinjiang time as # publications, referring to what is popularly called Xinjiang time as
...@@ -519,8 +516,8 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -519,8 +516,8 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# having the same time as Beijing. # having the same time as Beijing.
# From Paul Eggert (2014-06-30): # From Paul Eggert (2014-06-30):
# In the early days of the PRC, Tibet was given its own time zone (UT+6) but # In the early days of the PRC, Tibet was given its own time zone (UT +06)
# this was withdrawn in 1959 and never reinstated; see Tubten Khétsun, # but this was withdrawn in 1959 and never reinstated; see Tubten Khétsun,
# Memories of life in Lhasa under Chinese Rule, Columbia U Press, ISBN # Memories of life in Lhasa under Chinese Rule, Columbia U Press, ISBN
# 978-0231142861 (2008), translator's introduction by Matthew Akester, p x. # 978-0231142861 (2008), translator's introduction by Matthew Akester, p x.
# As this is before our 1970 cutoff, Tibet doesn't need a separate zone. # As this is before our 1970 cutoff, Tibet doesn't need a separate zone.
...@@ -534,12 +531,12 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -534,12 +531,12 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# Republics, the Soviet Union, the Kuomintang, and the People's Republic of # Republics, the Soviet Union, the Kuomintang, and the People's Republic of
# China, and tracking down all these organizations' timekeeping rules would be # China, and tracking down all these organizations' timekeeping rules would be
# quite a trick. Approximate this lost history by a transition from LMT to # quite a trick. Approximate this lost history by a transition from LMT to
# XJT at the start of 1928, the year of accession of the warlord Jin Shuren, # UT +06 at the start of 1928, the year of accession of the warlord Jin Shuren,
# which happens to be the date given by Shanks & Pottenger (no doubt as a # which happens to be the date given by Shanks & Pottenger (no doubt as a
# guess) as the transition from LMT. Ignore the usage of UT+8 before # guess) as the transition from LMT. Ignore the usage of +08 before
# 1986-02-01 under the theory that the transition date to UT+8 is unknown and # 1986-02-01 under the theory that the transition date to +08 is unknown and
# that the sort of users who prefer Asia/Urumqi now typically ignored the # that the sort of users who prefer Asia/Urumqi now typically ignored the
# UT+8 mandate back then. # +08 mandate back then.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Beijing time, used throughout China; represented by Shanghai. # Beijing time, used throughout China; represented by Shanghai.
...@@ -744,7 +741,7 @@ Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 ...@@ -744,7 +741,7 @@ Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30
# be found from historical government announcement database. # be found from historical government announcement database.
# From Paul Eggert (2014-07-03): # From Paul Eggert (2014-07-03):
# As per Yu-Cheng Chuang, say that Taiwan was at UT+9 from 1937-10-01 # As per Yu-Cheng Chuang, say that Taiwan was at UT +09 from 1937-10-01
# until 1945-09-21 at 01:00, overriding Shanks & Pottenger. # until 1945-09-21 at 01:00, overriding Shanks & Pottenger.
# Likewise, use Yu-Cheng Chuang's data for DST in Taiwan. # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan.
...@@ -858,16 +855,15 @@ Link Asia/Nicosia Europe/Nicosia ...@@ -858,16 +855,15 @@ Link Asia/Nicosia Europe/Nicosia
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Tbilisi 2:59:11 - LMT 1880 Zone Asia/Tbilisi 2:59:11 - LMT 1880
2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time 2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time
3:00 - TBIT 1957 Mar # Tbilisi Time 3:00 - +03 1957 Mar
4:00 RussiaAsia TBI%sT 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s
3:00 1:00 TBIST 1991 Apr 9 # independence 3:00 RussiaAsia +03/+04 1992
3:00 RussiaAsia GE%sT 1992 # Georgia Time 3:00 E-EurAsia +03/+04 1994 Sep lastSun
3:00 E-EurAsia GE%sT 1994 Sep lastSun 4:00 E-EurAsia +04/+05 1996 Oct lastSun
4:00 E-EurAsia GE%sT 1996 Oct lastSun 4:00 1:00 +05 1997 Mar lastSun
4:00 1:00 GEST 1997 Mar lastSun 4:00 E-EurAsia +04/+05 2004 Jun 27
4:00 E-EurAsia GE%sT 2004 Jun 27 3:00 RussiaAsia +03/+04 2005 Mar lastSun 2:00
3:00 RussiaAsia GE%sT 2005 Mar lastSun 2:00 4:00 - +04
4:00 - GET
# East Timor # East Timor
...@@ -944,7 +940,7 @@ Zone Asia/Kolkata 5:53:28 - LMT 1880 # Kolkata ...@@ -944,7 +940,7 @@ Zone Asia/Kolkata 5:53:28 - LMT 1880 # Kolkata
# These would be the earliest possible times for a change. # These would be the earliest possible times for a change.
# Régimes horaires pour le monde entier, by Henri Le Corre, (Éditions # Régimes horaires pour le monde entier, by Henri Le Corre, (Éditions
# Traditionnelles, 1987, Paris) says that Java and Madura switched # Traditionnelles, 1987, Paris) says that Java and Madura switched
# from JST to UTC+07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura # from UT +09 to +07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura
# (Hollandia). For now, assume all Indonesian locations other than Jayapura # (Hollandia). For now, assume all Indonesian locations other than Jayapura
# switched on 1945-09-23. # switched on 1945-09-23.
# #
...@@ -955,11 +951,11 @@ Zone Asia/Kolkata 5:53:28 - LMT 1880 # Kolkata ...@@ -955,11 +951,11 @@ Zone Asia/Kolkata 5:53:28 - LMT 1880 # Kolkata
# summary published by the Time and Frequency Laboratory of the # summary published by the Time and Frequency Laboratory of the
# Research Center for Calibration, Instrumentation and Metrology, # Research Center for Calibration, Instrumentation and Metrology,
# Indonesia, <http://time.kim.lipi.go.id/time-eng.php> (2006-09-29). # Indonesia, <http://time.kim.lipi.go.id/time-eng.php> (2006-09-29).
# The abbreviations are: # The time zone abbreviations and UT offsets are:
# #
# WIB - UTC+7 - Waktu Indonesia Barat (Indonesia western time) # WIB - +07 - Waktu Indonesia Barat (Indonesia western time)
# WITA - UTC+8 - Waktu Indonesia Tengah (Indonesia central time) # WITA - +08 - Waktu Indonesia Tengah (Indonesia central time)
# WIT - UTC+9 - Waktu Indonesia Timur (Indonesia eastern time) # WIT - +09 - Waktu Indonesia Timur (Indonesia eastern time)
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Java, Sumatra # Java, Sumatra
...@@ -1848,11 +1844,11 @@ Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 S ...@@ -1848,11 +1844,11 @@ Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 S
Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 - Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2
5:00 - FRUT 1930 Jun 21 # Frunze Time 5:00 - +05 1930 Jun 21
6:00 RussiaAsia FRU%sT 1991 Mar 31 2:00s 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s
5:00 1:00 FRUST 1991 Aug 31 2:00 # independence 5:00 RussiaAsia +05/+06 1991 Aug 31 2:00
5:00 Kyrgyz KG%sT 2005 Aug 12 # Kyrgyzstan Time 5:00 Kyrgyz +05/+06 2005 Aug 12
6:00 - KGT 6:00 - +06
############################################################################### ###############################################################################
...@@ -1891,25 +1887,24 @@ Rule ROK 1957 1960 - Sep Sun>=18 0:00 0 S ...@@ -1891,25 +1887,24 @@ 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 - May Sun>=8 2:00 1:00 D
Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S
# From Paul Eggert (2014-10-30): # From Paul Eggert (2016-08-23):
# The Korean Wikipedia entry gives the following sources for UT offsets: # The Korean Wikipedia entry gives the following sources for UT offsets:
# #
# 1908: Official Journal Article No. 3994 (Edict No. 5) # 1908: Official Journal Article No. 3994 (decree No. 5)
# 1912: Governor-General of Korea Official Gazette Issue No. 367 # 1912: Governor-General of Korea Official Gazette Issue No. 367
# (Announcement No. 338) # (Announcement No. 338)
# 1954: Presidential Decree No. 876 (1954-03-17) # 1954: Presidential Decree No. 876 (1954-03-17)
# 1961: Law No. 676 (1961-08-07) # 1961: Law No. 676 (1961-08-07)
# 1987: Law No. 3919 (1986-12-31)
# #
# The Wikipedia entry also has confusing information about a change # (Another source "1987: Law No. 3919 (1986-12-31)" was in the 2014-10-30
# to UT+9 in April 1910, but then what would be the point of the later change # edition of the Korean Wikipedia entry.)
# to UT+9 on 1912-01-01? Omit the 1910 change for now.
# #
# I guessed that time zone abbreviations through 1945 followed the same # I guessed that time zone abbreviations through 1945 followed the same
# rules as discussed under Taiwan, with nominal switches from JST to KST # rules as discussed under Taiwan, with nominal switches from JST to KST
# when the respective cities were taken over by the Allies after WWII. # when the respective cities were taken over by the Allies after WWII.
# #
# For Pyongyang we have no information; guess no changes since World War II. # For Pyongyang, guess no changes from World War II until 2015, as we
# have no information otherwise.
# From Steffen Thorsen (2015-08-07): # From Steffen Thorsen (2015-08-07):
# According to many news sources, North Korea is going to change to # According to many news sources, North Korea is going to change to
...@@ -2069,7 +2064,7 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male ...@@ -2069,7 +2064,7 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male
# Bill Bonnet (2005-05-19) reports that the US Embassy in Ulaanbaatar says # Bill Bonnet (2005-05-19) reports that the US Embassy in Ulaanbaatar says
# there is only one time zone and that DST is observed, citing Microsoft # there is only one time zone and that DST is observed, citing Microsoft
# Windows XP as the source. Risto Nykänen (2005-05-16) reports that # Windows XP as the source. Risto Nykänen (2005-05-16) reports that
# travelmongolia.org says there are two time zones (UTC+7, UTC+8) with no DST. # travelmongolia.org says there are two time zones (UT +07, +08) with no DST.
# Oscar van Vlijmen (2005-05-20) reports that the Mongolian Embassy in # Oscar van Vlijmen (2005-05-20) reports that the Mongolian Embassy in
# Washington, DC says there are two time zones, with DST observed. # Washington, DC says there are two time zones, with DST observed.
# He also found # He also found
...@@ -2705,7 +2700,7 @@ Link Asia/Qatar Asia/Bahrain ...@@ -2705,7 +2700,7 @@ Link Asia/Qatar Asia/Bahrain
# earlier date. # earlier date.
# #
# Shanks & Pottenger also state that until 1968-05-01 Saudi Arabia had two # Shanks & Pottenger also state that until 1968-05-01 Saudi Arabia had two
# time zones; the other zone, at UTC+4, was in the far eastern part of # 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. Ignore this, as it's before our 1970 cutoff.
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
...@@ -2974,10 +2969,10 @@ Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq ...@@ -2974,10 +2969,10 @@ Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq
# From Shanks & Pottenger. # From Shanks & Pottenger.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2
5:00 - DUST 1930 Jun 21 # Dushanbe Time 5:00 - +05 1930 Jun 21
6:00 RussiaAsia DUS%sT 1991 Mar 31 2:00s 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s
5:00 1:00 DUSST 1991 Sep 9 2:00s 5:00 1:00 +05/+06 1991 Sep 9 2:00s
5:00 - TJT # Tajikistan Time 5:00 - +05
# Thailand # Thailand
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
...@@ -2991,11 +2986,10 @@ Link Asia/Bangkok Asia/Vientiane # Laos ...@@ -2991,11 +2986,10 @@ Link Asia/Bangkok Asia/Vientiane # Laos
# From Shanks & Pottenger. # From Shanks & Pottenger.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad
4:00 - ASHT 1930 Jun 21 # Ashkhabad Time 4:00 - +04 1930 Jun 21
5:00 RussiaAsia ASH%sT 1991 Mar 31 2:00 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00
4:00 RussiaAsia ASH%sT 1991 Oct 27 # independence 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00
4:00 RussiaAsia TM%sT 1992 Jan 19 2:00 5:00 - +05
5:00 - TMT
# United Arab Emirates # United Arab Emirates
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
...@@ -3007,20 +3001,18 @@ Link Asia/Dubai Asia/Muscat # Oman ...@@ -3007,20 +3001,18 @@ Link Asia/Dubai Asia/Muscat # Oman
# Byalokoz 1919 says Uzbekistan was 4:27:53. # Byalokoz 1919 says Uzbekistan was 4:27:53.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2 Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2
4:00 - SAMT 1930 Jun 21 # Samarkand Time 4:00 - +04 1930 Jun 21
5:00 - SAMT 1981 Apr 1 5:00 - +05 1981 Apr 1
5:00 1:00 SAMST 1981 Oct 1 5:00 1:00 +06 1981 Oct 1
6:00 - TAST 1982 Apr 1 # Tashkent Time 6:00 - +06 1982 Apr 1
5:00 RussiaAsia SAM%sT 1991 Sep 1 # independence 5:00 RussiaAsia +05/+06 1992
5:00 RussiaAsia UZ%sT 1992 5:00 - +05
5:00 - UZT
# Milne says Tashkent was 4:37:10.8; round to nearest. # Milne says Tashkent was 4:37:10.8; round to nearest.
Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
5:00 - TAST 1930 Jun 21 # Tashkent Time 5:00 - +05 1930 Jun 21
6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00
5:00 RussiaAsia TAS%sT 1991 Sep 1 # independence 5:00 RussiaAsia +05/+06 1992
5:00 RussiaAsia UZ%sT 1992 5:00 - +05
5:00 - UZT
# Vietnam # Vietnam
......
...@@ -568,7 +568,7 @@ Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 ...@@ -568,7 +568,7 @@ Zone Pacific/Port_Moresby 9:48:40 - LMT 1880
# Base the Bougainville entry on the Arawa-Kieta region, which appears to have # Base the Bougainville entry on the Arawa-Kieta region, which appears to have
# the most people even though it was devastated in the Bougainville Civil War. # the most people even though it was devastated in the Bougainville Civil War.
# #
# Although Shanks gives 1942-03-15 / 1943-11-01 for JST, these dates # Although Shanks gives 1942-03-15 / 1943-11-01 for UT +09, these dates
# are apparently rough guesswork from the starts of military campaigns. # are apparently rough guesswork from the starts of military campaigns.
# The World War II entries below are instead based on Arawa-Kieta. # The World War II entries below are instead based on Arawa-Kieta.
# The Japanese occupied Kieta in July 1942, # The Japanese occupied Kieta in July 1942,
...@@ -576,8 +576,8 @@ Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 ...@@ -576,8 +576,8 @@ Zone Pacific/Port_Moresby 9:48:40 - LMT 1880
# http://pwencycl.kgbudge.com/B/o/Bougainville.htm # http://pwencycl.kgbudge.com/B/o/Bougainville.htm
# and seem to have controlled it until their 1945-08-21 surrender. # and seem to have controlled it until their 1945-08-21 surrender.
# #
# The Autonomous Region of Bougainville plans to switch from UTC+10 to UTC+11 # The Autonomous Region of Bougainville switched from UT +10 to +11
# on 2014-12-28 at 02:00. They call UTC+11 "Bougainville Standard Time"; # on 2014-12-28 at 02:00. They call +11 "Bougainville Standard Time";
# abbreviate this as BST. See: # abbreviate this as BST. See:
# http://www.bougainville24.com/bougainville-issues/bougainville-gets-own-timezone/ # http://www.bougainville24.com/bougainville-issues/bougainville-gets-own-timezone/
# #
...@@ -643,7 +643,7 @@ Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands ...@@ -643,7 +643,7 @@ Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands
# From Paul Eggert (2014-06-27): # From Paul Eggert (2014-06-27):
# The International Date Line Act 2011 # The International Date Line Act 2011
# http://www.parliament.gov.ws/images/ACTS/International_Date_Line_Act__2011_-_Eng.pdf # http://www.parliament.gov.ws/images/ACTS/International_Date_Line_Act__2011_-_Eng.pdf
# changed Samoa from UTC-11 to UTC+13, effective "12 o'clock midnight, on # changed Samoa from UT -11 to +13, effective "12 o'clock midnight, on
# Thursday 29th December 2011". The International Date Line was adjusted # Thursday 29th December 2011". The International Date Line was adjusted
# accordingly. # accordingly.
...@@ -738,7 +738,7 @@ Zone Pacific/Funafuti 11:56:52 - LMT 1901 ...@@ -738,7 +738,7 @@ Zone Pacific/Funafuti 11:56:52 - LMT 1901
# 1886-1891; Baker was similar but exact dates are not known. # 1886-1891; Baker was similar but exact dates are not known.
# Inhabited by civilians 1935-1942; U.S. military bases 1943-1944; # Inhabited by civilians 1935-1942; U.S. military bases 1943-1944;
# uninhabited thereafter. # uninhabited thereafter.
# Howland observed Hawaii Standard Time (UT-10:30) in 1937; # Howland observed Hawaii Standard Time (UT -10:30) in 1937;
# see page 206 of Elgen M. Long and Marie K. Long, # see page 206 of Elgen M. Long and Marie K. Long,
# Amelia Earhart: the Mystery Solved, Simon & Schuster (2000). # Amelia Earhart: the Mystery Solved, Simon & Schuster (2000).
# So most likely Howland and Baker observed Hawaii Time from 1935 # So most likely Howland and Baker observed Hawaii Time from 1935
...@@ -1496,7 +1496,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 ...@@ -1496,7 +1496,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# Zealand time. I understand that is the time they keep locally, anyhow." # Zealand time. I understand that is the time they keep locally, anyhow."
# For now, assume this practice goes back to the introduction of standard time # For now, assume this practice goes back to the introduction of standard time
# in New Zealand, as this would make Chatham Islands time almost exactly match # in New Zealand, as this would make Chatham Islands time almost exactly match
# LMT back when New Zealand was at UTC+11:30; also, assume Chatham Islands did # LMT back when New Zealand was at UT +11:30; also, assume Chatham Islands did
# not observe New Zealand's prewar DST. # not observe New Zealand's prewar DST.
############################################################################### ###############################################################################
...@@ -1552,7 +1552,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 ...@@ -1552,7 +1552,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# For now, we assume the Ladrones switched at the same time as the Philippines; # For now, we assume the Ladrones switched at the same time as the Philippines;
# see Asia/Manila. # see Asia/Manila.
# US Public Law 106-564 (2000-12-23) made UTC+10 the official standard time, # 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, # under the name "Chamorro Standard Time". There is no official abbreviation,
# but Congressman Robert A. Underwood, author of the bill that became law, # 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". # wrote in a press release (2000-12-27) that he will seek the use of "ChST".
...@@ -1564,15 +1564,15 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 ...@@ -1564,15 +1564,15 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# "I am certain, having lived there for the past decade, that 'Truk' # "I am certain, having lived there for the past decade, that 'Truk'
# (now properly known as Chuuk) ... is in the time zone GMT+10." # (now properly known as Chuuk) ... is in the time zone GMT+10."
# #
# Shanks & Pottenger write that Truk switched from UTC+10 to UTC+11 # Shanks & Pottenger write that Truk switched from UT +10 to +11
# on 1978-10-01; ignore this for now. # on 1978-10-01; ignore this for now.
# From Paul Eggert (1999-10-29): # From Paul Eggert (1999-10-29):
# The Federated States of Micronesia Visitors Board writes in # The Federated States of Micronesia Visitors Board writes in
# The Federated States of Micronesia - Visitor Information (1999-01-26) # The Federated States of Micronesia - Visitor Information (1999-01-26)
# http://www.fsmgov.org/info/clocks.html # http://www.fsmgov.org/info/clocks.html
# that Truk and Yap are UTC+10, and Ponape and Kosrae are UTC+11. # that Truk and Yap are UT +10, and Ponape and Kosrae are +11.
# We don't know when Kosrae switched from UTC+12; assume January 1 for now. # We don't know when Kosrae switched from +12; assume January 1 for now.
# Midway # Midway
...@@ -1638,11 +1638,11 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 ...@@ -1638,11 +1638,11 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# ordaining - by a masterpiece of diplomatic flattery - that # ordaining - by a masterpiece of diplomatic flattery - that
# the Fourth of July should be celebrated twice in that year." # the Fourth of July should be celebrated twice in that year."
# Although Shanks & Pottenger says they both switched to UTC-11:30 # Although Shanks & Pottenger says they both switched to UT -11:30
# in 1911, and to UTC-11 in 1950. many earlier sources give UTC-11 # in 1911, and to -11 in 1950. many earlier sources give -11
# for American Samoa, e.g., the US National Bureau of Standards # for American Samoa, e.g., the US National Bureau of Standards
# circular "Standard Time Throughout the World", 1932. # circular "Standard Time Throughout the World", 1932.
# Assume American Samoa switched to UTC-11 in 1911, not 1950, # Assume American Samoa switched to -11 in 1911, not 1950,
# and that after 1950 they agreed until (western) Samoa skipped a # and that after 1950 they agreed until (western) Samoa skipped a
# day in 2011. Assume also that the Samoas follow the US and New # day in 2011. Assume also that the Samoas follow the US and New
# Zealand's "ST"/"DT" style of daylight-saving abbreviations. # Zealand's "ST"/"DT" style of daylight-saving abbreviations.
......
...@@ -59,6 +59,7 @@ Link Asia/Shanghai Asia/Harbin ...@@ -59,6 +59,7 @@ Link Asia/Shanghai Asia/Harbin
Link Asia/Urumqi Asia/Kashgar Link Asia/Urumqi Asia/Kashgar
Link Asia/Kathmandu Asia/Katmandu Link Asia/Kathmandu Asia/Katmandu
Link Asia/Macau Asia/Macao Link Asia/Macau Asia/Macao
Link Asia/Yangon Asia/Rangoon
Link Asia/Ho_Chi_Minh Asia/Saigon Link Asia/Ho_Chi_Minh Asia/Saigon
Link Asia/Jerusalem Asia/Tel_Aviv Link Asia/Jerusalem Asia/Tel_Aviv
Link Asia/Thimphu Asia/Thimbu Link Asia/Thimphu Asia/Thimbu
......
...@@ -31,6 +31,13 @@ ...@@ -31,6 +31,13 @@
# need now for the entries that are not on UTC are for ships at sea # need now for the entries that are not on UTC are for ships at sea
# that cannot use POSIX TZ settings. # that cannot use POSIX TZ settings.
# Starting with POSIX 1003.1-2001, the entries below are all
# unnecessary as settings for the TZ environment variable. E.g.,
# instead of TZ='Etc/GMT+4' one can use the POSIX setting TZ='<-04>+4'.
#
# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours
# behind GMT but uses the completely misleading abbreviation "GMT".
Zone Etc/GMT 0 - GMT Zone Etc/GMT 0 - GMT
Zone Etc/UTC 0 - UTC Zone Etc/UTC 0 - UTC
Zone Etc/UCT 0 - UCT Zone Etc/UCT 0 - UCT
...@@ -49,23 +56,13 @@ Link Etc/GMT Etc/GMT-0 ...@@ -49,23 +56,13 @@ Link Etc/GMT Etc/GMT-0
Link Etc/GMT Etc/GMT+0 Link Etc/GMT Etc/GMT+0
Link Etc/GMT Etc/GMT0 Link Etc/GMT Etc/GMT0
# We use POSIX-style signs in the Zone names and the output abbreviations, # Be consistent with POSIX TZ settings in the Zone names,
# even though this is the opposite of what many people expect. # even though this is the opposite of what many people expect.
# POSIX has positive signs west of Greenwich, but many people expect # POSIX has positive signs west of Greenwich, but many people expect
# positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses # positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses
# the abbreviation "GMT+4" and corresponds to 4 hours behind UT # the abbreviation "-04" and corresponds to 4 hours behind UT
# (i.e. west of Greenwich) even though many people would expect it to # (i.e. west of Greenwich) even though many people would expect it to
# mean 4 hours ahead of UT (i.e. east of Greenwich). # mean 4 hours ahead of UT (i.e. east of Greenwich).
#
# In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for
# TZ='<GMT-4>+4'; if you want time zone abbreviations conforming to
# ISO 8601 you can use TZ='<-0400>+4'. Thus the commonly-expected
# offset is kept within the angle bracket (and is used for display)
# while the POSIX sign is kept outside the angle bracket (and is used
# for calculation).
#
# Do not use a TZ setting like TZ='GMT+4', which is four hours behind
# GMT but uses the completely misleading abbreviation "GMT".
# Earlier incarnations of this package were not POSIX-compliant, # Earlier incarnations of this package were not POSIX-compliant,
# and had lines such as # and had lines such as
...@@ -74,30 +71,31 @@ Link Etc/GMT Etc/GMT0 ...@@ -74,30 +71,31 @@ Link Etc/GMT Etc/GMT0
# way does a # way does a
# zic -l GMT-12 # zic -l GMT-12
# so we moved the names into the Etc subdirectory. # so we moved the names into the Etc subdirectory.
# Also, the time zone abbreviations are now compatible with %z.
Zone Etc/GMT-14 14 - GMT-14 # 14 hours ahead of GMT Zone Etc/GMT-14 14 - +14
Zone Etc/GMT-13 13 - GMT-13 Zone Etc/GMT-13 13 - +13
Zone Etc/GMT-12 12 - GMT-12 Zone Etc/GMT-12 12 - +12
Zone Etc/GMT-11 11 - GMT-11 Zone Etc/GMT-11 11 - +11
Zone Etc/GMT-10 10 - GMT-10 Zone Etc/GMT-10 10 - +10
Zone Etc/GMT-9 9 - GMT-9 Zone Etc/GMT-9 9 - +09
Zone Etc/GMT-8 8 - GMT-8 Zone Etc/GMT-8 8 - +08
Zone Etc/GMT-7 7 - GMT-7 Zone Etc/GMT-7 7 - +07
Zone Etc/GMT-6 6 - GMT-6 Zone Etc/GMT-6 6 - +06
Zone Etc/GMT-5 5 - GMT-5 Zone Etc/GMT-5 5 - +05
Zone Etc/GMT-4 4 - GMT-4 Zone Etc/GMT-4 4 - +04
Zone Etc/GMT-3 3 - GMT-3 Zone Etc/GMT-3 3 - +03
Zone Etc/GMT-2 2 - GMT-2 Zone Etc/GMT-2 2 - +02
Zone Etc/GMT-1 1 - GMT-1 Zone Etc/GMT-1 1 - +01
Zone Etc/GMT+1 -1 - GMT+1 Zone Etc/GMT+1 -1 - -01
Zone Etc/GMT+2 -2 - GMT+2 Zone Etc/GMT+2 -2 - -02
Zone Etc/GMT+3 -3 - GMT+3 Zone Etc/GMT+3 -3 - -03
Zone Etc/GMT+4 -4 - GMT+4 Zone Etc/GMT+4 -4 - -04
Zone Etc/GMT+5 -5 - GMT+5 Zone Etc/GMT+5 -5 - -05
Zone Etc/GMT+6 -6 - GMT+6 Zone Etc/GMT+6 -6 - -06
Zone Etc/GMT+7 -7 - GMT+7 Zone Etc/GMT+7 -7 - -07
Zone Etc/GMT+8 -8 - GMT+8 Zone Etc/GMT+8 -8 - -08
Zone Etc/GMT+9 -9 - GMT+9 Zone Etc/GMT+9 -9 - -09
Zone Etc/GMT+10 -10 - GMT+10 Zone Etc/GMT+10 -10 - -10
Zone Etc/GMT+11 -11 - GMT+11 Zone Etc/GMT+11 -11 - -11
Zone Etc/GMT+12 -12 - GMT+12 Zone Etc/GMT+12 -12 - -12
...@@ -98,8 +98,7 @@ ...@@ -98,8 +98,7 @@
# 1:00 CET CEST CEMT Central Europe # 1:00 CET CEST CEMT Central Europe
# 1:00:14 SET Swedish (1879-1899)* # 1:00:14 SET Swedish (1879-1899)*
# 2:00 EET EEST Eastern Europe # 2:00 EET EEST Eastern Europe
# 3:00 FET Further-eastern Europe (2011-2014)* # 3:00 MSK MSD Moscow
# 3:00 MSK MSD MSM* Minsk, Moscow
# From Peter Ilieve (1994-12-04), # From Peter Ilieve (1994-12-04),
# The original six [EU members]: Belgium, France, (West) Germany, Italy, # The original six [EU members]: Belgium, France, (West) Germany, Italy,
...@@ -606,16 +605,33 @@ Rule E-Eur 1979 1995 - Sep lastSun 0:00 0 - ...@@ -606,16 +605,33 @@ Rule E-Eur 1979 1995 - Sep lastSun 0:00 0 -
Rule E-Eur 1981 max - Mar lastSun 0:00 1:00 S Rule E-Eur 1981 max - Mar lastSun 0:00 1:00 S
Rule E-Eur 1996 max - Oct lastSun 0:00 0 - Rule E-Eur 1996 max - Oct lastSun 0:00 0 -
# Daylight saving time for Russia and the Soviet Union
#
# The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23).
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time
#
# Decree No. 142 (1917-12-22) http://istmat.info/node/28137
Rule Russia 1917 only - Dec 28 0:00 0 MMT # Moscow Mean Time Rule Russia 1917 only - Dec 28 0:00 0 MMT # Moscow Mean Time
#
# Decree No. 497 (1918-05-30) http://istmat.info/node/30001
Rule Russia 1918 only - May 31 22:00 2:00 MDST # Moscow Double Summer Time Rule Russia 1918 only - May 31 22:00 2:00 MDST # Moscow Double Summer Time
Rule Russia 1918 only - Sep 16 1:00 1:00 MST Rule Russia 1918 only - Sep 16 1:00 1:00 MST
#
# Decree No. 258 (1919-05-29) http://istmat.info/node/37949
Rule Russia 1919 only - May 31 23:00 2:00 MDST Rule Russia 1919 only - May 31 23:00 2:00 MDST
Rule Russia 1919 only - Jul 1 2:00 1:00 MSD #
Rule Russia 1919 only - Jul 1 0:00u 1:00 MSD
Rule Russia 1919 only - Aug 16 0:00 0 MSK Rule Russia 1919 only - Aug 16 0:00 0 MSK
#
# Decree No. 63 (1921-02-03) http://istmat.info/node/45840
Rule Russia 1921 only - Feb 14 23:00 1:00 MSD Rule Russia 1921 only - Feb 14 23:00 1:00 MSD
Rule Russia 1921 only - Mar 20 23:00 2:00 MSM # Midsummer #
# Decree No. 121 (1921-03-07) http://istmat.info/node/45949
Rule Russia 1921 only - Mar 20 23:00 2:00 +05
#
Rule Russia 1921 only - Sep 1 0:00 1:00 MSD Rule Russia 1921 only - Sep 1 0:00 1:00 MSD
Rule Russia 1921 only - Oct 1 0:00 0 - Rule Russia 1921 only - Oct 1 0:00 0 -
# Act No. 925 of the Council of Ministers of the USSR (1980-10-24): # Act No. 925 of the Council of Ministers of the USSR (1980-10-24):
...@@ -798,8 +814,6 @@ Zone Europe/Vienna 1:05:21 - LMT 1893 Apr ...@@ -798,8 +814,6 @@ Zone Europe/Vienna 1:05:21 - LMT 1893 Apr
# From Alexander Bokovoy (2014-10-09): # From Alexander Bokovoy (2014-10-09):
# Belarussian government decided against changing to winter time.... # 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 # http://eng.belta.by/all_news/society/Belarus-decides-against-adjusting-time-in-Russias-wake_i_76335.html
# From Paul Eggert (2014-10-08):
# Hence Belarus can share time zone abbreviations with Moscow again.
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Minsk 1:50:16 - LMT 1880 Zone Europe/Minsk 1:50:16 - LMT 1880
...@@ -810,8 +824,7 @@ Zone Europe/Minsk 1:50:16 - LMT 1880 ...@@ -810,8 +824,7 @@ Zone Europe/Minsk 1:50:16 - LMT 1880
3:00 Russia MSK/MSD 1990 3:00 Russia MSK/MSD 1990
3:00 - MSK 1991 Mar 31 2:00s 3:00 - MSK 1991 Mar 31 2:00s
2:00 Russia EE%sT 2011 Mar 27 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s
3:00 - FET 2014 Oct 26 1:00s 3:00 - +03
3:00 - MSK
# Belgium # Belgium
# #
...@@ -1319,7 +1332,7 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01 ...@@ -1319,7 +1332,7 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
# http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf # http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf
# says that Bersarin issued an order to use Moscow time on May 20. # says that Bersarin issued an order to use Moscow time on May 20.
# However, Moscow did not observe daylight saving in 1945, so # However, Moscow did not observe daylight saving in 1945, so
# this was equivalent to CEMT (GMT+3), not GMT+4. # this was equivalent to UT +03, not +04.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
...@@ -2283,7 +2296,6 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct ...@@ -2283,7 +2296,6 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct
# http://www.worldtimezone.com/dst_news/dst_news_russia-map-2014-07.html # http://www.worldtimezone.com/dst_news/dst_news_russia-map-2014-07.html
# From Paul Eggert (2006-03-22): # From Paul Eggert (2006-03-22):
# Except for Moscow after 1919-07-01, I invented the time zone abbreviations.
# Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991, # Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991,
# are from Andrey A. Chernov. The rest is from Shanks & Pottenger, # are from Andrey A. Chernov. The rest is from Shanks & Pottenger,
# except we follow Chernov's report that 1992 DST transitions were Sat # except we follow Chernov's report that 1992 DST transitions were Sat
...@@ -2359,7 +2371,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr ...@@ -2359,7 +2371,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
2:00 Poland CE%sT 1946 2:00 Poland CE%sT 1946
3:00 Russia MSK/MSD 1989 Mar 26 2:00s 3:00 Russia MSK/MSD 1989 Mar 26 2:00s
2:00 Russia EE%sT 2011 Mar 27 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s
3:00 - FET 2014 Oct 26 2:00s 3:00 - +03 2014 Oct 26 2:00s
2:00 - EET 2:00 - EET
...@@ -2412,6 +2424,16 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr ...@@ -2412,6 +2424,16 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
# 78 RU-SPE Saint Petersburg # 78 RU-SPE Saint Petersburg
# 83 RU-NEN Nenets Autonomous Okrug # 83 RU-NEN Nenets Autonomous Okrug
# From Paul Eggert (2016-08-23):
# The Soviets switched to UT-based time in 1919. Decree No. 59
# (1919-02-08) http://istmat.info/node/35567 established UT-based time
# zones, and Decree No. 147 (1919-03-29) http://istmat.info/node/35854
# specified a transition date of 1919-07-01, apparently at 00:00 UT.
# No doubt only the Soviet-controlled regions switched on that date;
# later transitions to UT-based time in other parts of Russia are
# taken from what appear to be guesses by Shanks.
# (Thanks to Alexander Belopolsky for pointers to the decrees.)
# From Stepan Golosunov (2016-03-07): # From Stepan Golosunov (2016-03-07):
# 11. Regions-violators, 1981-1982. # 11. Regions-violators, 1981-1982.
# Wikipedia refers to # Wikipedia refers to
...@@ -2453,7 +2475,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr ...@@ -2453,7 +2475,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
# attributes the 1982 changes to the Act of the Council of Ministers # attributes the 1982 changes to the Act of the Council of Ministers
# of the USSR No. 126 from 18.02.1982. 1980-925.txt also adds # of the USSR No. 126 from 18.02.1982. 1980-925.txt also adds
# Udmurtia to the list of affected territories and lists Khatangsky # Udmurtia to the list of affected territories and lists Khatangsky
# district separately from Taymyr Autonomous Okurg. Probably erroneously. # district separately from Taymyr Autonomous Okrug. Probably erroneously.
# #
# The affected territories are currently listed under Europe/Moscow, # The affected territories are currently listed under Europe/Moscow,
# Asia/Yekaterinburg and Asia/Krasnoyarsk. # Asia/Yekaterinburg and Asia/Krasnoyarsk.
...@@ -2513,7 +2535,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr ...@@ -2513,7 +2535,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
Zone Europe/Moscow 2:30:17 - LMT 1880 Zone Europe/Moscow 2:30:17 - LMT 1880
2:30:17 - MMT 1916 Jul 3 # Moscow Mean Time 2:30:17 - MMT 1916 Jul 3 # Moscow Mean Time
2:31:19 Russia %s 1919 Jul 1 2:00 2:31:19 Russia %s 1919 Jul 1 0:00u
3:00 Russia %s 1921 Oct 3:00 Russia %s 1921 Oct
3:00 Russia MSK/MSD 1922 Oct 3:00 Russia MSK/MSD 1922 Oct
2:00 - EET 1930 Jun 21 2:00 - EET 1930 Jun 21
...@@ -2596,22 +2618,21 @@ Zone Europe/Astrakhan 3:12:12 - LMT 1924 May ...@@ -2596,22 +2618,21 @@ Zone Europe/Astrakhan 3:12:12 - LMT 1924 May
# The 1988 transition is from USSR act No. 5 (1988-01-04). # The 1988 transition is from USSR act No. 5 (1988-01-04).
Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3
3:00 - TSAT 1925 Apr 6 # Tsaritsyn Time 3:00 - +03 1930 Jun 21
3:00 - STAT 1930 Jun 21 # Stalingrad Time 4:00 - +04 1961 Nov 11
4:00 - STAT 1961 Nov 11 4:00 Russia +04/+05 1988 Mar 27 2:00s
4:00 Russia VOL%sT 1988 Mar 27 2:00s # Volgograd T 3:00 Russia +03/+04 1991 Mar 31 2:00s
3:00 Russia VOL%sT 1991 Mar 31 2:00s 4:00 - +04 1992 Mar 29 2:00s
4:00 - VOLT 1992 Mar 29 2:00s 3:00 Russia +03/+04 2011 Mar 27 2:00s
3:00 Russia MSK/MSD 2011 Mar 27 2:00s 4:00 - +04 2014 Oct 26 2:00s
4:00 - MSK 2014 Oct 26 2:00s 3:00 - +03
3:00 - MSK
# From Paul Eggert (2016-03-18): # From Paul Eggert (2016-03-18):
# Europe/Kirov covers: # Europe/Kirov covers:
# 43 RU-KIR Kirov Oblast # 43 RU-KIR Kirov Oblast
# The 1989 transition is from USSR act No. 227 (1989-03-14). # The 1989 transition is from USSR act No. 227 (1989-03-14).
# #
Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 2:00 Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0:00u
3:00 - +03 1930 Jun 21 3:00 - +03 1930 Jun 21
4:00 Russia +04/+05 1989 Mar 26 2:00s 4:00 Russia +04/+05 1989 Mar 26 2:00s
3:00 Russia +03/+04 1991 Mar 31 2:00s 3:00 Russia +03/+04 1991 Mar 31 2:00s
...@@ -2629,16 +2650,16 @@ Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 2:00 ...@@ -2629,16 +2650,16 @@ Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 2:00
# Byalokoz 1919 says Samara was 3:20:20. # Byalokoz 1919 says Samara was 3:20:20.
# The 1989 transition is from USSR act No. 227 (1989-03-14). # The 1989 transition is from USSR act No. 227 (1989-03-14).
Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 2:00 Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 0:00u
3:00 - SAMT 1930 Jun 21 # Samara Time 3:00 - +03 1930 Jun 21
4:00 - SAMT 1935 Jan 27 4:00 - +04 1935 Jan 27
4:00 Russia KUY%sT 1989 Mar 26 2:00s # Kuybyshev 4:00 Russia +04/+05 1989 Mar 26 2:00s
3:00 Russia MSK/MSD 1991 Mar 31 2:00s 3:00 Russia +03/+04 1991 Mar 31 2:00s
2:00 Russia EE%sT 1991 Sep 29 2:00s 2:00 Russia +02/+03 1991 Sep 29 2:00s
3:00 - SAMT 1991 Oct 20 3:00 3:00 - +03 1991 Oct 20 3:00
4:00 Russia SAM%sT 2010 Mar 28 2:00s 4:00 Russia +04/+05 2010 Mar 28 2:00s
3:00 Russia SAM%sT 2011 Mar 27 2:00s 3:00 Russia +03/+04 2011 Mar 27 2:00s
4:00 - SAMT 4:00 - +04
# From Paul Eggert (2016-03-18): # From Paul Eggert (2016-03-18):
# Europe/Ulyanovsk covers: # Europe/Ulyanovsk covers:
...@@ -2653,7 +2674,7 @@ Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 2:00 ...@@ -2653,7 +2674,7 @@ Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 2:00
# From Matt Johnson (2016-03-09): # From Matt Johnson (2016-03-09):
# http://publication.pravo.gov.ru/Document/View/0001201603090051 # http://publication.pravo.gov.ru/Document/View/0001201603090051
Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 2:00 Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0:00u
3:00 - +03 1930 Jun 21 3:00 - +03 1930 Jun 21
4:00 Russia +04/+05 1989 Mar 26 2:00s 4:00 Russia +04/+05 1989 Mar 26 2:00s
3:00 Russia +03/+04 1991 Mar 31 2:00s 3:00 Russia +03/+04 1991 Mar 31 2:00s
...@@ -2685,12 +2706,12 @@ Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 2:00 ...@@ -2685,12 +2706,12 @@ Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 2:00
Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3 Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3
3:45:05 - PMT 1919 Jul 15 4:00 3:45:05 - PMT 1919 Jul 15 4:00
4:00 - SVET 1930 Jun 21 # Sverdlovsk Time 4:00 - +04 1930 Jun 21
5:00 Russia SVE%sT 1991 Mar 31 2:00s 5:00 Russia +05/+06 1991 Mar 31 2:00s
4:00 Russia SVE%sT 1992 Jan 19 2:00s 4:00 Russia +04/+05 1992 Jan 19 2:00s
5:00 Russia YEK%sT 2011 Mar 27 2:00s 5:00 Russia +05/+06 2011 Mar 27 2:00s
6:00 - YEKT 2014 Oct 26 2:00s 6:00 - +06 2014 Oct 26 2:00s
5:00 - YEKT 5:00 - +05
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
...@@ -2700,12 +2721,12 @@ Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3 ...@@ -2700,12 +2721,12 @@ Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3
# Byalokoz 1919 says Omsk was 4:53:30. # Byalokoz 1919 says Omsk was 4:53:30.
Zone Asia/Omsk 4:53:30 - LMT 1919 Nov 14 Zone Asia/Omsk 4:53:30 - LMT 1919 Nov 14
5:00 - OMST 1930 Jun 21 # Omsk Time 5:00 - +05 1930 Jun 21
6:00 Russia OMS%sT 1991 Mar 31 2:00s 6:00 Russia +06/+07 1991 Mar 31 2:00s
5:00 Russia OMS%sT 1992 Jan 19 2:00s 5:00 Russia +05/+06 1992 Jan 19 2:00s
6:00 Russia OMS%sT 2011 Mar 27 2:00s 6:00 Russia +06/+07 2011 Mar 27 2:00s
7:00 - OMST 2014 Oct 26 2:00s 7:00 - +07 2014 Oct 26 2:00s
6:00 - OMST 6:00 - +06
# From Paul Eggert (2016-02-22): # From Paul Eggert (2016-02-22):
# Asia/Barnaul covers: # Asia/Barnaul covers:
...@@ -2785,7 +2806,7 @@ Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00 ...@@ -2785,7 +2806,7 @@ Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00
# Note that time belts (numbered from 2 (Moscow) to 12 according to their # Note that time belts (numbered from 2 (Moscow) to 12 according to their
# GMT/UTC offset and having too many exceptions like regions formally # GMT/UTC offset and having too many exceptions like regions formally
# belonging to one belt but using time from another) were replaced # belonging to one belt but using time from another) were replaced
# with time zones in 2011 with different numberings (there was a # with time zones in 2011 with different numbering (there was a
# 2-hour gap between second and third zones in 2011-2014). # 2-hour gap between second and third zones in 2011-2014).
# From Stepan Golosunov (2016-04-12): # From Stepan Golosunov (2016-04-12):
...@@ -2868,12 +2889,12 @@ Zone Asia/Novokuznetsk 5:48:48 - LMT 1924 May 1 ...@@ -2868,12 +2889,12 @@ Zone Asia/Novokuznetsk 5:48:48 - LMT 1924 May 1
# Byalokoz 1919 says Krasnoyarsk was 6:11:26. # Byalokoz 1919 says Krasnoyarsk was 6:11:26.
Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6 Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6
6:00 - KRAT 1930 Jun 21 # Krasnoyarsk Time 6:00 - +06 1930 Jun 21
7:00 Russia KRA%sT 1991 Mar 31 2:00s 7:00 Russia +07/+08 1991 Mar 31 2:00s
6:00 Russia KRA%sT 1992 Jan 19 2:00s 6:00 Russia +06/+07 1992 Jan 19 2:00s
7:00 Russia KRA%sT 2011 Mar 27 2:00s 7:00 Russia +07/+08 2011 Mar 27 2:00s
8:00 - KRAT 2014 Oct 26 2:00s 8:00 - +08 2014 Oct 26 2:00s
7:00 - KRAT 7:00 - +07
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
...@@ -2890,12 +2911,12 @@ Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6 ...@@ -2890,12 +2911,12 @@ Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6
Zone Asia/Irkutsk 6:57:05 - LMT 1880 Zone Asia/Irkutsk 6:57:05 - LMT 1880
6:57:05 - IMT 1920 Jan 25 # Irkutsk Mean Time 6:57:05 - IMT 1920 Jan 25 # Irkutsk Mean Time
7:00 - IRKT 1930 Jun 21 # Irkutsk Time 7:00 - +07 1930 Jun 21
8:00 Russia IRK%sT 1991 Mar 31 2:00s 8:00 Russia +08/+09 1991 Mar 31 2:00s
7:00 Russia IRK%sT 1992 Jan 19 2:00s 7:00 Russia +07/+08 1992 Jan 19 2:00s
8:00 Russia IRK%sT 2011 Mar 27 2:00s 8:00 Russia +08/+09 2011 Mar 27 2:00s
9:00 - IRKT 2014 Oct 26 2:00s 9:00 - +09 2014 Oct 26 2:00s
8:00 - IRKT 8:00 - +08
# From Tim Parenti (2014-07-06): # From Tim Parenti (2014-07-06):
...@@ -2912,13 +2933,13 @@ Zone Asia/Irkutsk 6:57:05 - LMT 1880 ...@@ -2912,13 +2933,13 @@ Zone Asia/Irkutsk 6:57:05 - LMT 1880
# http://publication.pravo.gov.ru/Document/View/0001201512300107 # http://publication.pravo.gov.ru/Document/View/0001201512300107
Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15 Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15
8:00 - YAKT 1930 Jun 21 # Yakutsk Time 8:00 - +08 1930 Jun 21
9:00 Russia YAK%sT 1991 Mar 31 2:00s 9:00 Russia +09/+10 1991 Mar 31 2:00s
8:00 Russia YAK%sT 1992 Jan 19 2:00s 8:00 Russia +08/+09 1992 Jan 19 2:00s
9:00 Russia YAK%sT 2011 Mar 27 2:00s 9:00 Russia +09/+10 2011 Mar 27 2:00s
10:00 - YAKT 2014 Oct 26 2:00s 10:00 - +10 2014 Oct 26 2:00s
8:00 - IRKT 2016 Mar 27 2:00 8:00 - +08 2016 Mar 27 2:00
9:00 - YAKT 9:00 - +09
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
...@@ -2958,12 +2979,12 @@ Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15 ...@@ -2958,12 +2979,12 @@ Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15
# Byalokoz 1919 says Yakutsk was 8:38:58. # Byalokoz 1919 says Yakutsk was 8:38:58.
Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15 Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15
8:00 - YAKT 1930 Jun 21 # Yakutsk Time 8:00 - +08 1930 Jun 21
9:00 Russia YAK%sT 1991 Mar 31 2:00s 9:00 Russia +09/+10 1991 Mar 31 2:00s
8:00 Russia YAK%sT 1992 Jan 19 2:00s 8:00 Russia +08/+09 1992 Jan 19 2:00s
9:00 Russia YAK%sT 2011 Mar 27 2:00s 9:00 Russia +09/+10 2011 Mar 27 2:00s
10:00 - YAKT 2014 Oct 26 2:00s 10:00 - +10 2014 Oct 26 2:00s
9:00 - YAKT 9:00 - +09
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
...@@ -2981,12 +3002,12 @@ Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15 ...@@ -2981,12 +3002,12 @@ Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15
# Go with Byalokoz. # Go with Byalokoz.
Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15 Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15
9:00 - VLAT 1930 Jun 21 # Vladivostok Time 9:00 - +09 1930 Jun 21
10:00 Russia VLA%sT 1991 Mar 31 2:00s 10:00 Russia +10/+11 1991 Mar 31 2:00s
9:00 Russia VLA%sT 1992 Jan 19 2:00s 9:00 Russia +09/+10 1992 Jan 19 2:00s
10:00 Russia VLA%sT 2011 Mar 27 2:00s 10:00 Russia +10/+11 2011 Mar 27 2:00s
11:00 - VLAT 2014 Oct 26 2:00s 11:00 - +11 2014 Oct 26 2:00s
10:00 - VLAT 10:00 - +10
# From Tim Parenti (2014-07-03): # From Tim Parenti (2014-07-03):
...@@ -3004,14 +3025,14 @@ Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15 ...@@ -3004,14 +3025,14 @@ Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15
# This transition is no doubt wrong, but we have no better info. # This transition is no doubt wrong, but we have no better info.
Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15 Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15
8:00 - YAKT 1930 Jun 21 # Yakutsk Time 8:00 - +08 1930 Jun 21
9:00 Russia YAK%sT 1991 Mar 31 2:00s 9:00 Russia +09/+10 1991 Mar 31 2:00s
8:00 Russia YAK%sT 1992 Jan 19 2:00s 8:00 Russia +08/+09 1992 Jan 19 2:00s
9:00 Russia YAK%sT 2004 9:00 Russia +09/+10 2004
10:00 Russia VLA%sT 2011 Mar 27 2:00s 10:00 Russia +10/+11 2011 Mar 27 2:00s
11:00 - VLAT 2011 Sep 13 0:00s # Decree 725? 11:00 - +11 2011 Sep 13 0:00s # Decree 725?
10:00 - YAKT 2014 Oct 26 2:00s 10:00 - +10 2014 Oct 26 2:00s
9:00 - YAKT 9:00 - +09
# From Tim Parenti (2014-07-03): # From Tim Parenti (2014-07-03):
...@@ -3027,15 +3048,14 @@ Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15 ...@@ -3027,15 +3048,14 @@ Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15
# The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long. # The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long.
Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23 Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23
9:00 - JCST 1937 Oct 1 9:00 - +09 1945 Aug 25
9:00 - JST 1945 Aug 25 11:00 Russia +11/+12 1991 Mar 31 2:00s # Sakhalin T
11:00 Russia SAK%sT 1991 Mar 31 2:00s # Sakhalin T 10:00 Russia +10/+11 1992 Jan 19 2:00s
10:00 Russia SAK%sT 1992 Jan 19 2:00s 11:00 Russia +11/+12 1997 Mar lastSun 2:00s
11:00 Russia SAK%sT 1997 Mar lastSun 2:00s 10:00 Russia +10/+11 2011 Mar 27 2:00s
10:00 Russia SAK%sT 2011 Mar 27 2:00s 11:00 - +11 2014 Oct 26 2:00s
11:00 - SAKT 2014 Oct 26 2:00s 10:00 - +10 2016 Mar 27 2:00s
10:00 - SAKT 2016 Mar 27 2:00s 11:00 - +11
11:00 - SAKT
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
...@@ -3058,13 +3078,13 @@ Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23 ...@@ -3058,13 +3078,13 @@ Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23
# http://publication.pravo.gov.ru/Document/View/0001201604050038 # http://publication.pravo.gov.ru/Document/View/0001201604050038
Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 Zone Asia/Magadan 10:03:12 - LMT 1924 May 2
10:00 - MAGT 1930 Jun 21 # Magadan Time 10:00 - +10 1930 Jun 21 # Magadan Time
11:00 Russia MAG%sT 1991 Mar 31 2:00s 11:00 Russia +11/+12 1991 Mar 31 2:00s
10:00 Russia MAG%sT 1992 Jan 19 2:00s 10:00 Russia +10/+11 1992 Jan 19 2:00s
11:00 Russia MAG%sT 2011 Mar 27 2:00s 11:00 Russia +11/+12 2011 Mar 27 2:00s
12:00 - MAGT 2014 Oct 26 2:00s 12:00 - +12 2014 Oct 26 2:00s
10:00 - MAGT 2016 Apr 24 2:00s 10:00 - +10 2016 Apr 24 2:00s
11:00 - MAGT 11:00 - +11
# From Tim Parenti (2014-07-06): # From Tim Parenti (2014-07-06):
...@@ -3107,17 +3127,14 @@ Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 ...@@ -3107,17 +3127,14 @@ Zone Asia/Magadan 10:03:12 - LMT 1924 May 2
# in Russian.) In addition, Srednekolymsk appears to be a much older # in Russian.) In addition, Srednekolymsk appears to be a much older
# settlement and the population of Zyryanka seems to be declining. # settlement and the population of Zyryanka seems to be declining.
# Go with Srednekolymsk. # Go with Srednekolymsk.
#
# Since Magadan Oblast moves to UTC+10 on 2014-10-26, we cannot keep using MAGT
# as the abbreviation. Use SRET instead.
Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2
10:00 - MAGT 1930 Jun 21 # Magadan Time 10:00 - +10 1930 Jun 21
11:00 Russia MAG%sT 1991 Mar 31 2:00s 11:00 Russia +11/+12 1991 Mar 31 2:00s
10:00 Russia MAG%sT 1992 Jan 19 2:00s 10:00 Russia +10/+11 1992 Jan 19 2:00s
11:00 Russia MAG%sT 2011 Mar 27 2:00s 11:00 Russia +11/+12 2011 Mar 27 2:00s
12:00 - MAGT 2014 Oct 26 2:00s 12:00 - +12 2014 Oct 26 2:00s
11:00 - SRET # Srednekolymsk Time 11:00 - +11
# From Tim Parenti (2014-07-03): # From Tim Parenti (2014-07-03):
...@@ -3135,14 +3152,14 @@ Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 ...@@ -3135,14 +3152,14 @@ Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2
# UTC+12 since at least then, too. # UTC+12 since at least then, too.
Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15 Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15
8:00 - YAKT 1930 Jun 21 # Yakutsk Time 8:00 - +08 1930 Jun 21
9:00 Russia YAKT 1981 Apr 1 9:00 Russia +09/+10 1981 Apr 1
11:00 Russia MAG%sT 1991 Mar 31 2:00s 11:00 Russia +11/+12 1991 Mar 31 2:00s
10:00 Russia MAG%sT 1992 Jan 19 2:00s 10:00 Russia +10/+11 1992 Jan 19 2:00s
11:00 Russia MAG%sT 2011 Mar 27 2:00s 11:00 Russia +11/+12 2011 Mar 27 2:00s
12:00 - MAGT 2011 Sep 13 0:00s # Decree 725? 12:00 - +12 2011 Sep 13 0:00s # Decree 725?
11:00 - VLAT 2014 Oct 26 2:00s 11:00 - +11 2014 Oct 26 2:00s
10:00 - VLAT 10:00 - +10
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
...@@ -3155,12 +3172,12 @@ Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15 ...@@ -3155,12 +3172,12 @@ Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15
# The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps # The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps
# Asia/Petropavlovsk-Kamchatsky, but these are too long. # Asia/Petropavlovsk-Kamchatsky, but these are too long.
Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10 Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10
11:00 - PETT 1930 Jun 21 # P-K Time 11:00 - +11 1930 Jun 21
12:00 Russia PET%sT 1991 Mar 31 2:00s 12:00 Russia +12/+13 1991 Mar 31 2:00s
11:00 Russia PET%sT 1992 Jan 19 2:00s 11:00 Russia +11/+12 1992 Jan 19 2:00s
12:00 Russia PET%sT 2010 Mar 28 2:00s 12:00 Russia +12/+13 2010 Mar 28 2:00s
11:00 Russia PET%sT 2011 Mar 27 2:00s 11:00 Russia +11/+12 2011 Mar 27 2:00s
12:00 - PETT 12:00 - +12
# From Tim Parenti (2014-07-03): # From Tim Parenti (2014-07-03):
...@@ -3168,13 +3185,13 @@ Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10 ...@@ -3168,13 +3185,13 @@ Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10
# 87 RU-CHU Chukotka Autonomous Okrug # 87 RU-CHU Chukotka Autonomous Okrug
Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2
12:00 - ANAT 1930 Jun 21 # Anadyr Time 12:00 - +12 1930 Jun 21
13:00 Russia ANA%sT 1982 Apr 1 0:00s 13:00 Russia +13/+14 1982 Apr 1 0:00s
12:00 Russia ANA%sT 1991 Mar 31 2:00s 12:00 Russia +12/+13 1991 Mar 31 2:00s
11:00 Russia ANA%sT 1992 Jan 19 2:00s 11:00 Russia +11/+12 1992 Jan 19 2:00s
12:00 Russia ANA%sT 2010 Mar 28 2:00s 12:00 Russia +12/+13 2010 Mar 28 2:00s
11:00 Russia ANA%sT 2011 Mar 27 2:00s 11:00 Russia +11/+12 2011 Mar 27 2:00s
12:00 - ANAT 12:00 - +12
# San Marino # San Marino
...@@ -3495,6 +3512,14 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. ...@@ -3495,6 +3512,14 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment.
# Engineered Standard Time," said Twitter user @aysekarahasan. # Engineered Standard Time," said Twitter user @aysekarahasan.
# http://www.bbc.com/news/world-europe-34631326 # http://www.bbc.com/news/world-europe-34631326
# From Burak AYDIN (2016-09-08):
# Turkey will stay in Daylight Saving Time even in winter....
# http://www.resmigazete.gov.tr/eskiler/2016/09/20160908-2.pdf
#
# From Paul Eggert (2016-09-07):
# The change is permanent, so this is the new standard time in Turkey.
# It takes effect today, which is not much notice.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # 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 - May 1 0:00 1:00 S
Rule Turkey 1916 only - Oct 1 0:00 0 - Rule Turkey 1916 only - Oct 1 0:00 0 -
...@@ -3558,7 +3583,7 @@ Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 - ...@@ -3558,7 +3583,7 @@ Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 -
Zone Europe/Istanbul 1:55:52 - LMT 1880 Zone Europe/Istanbul 1:55:52 - LMT 1880
1:56:56 - IMT 1910 Oct # Istanbul Mean Time? 1:56:56 - IMT 1910 Oct # Istanbul Mean Time?
2:00 Turkey EE%sT 1978 Oct 15 2:00 Turkey EE%sT 1978 Oct 15
3:00 Turkey TR%sT 1985 Apr 20 # Turkey Time 3:00 Turkey +03/+04 1985 Apr 20
2:00 Turkey EE%sT 2007 2:00 Turkey EE%sT 2007
2:00 EU EE%sT 2011 Mar 27 1:00u 2:00 EU EE%sT 2011 Mar 27 1:00u
2:00 - EET 2011 Mar 28 1:00u 2:00 - EET 2011 Mar 28 1:00u
...@@ -3566,7 +3591,8 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880 ...@@ -3566,7 +3591,8 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880
2:00 - EET 2014 Mar 31 1:00u 2:00 - EET 2014 Mar 31 1:00u
2:00 EU EE%sT 2015 Oct 25 1:00u 2:00 EU EE%sT 2015 Oct 25 1:00u
2:00 1:00 EEST 2015 Nov 8 1:00u 2:00 1:00 EEST 2015 Nov 8 1:00u
2:00 EU EE%sT 2:00 EU EE%sT 2016 Sep 7
3:00 - +03
Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
# Ukraine # Ukraine
......
...@@ -24,9 +24,10 @@ ...@@ -24,9 +24,10 @@
# This file is in the public domain, so clarified as of # This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson. # 2009-05-17 by Arthur David Olson.
# For companies who don't want to put time zone specification in # For distributors who don't want to put time zone specification in
# their installation procedures. When users run date, they'll get the message. # their installation procedures. Users that run 'date' will get the
# Also useful for the "comp.sources" version. # time zone abbreviation "-00", indicating that the actual time zone
# is unknown.
# Zone NAME GMTOFF RULES FORMAT # Zone NAME GMTOFF RULES FORMAT
Zone Factory 0 - "Local time zone must be set--see zic manual page" Zone Factory 0 - -00
...@@ -79,6 +79,7 @@ Leap 2005 Dec 31 23:59:60 + S ...@@ -79,6 +79,7 @@ Leap 2005 Dec 31 23:59:60 + S
Leap 2008 Dec 31 23:59:60 + S Leap 2008 Dec 31 23:59:60 + S
Leap 2012 Jun 30 23:59:60 + S Leap 2012 Jun 30 23:59:60 + S
Leap 2015 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 C51 # Updated through IERS Bulletin C52
# File expires on: 28 December 2016 # File expires on: 28 June 2017
...@@ -436,11 +436,42 @@ Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04 ...@@ -436,11 +436,42 @@ Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04
# north of the Salmon River, and the towns of Burgdorf and Warren), # 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 3/4 of
# Malheur county), and Washington # Malheur county), and Washington
# From Paul Eggert (2016-08-20):
# In early February 1948, in response to California's electricity shortage,
# PG&E changed power frequency from 60 to 59.5 Hz during daylight hours,
# causing electric clocks to lose six minutes per day. (This did not change
# 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
#
# 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
# the fallback transition earlier. See pages 3-4 of:
# http://clerk.assembly.ca.gov/sites/clerk.assembly.ca.gov/files/archive/Statutes/1948/48Vol1_Chapters.pdf
#
# In response:
#
# Governor Warren received a torrent of objecting mail, and it is not too much
# to speculate that the objections to Daylight Saving Time were one important
# factor in the defeat of the Dewey-Warren Presidential ticket in California.
# -- Ross, p 25
#
# On December 8 the governor exercised the option, setting the date to January 1
# (LA Times 1948-12-09). The transition time was 02:00 (LA Times 1949-01-01).
#
# Despite the controversy, in 1949 California voters approved Proposition 12,
# 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
# #
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule CA 1948 only - Mar 14 2:00 1:00 D Rule CA 1948 only - Mar 14 2:01 1:00 D
Rule CA 1949 only - Jan 1 2:00 0 S Rule CA 1949 only - Jan 1 2:00 0 S
Rule CA 1950 1966 - Apr lastSun 2:00 1:00 D Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
Rule CA 1950 1961 - Sep lastSun 2:00 0 S Rule CA 1950 1961 - Sep lastSun 2:00 0 S
Rule CA 1962 1966 - Oct lastSun 2:00 0 S Rule CA 1962 1966 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
...@@ -3304,7 +3335,7 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre ...@@ -3304,7 +3335,7 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre
# indicating that the normal ET rules are followed. # indicating that the normal ET rules are followed.
# #
# From Paul Eggert (2014-08-19): # From Paul Eggert (2014-08-19):
# The 2014-08-13 Cabinet meeting decided to stay on UTC-4 year-round. See: # The 2014-08-13 Cabinet meeting decided to stay on UT -04 year-round. See:
# http://tcweeklynews.com/daylight-savings-time-to-be-maintained-p5353-127.htm # http://tcweeklynews.com/daylight-savings-time-to-be-maintained-p5353-127.htm
# Model this as a switch from EST/EDT to AST ... # Model this as a switch from EST/EDT to AST ...
# From Chris Walton (2014-11-04): # From Chris Walton (2014-11-04):
......
...@@ -433,9 +433,9 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S ...@@ -433,9 +433,9 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S
# stuck on Summer daylight savings time even though the summer is over. # stuck on Summer daylight savings time even though the summer is over.
# From Paul Eggert (2013-09-05): # From Paul Eggert (2013-09-05):
# Perhaps San Luis operates on the legal fiction that it is at UTC-4 # 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 summer time, but ordinary usage typically seems to
# just say it's at UTC-3; see, for example, # just say it's at -03; see, for example,
# http://es.wikipedia.org/wiki/Hora_oficial_argentina # http://es.wikipedia.org/wiki/Hora_oficial_argentina
# We've documented similar situations as being plain changes to # We've documented similar situations as being plain changes to
# standard time, so let's do that here too. This does not change UTC # standard time, so let's do that here too. This does not change UTC
......
...@@ -284,7 +284,7 @@ MH +0709+17112 Pacific/Majuro Marshall Islands (most areas) ...@@ -284,7 +284,7 @@ MH +0709+17112 Pacific/Majuro Marshall Islands (most areas)
MH +0905+16720 Pacific/Kwajalein Kwajalein MH +0905+16720 Pacific/Kwajalein Kwajalein
MK +4159+02126 Europe/Skopje MK +4159+02126 Europe/Skopje
ML +1239-00800 Africa/Bamako ML +1239-00800 Africa/Bamako
MM +1647+09610 Asia/Rangoon MM +1647+09610 Asia/Yangon
MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas) MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas)
MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar
......
...@@ -91,7 +91,7 @@ public class CEmbeddedFrame extends EmbeddedFrame { ...@@ -91,7 +91,7 @@ public class CEmbeddedFrame extends EmbeddedFrame {
int x = (int)pluginX; int x = (int)pluginX;
int y = (int)pluginY; int y = (int)pluginY;
responder.handleScrollEvent(x, y, modifierFlags, deltaX, deltaY); responder.handleScrollEvent(x, y, modifierFlags, deltaX, deltaY, NSEvent.SCROLL_PHASE_UNSUPPORTED);
} }
public void handleKeyEvent(int eventType, int modifierFlags, String characters, public void handleKeyEvent(int eventType, int modifierFlags, String characters,
......
...@@ -44,6 +44,8 @@ final class CPlatformResponder { ...@@ -44,6 +44,8 @@ final class CPlatformResponder {
private final PlatformEventNotifier eventNotifier; private final PlatformEventNotifier eventNotifier;
private final boolean isNpapiCallback; private final boolean isNpapiCallback;
private int lastKeyPressCode = KeyEvent.VK_UNDEFINED; private int lastKeyPressCode = KeyEvent.VK_UNDEFINED;
private final DeltaAccumulator deltaAccumulatorX = new DeltaAccumulator();
private final DeltaAccumulator deltaAccumulatorY = new DeltaAccumulator();
CPlatformResponder(final PlatformEventNotifier eventNotifier, CPlatformResponder(final PlatformEventNotifier eventNotifier,
final boolean isNpapiCallback) { final boolean isNpapiCallback) {
...@@ -90,37 +92,38 @@ final class CPlatformResponder { ...@@ -90,37 +92,38 @@ final class CPlatformResponder {
* Handles scroll events. * Handles scroll events.
*/ */
void handleScrollEvent(final int x, final int y, final int modifierFlags, void handleScrollEvent(final int x, final int y, final int modifierFlags,
final double deltaX, final double deltaY) { final double deltaX, final double deltaY,
final int scrollPhase) {
final int buttonNumber = CocoaConstants.kCGMouseButtonCenter; final int buttonNumber = CocoaConstants.kCGMouseButtonCenter;
int jmodifiers = NSEvent.nsToJavaMouseModifiers(buttonNumber, int jmodifiers = NSEvent.nsToJavaMouseModifiers(buttonNumber,
modifierFlags); modifierFlags);
final boolean isShift = (jmodifiers & InputEvent.SHIFT_DOWN_MASK) != 0; final boolean isShift = (jmodifiers & InputEvent.SHIFT_DOWN_MASK) != 0;
int roundDeltaX = deltaAccumulatorX.getRoundedDelta(deltaX, scrollPhase);
int roundDeltaY = deltaAccumulatorY.getRoundedDelta(deltaY, scrollPhase);
// Vertical scroll. // Vertical scroll.
if (!isShift && deltaY != 0.0) { if (!isShift && (deltaY != 0.0 || roundDeltaY != 0)) {
dispatchScrollEvent(x, y, jmodifiers, deltaY); dispatchScrollEvent(x, y, jmodifiers, roundDeltaY, deltaY);
} }
// Horizontal scroll or shirt+vertical scroll. // Horizontal scroll or shirt+vertical scroll.
final double delta = isShift && deltaY != 0.0 ? deltaY : deltaX; final double delta = isShift && deltaY != 0.0 ? deltaY : deltaX;
if (delta != 0.0) { final int roundDelta = isShift && roundDeltaY != 0 ? roundDeltaY : roundDeltaX;
if (delta != 0.0 || roundDelta != 0) {
jmodifiers |= InputEvent.SHIFT_DOWN_MASK; jmodifiers |= InputEvent.SHIFT_DOWN_MASK;
dispatchScrollEvent(x, y, jmodifiers, delta); dispatchScrollEvent(x, y, jmodifiers, roundDelta, delta);
} }
} }
private void dispatchScrollEvent(final int x, final int y, private void dispatchScrollEvent(final int x, final int y,
final int modifiers, final double delta) { final int modifiers,
final int roundDelta, final double delta) {
final long when = System.currentTimeMillis(); final long when = System.currentTimeMillis();
final int scrollType = MouseWheelEvent.WHEEL_UNIT_SCROLL; final int scrollType = MouseWheelEvent.WHEEL_UNIT_SCROLL;
final int scrollAmount = 1; final int scrollAmount = 1;
int wheelRotation = (int) delta;
int signum = (int) Math.signum(delta);
if (signum * delta < 1) {
wheelRotation = signum;
}
// invert the wheelRotation for the peer // invert the wheelRotation for the peer
eventNotifier.notifyMouseWheelEvent(when, x, y, modifiers, scrollType, eventNotifier.notifyMouseWheelEvent(when, x, y, modifiers, scrollType,
scrollAmount, -wheelRotation, -delta, null); scrollAmount, -roundDelta, -delta, null);
} }
/** /**
...@@ -256,4 +259,46 @@ final class CPlatformResponder { ...@@ -256,4 +259,46 @@ final class CPlatformResponder {
void handleWindowFocusEvent(boolean gained, LWWindowPeer opposite) { void handleWindowFocusEvent(boolean gained, LWWindowPeer opposite) {
eventNotifier.notifyActivation(gained, opposite); eventNotifier.notifyActivation(gained, opposite);
} }
static class DeltaAccumulator {
static final double MIN_THRESHOLD = 0.1;
static final double MAX_THRESHOLD = 0.5;
double accumulatedDelta;
int getRoundedDelta(double delta, int scrollPhase) {
int roundDelta = (int) Math.round(delta);
if (scrollPhase == NSEvent.SCROLL_PHASE_UNSUPPORTED) { // mouse wheel
if (roundDelta == 0 && delta != 0) {
roundDelta = delta > 0 ? 1 : -1;
}
} else { // trackpad
boolean begin = scrollPhase == NSEvent.SCROLL_PHASE_BEGAN;
boolean end = scrollPhase == NSEvent.SCROLL_MASK_PHASE_ENDED
|| scrollPhase == NSEvent.SCROLL_MASK_PHASE_CANCELLED;
if (begin) {
accumulatedDelta = 0;
}
accumulatedDelta += delta;
double absAccumulatedDelta = Math.abs(accumulatedDelta);
if (absAccumulatedDelta > MAX_THRESHOLD) {
roundDelta = (int) Math.round(accumulatedDelta);
accumulatedDelta -= roundDelta;
}
if (end) {
if (roundDelta == 0 && absAccumulatedDelta > MIN_THRESHOLD) {
roundDelta = accumulatedDelta > 0 ? 1 : -1;
}
}
}
return roundDelta;
}
}
} }
...@@ -192,7 +192,8 @@ public class CPlatformView extends CFRetainedResource { ...@@ -192,7 +192,8 @@ public class CPlatformView extends CFRetainedResource {
if (event.getType() == CocoaConstants.NSScrollWheel) { if (event.getType() == CocoaConstants.NSScrollWheel) {
responder.handleScrollEvent(x, y, event.getModifierFlags(), responder.handleScrollEvent(x, y, event.getModifierFlags(),
event.getScrollDeltaX(), event.getScrollDeltaY()); event.getScrollDeltaX(), event.getScrollDeltaY(),
event.getScrollPhase());
} else { } else {
responder.handleMouseEvent(event.getType(), event.getModifierFlags(), event.getButtonNumber(), responder.handleMouseEvent(event.getType(), event.getModifierFlags(), event.getButtonNumber(),
event.getClickCount(), x, y, event.getAbsX(), event.getAbsY()); event.getClickCount(), x, y, event.getAbsX(), event.getAbsY());
......
...@@ -32,6 +32,13 @@ import java.awt.event.*; ...@@ -32,6 +32,13 @@ import java.awt.event.*;
* JDK functionality. * JDK functionality.
*/ */
final class NSEvent { final class NSEvent {
static final int SCROLL_PHASE_UNSUPPORTED = 1;
static final int SCROLL_PHASE_BEGAN = 2;
static final int SCROLL_PHASE_CONTINUED = 3;
static final int SCROLL_MASK_PHASE_CANCELLED = 4;
static final int SCROLL_MASK_PHASE_ENDED = 5;
private int type; private int type;
private int modifierFlags; private int modifierFlags;
...@@ -42,6 +49,7 @@ final class NSEvent { ...@@ -42,6 +49,7 @@ final class NSEvent {
private int y; private int y;
private double scrollDeltaY; private double scrollDeltaY;
private double scrollDeltaX; private double scrollDeltaX;
private int scrollPhase;
private int absX; private int absX;
private int absY; private int absY;
...@@ -62,7 +70,7 @@ final class NSEvent { ...@@ -62,7 +70,7 @@ final class NSEvent {
// Called from native // Called from native
NSEvent(int type, int modifierFlags, int clickCount, int buttonNumber, NSEvent(int type, int modifierFlags, int clickCount, int buttonNumber,
int x, int y, int absX, int absY, int x, int y, int absX, int absY,
double scrollDeltaY, double scrollDeltaX) { double scrollDeltaY, double scrollDeltaX, int scrollPhase) {
this.type = type; this.type = type;
this.modifierFlags = modifierFlags; this.modifierFlags = modifierFlags;
this.clickCount = clickCount; this.clickCount = clickCount;
...@@ -73,6 +81,7 @@ final class NSEvent { ...@@ -73,6 +81,7 @@ final class NSEvent {
this.absY = absY; this.absY = absY;
this.scrollDeltaY = scrollDeltaY; this.scrollDeltaY = scrollDeltaY;
this.scrollDeltaX = scrollDeltaX; this.scrollDeltaX = scrollDeltaX;
this.scrollPhase = scrollPhase;
} }
int getType() { int getType() {
...@@ -107,6 +116,10 @@ final class NSEvent { ...@@ -107,6 +116,10 @@ final class NSEvent {
return scrollDeltaX; return scrollDeltaX;
} }
int getScrollPhase() {
return scrollPhase;
}
int getAbsX() { int getAbsX() {
return absX; return absX;
} }
......
...@@ -386,7 +386,7 @@ AWT_ASSERT_APPKIT_THREAD; ...@@ -386,7 +386,7 @@ AWT_ASSERT_APPKIT_THREAD;
} }
static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/NSEvent"); static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/NSEvent");
static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IIIIIIIIDD)V"); static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IIIIIIIIDDI)V");
jobject jEvent = JNFNewObject(env, jctor_NSEvent, jobject jEvent = JNFNewObject(env, jctor_NSEvent,
[event type], [event type],
[event modifierFlags], [event modifierFlags],
...@@ -395,7 +395,8 @@ AWT_ASSERT_APPKIT_THREAD; ...@@ -395,7 +395,8 @@ AWT_ASSERT_APPKIT_THREAD;
(jint)localPoint.x, (jint)localPoint.y, (jint)localPoint.x, (jint)localPoint.y,
(jint)absP.x, (jint)absP.y, (jint)absP.x, (jint)absP.y,
[event deltaY], [event deltaY],
[event deltaX]); [event deltaX],
[AWTToolkit scrollStateWithEvent: event]);
if (jEvent == nil) { if (jEvent == nil) {
// Unable to create event by some reason. // Unable to create event by some reason.
return; return;
......
...@@ -136,7 +136,7 @@ static NSSize ScaledImageSizeForStatusBar(NSSize imageSize) { ...@@ -136,7 +136,7 @@ static NSSize ScaledImageSizeForStatusBar(NSSize imageSize) {
clickCount = [event clickCount]; clickCount = [event clickCount];
static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/NSEvent"); static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/NSEvent");
static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IIIIIIIIDD)V"); static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IIIIIIIIDDI)V");
jobject jEvent = JNFNewObject(env, jctor_NSEvent, jobject jEvent = JNFNewObject(env, jctor_NSEvent,
[event type], [event type],
[event modifierFlags], [event modifierFlags],
...@@ -145,7 +145,8 @@ static NSSize ScaledImageSizeForStatusBar(NSSize imageSize) { ...@@ -145,7 +145,8 @@ static NSSize ScaledImageSizeForStatusBar(NSSize imageSize) {
(jint)localPoint.x, (jint)localPoint.y, (jint)localPoint.x, (jint)localPoint.y,
(jint)absP.x, (jint)absP.y, (jint)absP.x, (jint)absP.y,
[event deltaY], [event deltaY],
[event deltaX]); [event deltaX],
[AWTToolkit scrollStateWithEvent: event]);
if (jEvent == nil) { if (jEvent == nil) {
// Unable to create event by some reason. // Unable to create event by some reason.
return; return;
......
...@@ -40,6 +40,7 @@ extern jint* gButtonDownMasks; ...@@ -40,6 +40,7 @@ extern jint* gButtonDownMasks;
@interface AWTToolkit : NSObject { } @interface AWTToolkit : NSObject { }
+ (long) getEventCount; + (long) getEventCount;
+ (void) eventCountPlusPlus; + (void) eventCountPlusPlus;
+ (jint) scrollStateWithEvent: (NSEvent*) event;
@end @end
/* /*
......
...@@ -39,6 +39,13 @@ ...@@ -39,6 +39,13 @@
#import "sizecalc.h" #import "sizecalc.h"
// SCROLL PHASE STATE
#define SCROLL_PHASE_UNSUPPORTED 1
#define SCROLL_PHASE_BEGAN 2
#define SCROLL_PHASE_CONTINUED 3
#define SCROLL_PHASE_CANCELLED 4
#define SCROLL_PHASE_ENDED 5
int gNumberOfButtons; int gNumberOfButtons;
jint* gButtonDownMasks; jint* gButtonDownMasks;
...@@ -54,6 +61,23 @@ static long eventCount; ...@@ -54,6 +61,23 @@ static long eventCount;
eventCount++; eventCount++;
} }
+ (jint) scrollStateWithEvent: (NSEvent*) event {
if ([event type] != NSScrollWheel) {
return 0;
}
NSEventPhase phase = [event phase];
NSEventPhase momentumPhase = [event momentumPhase];
if (!phase && !momentumPhase) return SCROLL_PHASE_UNSUPPORTED;
switch (phase) {
case NSEventPhaseBegan: return SCROLL_PHASE_BEGAN;
case NSEventPhaseCancelled: return SCROLL_PHASE_CANCELLED;
case NSEventPhaseEnded: return SCROLL_PHASE_ENDED;
}
return SCROLL_PHASE_CONTINUED;
}
@end @end
......
...@@ -162,6 +162,44 @@ GetFamilyNameForFontName(NSString* fontname) ...@@ -162,6 +162,44 @@ GetFamilyNameForFontName(NSString* fontname)
return [sFontFamilyTable objectForKey:fontname]; return [sFontFamilyTable objectForKey:fontname];
} }
static void addFont(CTFontUIFontType uiType,
NSMutableArray *allFonts,
NSMutableDictionary* fontFamilyTable) {
CTFontRef font = CTFontCreateUIFontForLanguage(uiType, 0.0, NULL);
if (font == NULL) {
return;
}
CTFontDescriptorRef desc = CTFontCopyFontDescriptor(font);
if (desc == NULL) {
CFRelease(font);
return;
}
CFStringRef family = CTFontDescriptorCopyAttribute(desc, kCTFontFamilyNameAttribute);
if (family == NULL) {
CFRelease(desc);
CFRelease(font);
return;
}
CFStringRef name = CTFontDescriptorCopyAttribute(desc, kCTFontNameAttribute);
if (name == NULL) {
CFRelease(family);
CFRelease(desc);
CFRelease(font);
return;
}
[allFonts addObject:name];
[fontFamilyTable setObject:family forKey:name];
#ifdef DEBUG
NSLog(@"name is : %@", (NSString*)name);
NSLog(@"family is : %@", (NSString*)family);
#endif
CFRelease(family);
CFRelease(name);
CFRelease(desc);
CFRelease(font);
}
static NSArray* static NSArray*
GetFilteredFonts() GetFilteredFonts()
{ {
...@@ -196,6 +234,16 @@ GetFilteredFonts() ...@@ -196,6 +234,16 @@ GetFilteredFonts()
} }
} }
/*
* JavaFX registers these fonts and so JDK needs to do so as well.
* If this isn't done we will have mis-matched rendering, since
* although these may include fonts that are enumerated normally
* they also demonstrably includes fonts that are not.
*/
addFont(kCTFontUIFontSystem, allFonts, fontFamilyTable);
addFont(kCTFontUIFontEmphasizedSystem, allFonts, fontFamilyTable);
addFont(kCTFontUIFontUserFixedPitch, allFonts, fontFamilyTable);
sFilteredFonts = allFonts; sFilteredFonts = allFonts;
sFontFamilyTable = fontFamilyTable; sFontFamilyTable = fontFamilyTable;
} }
......
...@@ -211,6 +211,62 @@ createGlobalRefs(JNIEnv *env, InvokeRequest *request) ...@@ -211,6 +211,62 @@ createGlobalRefs(JNIEnv *env, InvokeRequest *request)
return error; return error;
} }
/*
* Delete saved global references - if any - for:
* - a potentially thrown Exception
* - a returned refernce/array value
* See invoker_doInvoke() and invoke* methods where global references
* are being saved.
*/
static void
deletePotentiallySavedGlobalRefs(JNIEnv *env, InvokeRequest *request)
{
/* Delete potentially saved return value */
if ((request->invokeType == INVOKE_CONSTRUCTOR) ||
(returnTypeTag(request->methodSignature) == JDWP_TAG(OBJECT)) ||
(returnTypeTag(request->methodSignature) == JDWP_TAG(ARRAY))) {
if (request->returnValue.l != NULL) {
tossGlobalRef(env, &(request->returnValue.l));
}
}
/* Delete potentially saved exception */
if (request->exception != NULL) {
tossGlobalRef(env, &(request->exception));
}
}
/*
* Delete global argument references from the request which got put there before a
* invoke request was carried out. See fillInvokeRequest().
*/
static void
deleteGlobalArgumentRefs(JNIEnv *env, InvokeRequest *request)
{
void *cursor;
jint argIndex = 0;
jvalue *argument = request->arguments;
jbyte argumentTag = firstArgumentTypeTag(request->methodSignature, &cursor);
if (request->clazz != NULL) {
tossGlobalRef(env, &(request->clazz));
}
if (request->instance != NULL) {
tossGlobalRef(env, &(request->instance));
}
/* Delete global argument references */
while (argIndex < request->argumentCount) {
if ((argumentTag == JDWP_TAG(OBJECT)) ||
(argumentTag == JDWP_TAG(ARRAY))) {
if (argument->l != NULL) {
tossGlobalRef(env, &(argument->l));
}
}
argument++;
argIndex++;
argumentTag = nextArgumentTypeTag(&cursor);
}
}
static jvmtiError static jvmtiError
fillInvokeRequest(JNIEnv *env, InvokeRequest *request, fillInvokeRequest(JNIEnv *env, InvokeRequest *request,
jbyte invokeType, jbyte options, jint id, jbyte invokeType, jbyte options, jint id,
...@@ -320,6 +376,8 @@ static void ...@@ -320,6 +376,8 @@ static void
invokeConstructor(JNIEnv *env, InvokeRequest *request) invokeConstructor(JNIEnv *env, InvokeRequest *request)
{ {
jobject object; jobject object;
JDI_ASSERT_MSG(request->clazz, "Request clazz null");
object = JNI_FUNC_PTR(env,NewObjectA)(env, request->clazz, object = JNI_FUNC_PTR(env,NewObjectA)(env, request->clazz,
request->method, request->method,
request->arguments); request->arguments);
...@@ -336,6 +394,7 @@ invokeStatic(JNIEnv *env, InvokeRequest *request) ...@@ -336,6 +394,7 @@ invokeStatic(JNIEnv *env, InvokeRequest *request)
case JDWP_TAG(OBJECT): case JDWP_TAG(OBJECT):
case JDWP_TAG(ARRAY): { case JDWP_TAG(ARRAY): {
jobject object; jobject object;
JDI_ASSERT_MSG(request->clazz, "Request clazz null");
object = JNI_FUNC_PTR(env,CallStaticObjectMethodA)(env, object = JNI_FUNC_PTR(env,CallStaticObjectMethodA)(env,
request->clazz, request->clazz,
request->method, request->method,
...@@ -424,6 +483,7 @@ invokeVirtual(JNIEnv *env, InvokeRequest *request) ...@@ -424,6 +483,7 @@ invokeVirtual(JNIEnv *env, InvokeRequest *request)
case JDWP_TAG(OBJECT): case JDWP_TAG(OBJECT):
case JDWP_TAG(ARRAY): { case JDWP_TAG(ARRAY): {
jobject object; jobject object;
JDI_ASSERT_MSG(request->instance, "Request instance null");
object = JNI_FUNC_PTR(env,CallObjectMethodA)(env, object = JNI_FUNC_PTR(env,CallObjectMethodA)(env,
request->instance, request->instance,
request->method, request->method,
...@@ -511,6 +571,8 @@ invokeNonvirtual(JNIEnv *env, InvokeRequest *request) ...@@ -511,6 +571,8 @@ invokeNonvirtual(JNIEnv *env, InvokeRequest *request)
case JDWP_TAG(OBJECT): case JDWP_TAG(OBJECT):
case JDWP_TAG(ARRAY): { case JDWP_TAG(ARRAY): {
jobject object; jobject object;
JDI_ASSERT_MSG(request->clazz, "Request clazz null");
JDI_ASSERT_MSG(request->instance, "Request instance null");
object = JNI_FUNC_PTR(env,CallNonvirtualObjectMethodA)(env, object = JNI_FUNC_PTR(env,CallNonvirtualObjectMethodA)(env,
request->instance, request->instance,
request->clazz, request->clazz,
...@@ -607,6 +669,8 @@ invoker_doInvoke(jthread thread) ...@@ -607,6 +669,8 @@ invoker_doInvoke(jthread thread)
JNIEnv *env; JNIEnv *env;
jboolean startNow; jboolean startNow;
InvokeRequest *request; InvokeRequest *request;
jbyte options;
jbyte invokeType;
JDI_ASSERT(thread); JDI_ASSERT(thread);
...@@ -623,6 +687,9 @@ invoker_doInvoke(jthread thread) ...@@ -623,6 +687,9 @@ invoker_doInvoke(jthread thread)
if (startNow) { if (startNow) {
request->started = JNI_TRUE; request->started = JNI_TRUE;
} }
options = request->options;
invokeType = request->invokeType;
debugMonitorExit(invokerLock); debugMonitorExit(invokerLock);
if (!startNow) { if (!startNow) {
...@@ -637,7 +704,7 @@ invoker_doInvoke(jthread thread) ...@@ -637,7 +704,7 @@ invoker_doInvoke(jthread thread)
JNI_FUNC_PTR(env,ExceptionClear)(env); JNI_FUNC_PTR(env,ExceptionClear)(env);
switch (request->invokeType) { switch (invokeType) {
case INVOKE_CONSTRUCTOR: case INVOKE_CONSTRUCTOR:
invokeConstructor(env, request); invokeConstructor(env, request);
break; break;
...@@ -645,7 +712,7 @@ invoker_doInvoke(jthread thread) ...@@ -645,7 +712,7 @@ invoker_doInvoke(jthread thread)
invokeStatic(env, request); invokeStatic(env, request);
break; break;
case INVOKE_INSTANCE: case INVOKE_INSTANCE:
if (request->options & JDWP_INVOKE_OPTIONS(NONVIRTUAL) ) { if (options & JDWP_INVOKE_OPTIONS(NONVIRTUAL) ) {
invokeNonvirtual(env, request); invokeNonvirtual(env, request);
} else { } else {
invokeVirtual(env, request); invokeVirtual(env, request);
...@@ -722,13 +789,24 @@ invoker_completeInvokeRequest(jthread thread) ...@@ -722,13 +789,24 @@ invoker_completeInvokeRequest(jthread thread)
returnValue = request->returnValue; returnValue = request->returnValue;
} }
/*
* At this time, there's no need to retain global references on
* arguments since the reply is processed. No one will deal with
* this request ID anymore, so we must call deleteGlobalArgumentRefs().
*
* We cannot delete saved exception or return value references
* since otherwise a deleted handle would escape when writing
* the response to the stream. Instead, we clean those refs up
* after writing the respone.
*/
deleteGlobalArgumentRefs(env, request);
/* /*
* Give up the lock before I/O operation * Give up the lock before I/O operation
*/ */
debugMonitorExit(invokerLock); debugMonitorExit(invokerLock);
eventHandler_unlock(); eventHandler_unlock();
if (!detached) { if (!detached) {
outStream_initReply(&out, id); outStream_initReply(&out, id);
(void)outStream_writeValue(env, &out, tag, returnValue); (void)outStream_writeValue(env, &out, tag, returnValue);
...@@ -736,6 +814,16 @@ invoker_completeInvokeRequest(jthread thread) ...@@ -736,6 +814,16 @@ invoker_completeInvokeRequest(jthread thread)
(void)outStream_writeObjectRef(env, &out, exc); (void)outStream_writeObjectRef(env, &out, exc);
outStream_sendReply(&out); outStream_sendReply(&out);
} }
/*
* Delete potentially saved global references of return value
* and exception
*/
eventHandler_lock(); // for proper lock order
debugMonitorEnter(invokerLock);
deletePotentiallySavedGlobalRefs(env, request);
debugMonitorExit(invokerLock);
eventHandler_unlock();
} }
jboolean jboolean
......
/* /*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -25,11 +25,8 @@ ...@@ -25,11 +25,8 @@
package java.time.format; package java.time.format;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/** /**
* A helper class to map a zone name to metazone and back to the * A helper class to map a zone name to metazone and back to the
...@@ -335,6 +332,7 @@ class ZoneName { ...@@ -335,6 +332,7 @@ class ZoneName {
"America/Eirunepe", "Amazon", "America/Manaus", "America/Eirunepe", "Amazon", "America/Manaus",
"Africa/Nairobi", "Africa_Eastern", "Africa/Nairobi", "Africa/Nairobi", "Africa_Eastern", "Africa/Nairobi",
"Asia/Yakutsk", "Yakutsk", "Asia/Yakutsk", "Asia/Yakutsk", "Yakutsk", "Asia/Yakutsk",
"Asia/Yangon", "Myanmar", "Asia/Rangoon",
"America/Goose_Bay", "Atlantic", "America/Halifax", "America/Goose_Bay", "Atlantic", "America/Halifax",
"Africa/Maseru", "Africa_Southern", "Africa/Johannesburg", "Africa/Maseru", "Africa_Southern", "Africa/Johannesburg",
"America/Swift_Current", "America_Central", "America/Chicago", "America/Swift_Current", "America_Central", "America/Chicago",
...@@ -770,6 +768,7 @@ class ZoneName { ...@@ -770,6 +768,7 @@ class ZoneName {
"America/Indianapolis", "America/Indiana/Indianapolis", "America/Indianapolis", "America/Indiana/Indianapolis",
"Europe/Belfast", "Europe/London", "Europe/Belfast", "Europe/London",
"America/Kralendijk", "America/Curacao", "America/Kralendijk", "America/Curacao",
"Asia/Rangoon", "Asia/Yangon",
}; };
private static final Map<String, String> zidToMzone = new HashMap<>(); private static final Map<String, String> zidToMzone = new HashMap<>();
......
...@@ -1025,11 +1025,18 @@ final class ServerHandshaker extends Handshaker { ...@@ -1025,11 +1025,18 @@ final class ServerHandshaker extends Handshaker {
if (trySetCipherSuite(suite) == false) { if (trySetCipherSuite(suite) == false) {
continue; continue;
} }
if (debug != null && Debug.isOn("handshake")) {
System.out.println("Standard ciphersuite chosen: " + suite);
}
return; return;
} }
for (CipherSuite suite : legacySuites) { for (CipherSuite suite : legacySuites) {
if (trySetCipherSuite(suite)) { if (trySetCipherSuite(suite)) {
if (debug != null && Debug.isOn("handshake")) {
System.out.println("Legacy ciphersuite chosen: " + suite);
}
return; return;
} }
} }
......
...@@ -188,6 +188,9 @@ public final class TimeZoneNames extends TimeZoneNamesBundle { ...@@ -188,6 +188,9 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
String MHT[] = new String[] {"Marshall Islands Time", "MHT", String MHT[] = new String[] {"Marshall Islands Time", "MHT",
"Marshall Islands Summer Time", "MHST", "Marshall Islands Summer Time", "MHST",
"Marshall Islands Time", "MHT"}; "Marshall Islands Time", "MHT"};
String MMT[] = new String[] {"Myanmar Time", "MMT",
"Myanmar Summer Time", "MMST",
"Myanmar Time", "MMT"};
String MSK[] = new String[] {"Moscow Standard Time", "MSK", String MSK[] = new String[] {"Moscow Standard Time", "MSK",
"Moscow Daylight Time", "MSD", "Moscow Daylight Time", "MSD",
"Moscow Time", "MT"}; "Moscow Time", "MT"};
...@@ -683,9 +686,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle { ...@@ -683,9 +686,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"Qyzylorda Time", "QYZT", {"Asia/Qyzylorda", new String[] {"Qyzylorda Time", "QYZT",
"Qyzylorda Summer Time", "QYZST", "Qyzylorda Summer Time", "QYZST",
"Qyzylorda Time", "QYZT"}}, "Qyzylorda Time", "QYZT"}},
{"Asia/Rangoon", new String[] {"Myanmar Time", "MMT", {"Asia/Rangoon", MMT},
"Myanmar Summer Time", "MMST",
"Myanmar Time", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"Sakhalin Time", "SAKT", {"Asia/Sakhalin", new String[] {"Sakhalin Time", "SAKT",
...@@ -718,6 +719,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle { ...@@ -718,6 +719,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
"Vladivostok Summer Time", "VLAST", "Vladivostok Summer Time", "VLAST",
"Vladivostok Time", "VLAT"}}, "Vladivostok Time", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"Yekaterinburg Time", "YEKT", {"Asia/Yekaterinburg", new String[] {"Yekaterinburg Time", "YEKT",
"Yekaterinburg Summer Time", "YEKST", "Yekaterinburg Summer Time", "YEKST",
"Yekaterinburg Time", "YEKT"}}, "Yekaterinburg Time", "YEKT"}},
......
...@@ -189,6 +189,9 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle { ...@@ -189,6 +189,9 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
String MHT[] = new String[] {"Marshallinseln Zeit", "MHT", String MHT[] = new String[] {"Marshallinseln Zeit", "MHT",
"Marshallinseln Sommerzeit", "MHST", "Marshallinseln Sommerzeit", "MHST",
"Marshallinseln Zeit", "MHT"}; "Marshallinseln Zeit", "MHT"};
String MMT[] = new String[] {"Myanmar Zeit", "MMT",
"Myanmar Sommerzeit", "MMST",
"Myanmar Zeit", "MMT"};
String MSK[] = new String[] {"Moskauer Normalzeit", "MSK", String MSK[] = new String[] {"Moskauer Normalzeit", "MSK",
"Moskauer Sommerzeit", "MSD", "Moskauer Sommerzeit", "MSD",
"Zeitzone f\u00FCr Moskau", "MT"}; "Zeitzone f\u00FCr Moskau", "MT"};
...@@ -684,9 +687,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle { ...@@ -684,9 +687,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"Qyzylorda Zeit", "QYZT", {"Asia/Qyzylorda", new String[] {"Qyzylorda Zeit", "QYZT",
"Qyzylorda Sommerzeit", "QYZST", "Qyzylorda Sommerzeit", "QYZST",
"Qyzylorda Zeit", "QYZT"}}, "Qyzylorda Zeit", "QYZT"}},
{"Asia/Rangoon", new String[] {"Myanmar Zeit", "MMT", {"Asia/Rangoon", MMT},
"Myanmar Sommerzeit", "MMST",
"Myanmar Zeit", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"Sakhalin Zeit", "SAKT", {"Asia/Sakhalin", new String[] {"Sakhalin Zeit", "SAKT",
...@@ -719,6 +720,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle { ...@@ -719,6 +720,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
"Wladiwostok Sommerzeit", "VLAST", "Wladiwostok Sommerzeit", "VLAST",
"Wladiwostok Zeit", "VLAT"}}, "Wladiwostok Zeit", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"Jekaterinburger Zeit", "YEKT", {"Asia/Yekaterinburg", new String[] {"Jekaterinburger Zeit", "YEKT",
"Jekaterinburger Sommerzeit", "YEKST", "Jekaterinburger Sommerzeit", "YEKST",
"Jekaterinburger Zeit", "YEKT"}}, "Jekaterinburger Zeit", "YEKT"}},
......
...@@ -189,6 +189,9 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle { ...@@ -189,6 +189,9 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
String MHT[] = new String[] {"Hora de las Islas Marshall", "MHT", String MHT[] = new String[] {"Hora de las Islas Marshall", "MHT",
"Hora de verano de las Islas Marshall", "MHST", "Hora de verano de las Islas Marshall", "MHST",
"Hora de Islas Marshall", "MHT"}; "Hora de Islas Marshall", "MHT"};
String MMT[] = new String[] {"Hora de Myanmar", "MMT",
"Hora de verano de Myanmar", "MMST",
"Hora de Myanmar", "MMT"};
String MSK[] = new String[] {"Hora est\u00e1ndar de Mosc\u00fa", "MSK", String MSK[] = new String[] {"Hora est\u00e1ndar de Mosc\u00fa", "MSK",
"Hora de verano de Mosc\u00fa", "MSD", "Hora de verano de Mosc\u00fa", "MSD",
"Hora de Mosc\u00FA", "MT"}; "Hora de Mosc\u00FA", "MT"};
...@@ -684,9 +687,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle { ...@@ -684,9 +687,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"Hora de Qyzylorda", "QYZT", {"Asia/Qyzylorda", new String[] {"Hora de Qyzylorda", "QYZT",
"Hora de verano de Qyzylorda", "QYZST", "Hora de verano de Qyzylorda", "QYZST",
"Hora de Qyzylorda", "QYZT"}}, "Hora de Qyzylorda", "QYZT"}},
{"Asia/Rangoon", new String[] {"Hora de Myanmar", "MMT", {"Asia/Rangoon", MMT},
"Hora de verano de Myanmar", "MMST",
"Hora de Myanmar", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"Hora de Sajalin", "SAKT", {"Asia/Sakhalin", new String[] {"Hora de Sajalin", "SAKT",
...@@ -719,6 +720,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle { ...@@ -719,6 +720,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
"Hora de verano de Vladivostok", "VLAST", "Hora de verano de Vladivostok", "VLAST",
"Hora de Vladivostok", "VLAT"}}, "Hora de Vladivostok", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"Hora de Ekaterinburgo", "YEKT", {"Asia/Yekaterinburg", new String[] {"Hora de Ekaterinburgo", "YEKT",
"Hora de verano de Ekaterinburgo", "YEKST", "Hora de verano de Ekaterinburgo", "YEKST",
"Hora de Ekaterinburgo", "YEKT"}}, "Hora de Ekaterinburgo", "YEKT"}},
......
...@@ -189,6 +189,9 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle { ...@@ -189,6 +189,9 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
String MHT[] = new String[] {"Heure des Iles Marshall", "MHT", String MHT[] = new String[] {"Heure des Iles Marshall", "MHT",
"Heure d'\u00e9t\u00e9 des Iles Marshall", "MHST", "Heure d'\u00e9t\u00e9 des Iles Marshall", "MHST",
"Heure des Iles Marshall", "MHT"}; "Heure des Iles Marshall", "MHT"};
String MMT[] = new String[] {"Heure de Myanmar", "MMT",
"Heure d'\u00e9t\u00e9 de Myanmar", "MMST",
"Heure de Myanmar", "MMT"};
String MSK[] = new String[] {"Heure standard de Moscou", "MSK", String MSK[] = new String[] {"Heure standard de Moscou", "MSK",
"Heure avanc\u00e9e de Moscou", "MSD", "Heure avanc\u00e9e de Moscou", "MSD",
"Moscou", "MT"}; "Moscou", "MT"};
...@@ -684,9 +687,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle { ...@@ -684,9 +687,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"Heure de Kyzylorda", "QYZT", {"Asia/Qyzylorda", new String[] {"Heure de Kyzylorda", "QYZT",
"Heure d'\u00e9t\u00e9 de Kyzylorda", "QYZST", "Heure d'\u00e9t\u00e9 de Kyzylorda", "QYZST",
"Heure de Kyzylorda", "QYZT"}}, "Heure de Kyzylorda", "QYZT"}},
{"Asia/Rangoon", new String[] {"Heure de Myanmar", "MMT", {"Asia/Rangoon", MMT},
"Heure d'\u00e9t\u00e9 de Myanmar", "MMST",
"Heure de Myanmar", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"Heure de Sakhalin", "SAKT", {"Asia/Sakhalin", new String[] {"Heure de Sakhalin", "SAKT",
...@@ -719,6 +720,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle { ...@@ -719,6 +720,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
"Heure d'\u00e9t\u00e9 de Vladivostok", "VLAST", "Heure d'\u00e9t\u00e9 de Vladivostok", "VLAST",
"Heure de Vladivostok", "VLAT"}}, "Heure de Vladivostok", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"Heure de Yekaterinburg", "YEKT", {"Asia/Yekaterinburg", new String[] {"Heure de Yekaterinburg", "YEKT",
"Heure d'\u00e9t\u00e9 de Yekaterinburg", "YEKST", "Heure d'\u00e9t\u00e9 de Yekaterinburg", "YEKST",
"Heure de Yekaterinburg", "YEKT"}}, "Heure de Yekaterinburg", "YEKT"}},
......
...@@ -189,6 +189,9 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle { ...@@ -189,6 +189,9 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
String MHT[] = new String[] {"Ora delle Isole Marshall", "MHT", String MHT[] = new String[] {"Ora delle Isole Marshall", "MHT",
"Ora estiva delle Isole Marshall", "MHST", "Ora estiva delle Isole Marshall", "MHST",
"Ora delle Isole Marshall", "MHT"}; "Ora delle Isole Marshall", "MHT"};
String MMT[] = new String[] {"Ora della Birmania/Myanmar", "MMT",
"Ora estiva della Birmania/Myanmar", "MMST",
"Ora della Birmania/Myanmar", "MMT"};
String MSK[] = new String[] {"Ora standard di Mosca", "MSK", String MSK[] = new String[] {"Ora standard di Mosca", "MSK",
"Ora legale di Mosca", "MSD", "Ora legale di Mosca", "MSD",
"Ora Mosca", "MT"}; "Ora Mosca", "MT"};
...@@ -684,9 +687,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle { ...@@ -684,9 +687,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"Ora di Qyzylorda", "QYZT", {"Asia/Qyzylorda", new String[] {"Ora di Qyzylorda", "QYZT",
"Ora estiva di Qyzylorda", "QYZST", "Ora estiva di Qyzylorda", "QYZST",
"Ora di Qyzylorda", "QYZT"}}, "Ora di Qyzylorda", "QYZT"}},
{"Asia/Rangoon", new String[] {"Ora della Birmania/Myanmar", "MMT", {"Asia/Rangoon", MMT},
"Ora estiva della Birmania/Myanmar", "MMST",
"Ora della Birmania/Myanmar", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"Ora di Sakhalin", "SAKT", {"Asia/Sakhalin", new String[] {"Ora di Sakhalin", "SAKT",
...@@ -719,6 +720,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle { ...@@ -719,6 +720,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
"Ora estiva di Vladivostok", "VLAST", "Ora estiva di Vladivostok", "VLAST",
"Ora di Vladivostok", "VLAT"}}, "Ora di Vladivostok", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"Ora di Ekaterinburg", "YEKT", {"Asia/Yekaterinburg", new String[] {"Ora di Ekaterinburg", "YEKT",
"Ora estiva di Ekaterinburg", "YEKST", "Ora estiva di Ekaterinburg", "YEKST",
"Ora di Ekaterinburg", "YEKT"}}, "Ora di Ekaterinburg", "YEKT"}},
......
...@@ -189,6 +189,9 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle { ...@@ -189,6 +189,9 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
String MHT[] = new String[] {"\u30de\u30fc\u30b7\u30e3\u30eb\u5cf6\u6642\u9593", "MHT", String MHT[] = new String[] {"\u30de\u30fc\u30b7\u30e3\u30eb\u5cf6\u6642\u9593", "MHT",
"\u30de\u30fc\u30b7\u30e3\u30eb\u5cf6\u590f\u6642\u9593", "MHST", "\u30de\u30fc\u30b7\u30e3\u30eb\u5cf6\u590f\u6642\u9593", "MHST",
"\u30DE\u30FC\u30B7\u30E3\u30EB\u8AF8\u5CF6\u6642\u9593", "MHT"}; "\u30DE\u30FC\u30B7\u30E3\u30EB\u8AF8\u5CF6\u6642\u9593", "MHT"};
String MMT[] = new String[] {"\u30df\u30e3\u30f3\u30de\u30fc\u6642\u9593", "MMT",
"\u30df\u30e3\u30f3\u30de\u30fc\u590f\u6642\u9593", "MMST",
"\u30DF\u30E3\u30F3\u30DE\u30FC\u6642\u9593", "MMT"};
String MSK[] = new String[] {"\u30e2\u30b9\u30af\u30ef\u6a19\u6e96\u6642", "MSK", String MSK[] = new String[] {"\u30e2\u30b9\u30af\u30ef\u6a19\u6e96\u6642", "MSK",
"\u30e2\u30b9\u30af\u30ef\u590f\u6642\u9593", "MSD", "\u30e2\u30b9\u30af\u30ef\u590f\u6642\u9593", "MSD",
"\u30E2\u30B9\u30AF\u30EF\u6642\u9593", "MT"}; "\u30E2\u30B9\u30AF\u30EF\u6642\u9593", "MT"};
...@@ -684,9 +687,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle { ...@@ -684,9 +687,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"\u30ad\u30b8\u30eb\u30aa\u30eb\u30c0\u6642\u9593", "QYZT", {"Asia/Qyzylorda", new String[] {"\u30ad\u30b8\u30eb\u30aa\u30eb\u30c0\u6642\u9593", "QYZT",
"\u30ad\u30b8\u30eb\u30aa\u30eb\u30c0\u590f\u6642\u9593", "QYZST", "\u30ad\u30b8\u30eb\u30aa\u30eb\u30c0\u590f\u6642\u9593", "QYZST",
"\u30AF\u30BA\u30ED\u30EB\u30C0\u6642\u9593", "QYZT"}}, "\u30AF\u30BA\u30ED\u30EB\u30C0\u6642\u9593", "QYZT"}},
{"Asia/Rangoon", new String[] {"\u30df\u30e3\u30f3\u30de\u30fc\u6642\u9593", "MMT", {"Asia/Rangoon", MMT},
"\u30df\u30e3\u30f3\u30de\u30fc\u590f\u6642\u9593", "MMST",
"\u30DF\u30E3\u30F3\u30DE\u30FC\u6642\u9593", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"\u6a3a\u592a\u6642\u9593", "SAKT", {"Asia/Sakhalin", new String[] {"\u6a3a\u592a\u6642\u9593", "SAKT",
...@@ -719,6 +720,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle { ...@@ -719,6 +720,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
"\u30a6\u30e9\u30b8\u30aa\u30b9\u30c8\u30af\u590f\u6642\u9593", "VLAST", "\u30a6\u30e9\u30b8\u30aa\u30b9\u30c8\u30af\u590f\u6642\u9593", "VLAST",
"\u30A6\u30E9\u30B8\u30AA\u30B9\u30C8\u30AF\u6642\u9593", "VLAT"}}, "\u30A6\u30E9\u30B8\u30AA\u30B9\u30C8\u30AF\u6642\u9593", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"\u30a8\u30ab\u30c6\u30ea\u30f3\u30d6\u30eb\u30b0\u6642\u9593", "YEKT", {"Asia/Yekaterinburg", new String[] {"\u30a8\u30ab\u30c6\u30ea\u30f3\u30d6\u30eb\u30b0\u6642\u9593", "YEKT",
"\u30a8\u30ab\u30c6\u30ea\u30f3\u30d6\u30eb\u30b0\u590f\u6642\u9593", "YEKST", "\u30a8\u30ab\u30c6\u30ea\u30f3\u30d6\u30eb\u30b0\u590f\u6642\u9593", "YEKST",
"\u30A8\u30AB\u30C6\u30EA\u30F3\u30D6\u30EB\u30AF\u6642\u9593", "YEKT"}}, "\u30A8\u30AB\u30C6\u30EA\u30F3\u30D6\u30EB\u30AF\u6642\u9593", "YEKT"}},
......
...@@ -189,6 +189,9 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle { ...@@ -189,6 +189,9 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
String MHT[] = new String[] {"\ub9c8\uc15c\uc81c\ub3c4 \uc2dc\uac04", "MHT", String MHT[] = new String[] {"\ub9c8\uc15c\uc81c\ub3c4 \uc2dc\uac04", "MHT",
"\ub9c8\uc15c\uc81c\ub3c4 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MHST", "\ub9c8\uc15c\uc81c\ub3c4 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MHST",
"\uB9C8\uC15C \uC81C\uB3C4 \uD45C\uC900\uC2DC", "MHT"}; "\uB9C8\uC15C \uC81C\uB3C4 \uD45C\uC900\uC2DC", "MHT"};
String MMT[] = new String[] {"\ubbf8\uc580\ub9c8 \uc2dc\uac04", "MMT",
"\ubbf8\uc580\ub9c8 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MMST",
"\uBBF8\uC580\uB9C8 \uD45C\uC900\uC2DC", "MMT"};
String MSK[] = new String[] {"\ubaa8\uc2a4\ud06c\ubc14 \ud45c\uc900\uc2dc", "MSK", String MSK[] = new String[] {"\ubaa8\uc2a4\ud06c\ubc14 \ud45c\uc900\uc2dc", "MSK",
"\ubaa8\uc2a4\ud06c\ubc14 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MSD", "\ubaa8\uc2a4\ud06c\ubc14 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MSD",
"\uBAA8\uC2A4\uD06C\uBC14 \uD45C\uC900\uC2DC", "MT"}; "\uBAA8\uC2A4\uD06C\uBC14 \uD45C\uC900\uC2DC", "MT"};
...@@ -684,9 +687,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle { ...@@ -684,9 +687,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"Qyzylorda \ud45c\uc900\uc2dc", "QYZT", {"Asia/Qyzylorda", new String[] {"Qyzylorda \ud45c\uc900\uc2dc", "QYZT",
"Qyzylorda \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "QYZST", "Qyzylorda \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "QYZST",
"\uD0A4\uC9C8\uB85C\uB974\uB2E4 \uD45C\uC900\uC2DC", "QYZT"}}, "\uD0A4\uC9C8\uB85C\uB974\uB2E4 \uD45C\uC900\uC2DC", "QYZT"}},
{"Asia/Rangoon", new String[] {"\ubbf8\uc580\ub9c8 \uc2dc\uac04", "MMT", {"Asia/Rangoon", MMT},
"\ubbf8\uc580\ub9c8 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MMST",
"\uBBF8\uC580\uB9C8 \uD45C\uC900\uC2DC", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"\uc0ac\ud560\ub9b0 \uc2dc\uac04", "SAKT", {"Asia/Sakhalin", new String[] {"\uc0ac\ud560\ub9b0 \uc2dc\uac04", "SAKT",
...@@ -719,6 +720,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle { ...@@ -719,6 +720,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
"\ube14\ub77c\ub514\ubcf4\uc2a4\ud1a1 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "VLAST", "\ube14\ub77c\ub514\ubcf4\uc2a4\ud1a1 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "VLAST",
"\uBE14\uB77C\uB514\uBCF4\uC2A4\uD1A1 \uD45C\uC900\uC2DC", "VLAT"}}, "\uBE14\uB77C\uB514\uBCF4\uC2A4\uD1A1 \uD45C\uC900\uC2DC", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"\uc608\uce74\ud14c\ub9b0\ubc84\uadf8 \uc2dc\uac04", "YEKT", {"Asia/Yekaterinburg", new String[] {"\uc608\uce74\ud14c\ub9b0\ubc84\uadf8 \uc2dc\uac04", "YEKT",
"\uc608\uce74\ud14c\ub9b0\ubc84\uadf8 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "YEKST", "\uc608\uce74\ud14c\ub9b0\ubc84\uadf8 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "YEKST",
"\uC608\uCE74\uD14C\uB9B0\uBD80\uB974\uD06C \uD45C\uC900\uC2DC", "YEKT"}}, "\uC608\uCE74\uD14C\uB9B0\uBD80\uB974\uD06C \uD45C\uC900\uC2DC", "YEKT"}},
......
...@@ -189,6 +189,9 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle { ...@@ -189,6 +189,9 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
String MSK[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o de Moscou", "MSK", String MSK[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o de Moscou", "MSK",
"Hor\u00e1rio de luz natural de Moscou", "MSD", "Hor\u00e1rio de luz natural de Moscou", "MSD",
"Hor\u00E1rio de Moscou", "MT"}; "Hor\u00E1rio de Moscou", "MT"};
String MMT[] = new String[] {"Fuso hor\u00e1rio de Mianmar", "MMT",
"Fuso hor\u00e1rio de ver\u00e3o de Mianmar", "MMST",
"Hor\u00E1rio de Mianmar", "MMT"};
String MST[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o das montanhas", "MST", String MST[] = new String[] {"Fuso hor\u00e1rio padr\u00e3o das montanhas", "MST",
"Hor\u00e1rio de luz natural das montanhas", "MDT", "Hor\u00e1rio de luz natural das montanhas", "MDT",
"Hor\u00E1rio das Montanhas Rochosas", "MT"}; "Hor\u00E1rio das Montanhas Rochosas", "MT"};
...@@ -684,9 +687,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle { ...@@ -684,9 +687,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"Fuso hor\u00e1rio de Kizil-Orda", "QYZT", {"Asia/Qyzylorda", new String[] {"Fuso hor\u00e1rio de Kizil-Orda", "QYZT",
"Fuso hor\u00e1rio de ver\u00e3o de Kizil-Orda", "QYZST", "Fuso hor\u00e1rio de ver\u00e3o de Kizil-Orda", "QYZST",
"Hor\u00E1rio de Qyzylorda", "QYZT"}}, "Hor\u00E1rio de Qyzylorda", "QYZT"}},
{"Asia/Rangoon", new String[] {"Fuso hor\u00e1rio de Mianmar", "MMT", {"Asia/Rangoon", MMT},
"Fuso hor\u00e1rio de ver\u00e3o de Mianmar", "MMST",
"Hor\u00E1rio de Mianmar", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"Fuso hor\u00e1rio de Sakhalina", "SAKT", {"Asia/Sakhalin", new String[] {"Fuso hor\u00e1rio de Sakhalina", "SAKT",
...@@ -719,6 +720,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle { ...@@ -719,6 +720,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
"Fuso hor\u00e1rio de ver\u00e3o de Vladivostok", "VLAST", "Fuso hor\u00e1rio de ver\u00e3o de Vladivostok", "VLAST",
"Hor\u00E1rio de Vladivostok", "VLAT"}}, "Hor\u00E1rio de Vladivostok", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"Fuso hor\u00e1rio de Yekaterinburgo", "YEKT", {"Asia/Yekaterinburg", new String[] {"Fuso hor\u00e1rio de Yekaterinburgo", "YEKT",
"Fuso hor\u00e1rio de ver\u00e3o de Yekaterinburgo", "YEKST", "Fuso hor\u00e1rio de ver\u00e3o de Yekaterinburgo", "YEKST",
"Hor\u00E1rio de Yekaterinburg", "YEKT"}}, "Hor\u00E1rio de Yekaterinburg", "YEKT"}},
......
...@@ -189,6 +189,9 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle { ...@@ -189,6 +189,9 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
String MHT[] = new String[] {"Marshall\u00f6arna, normaltid", "MHT", String MHT[] = new String[] {"Marshall\u00f6arna, normaltid", "MHT",
"Marshall\u00f6arna, sommartid", "MHST", "Marshall\u00f6arna, sommartid", "MHST",
"Marshall\u00F6arna-tid", "MHT"}; "Marshall\u00F6arna-tid", "MHT"};
String MMT[] = new String[] {"Myanmar, normaltid", "MMT",
"Myanmar, sommartid", "MMST",
"Myanmar-tid", "MMT"};
String MSK[] = new String[] {"Moskva, normaltid", "MSK", String MSK[] = new String[] {"Moskva, normaltid", "MSK",
"Moskva, sommartid", "MSD", "Moskva, sommartid", "MSD",
"Moskvas tid", "MT"}; "Moskvas tid", "MT"};
...@@ -684,9 +687,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle { ...@@ -684,9 +687,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"Qyzylorda, normaltid", "QYZT", {"Asia/Qyzylorda", new String[] {"Qyzylorda, normaltid", "QYZT",
"Qyzylorda, sommartid", "QYZST", "Qyzylorda, sommartid", "QYZST",
"Qyzylorda-tid", "QYZT"}}, "Qyzylorda-tid", "QYZT"}},
{"Asia/Rangoon", new String[] {"Myanmar, normaltid", "MMT", {"Asia/Rangoon", MMT},
"Myanmar, sommartid", "MMST",
"Myanmar-tid", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"Sakhalin, normaltid", "SAKT", {"Asia/Sakhalin", new String[] {"Sakhalin, normaltid", "SAKT",
...@@ -719,6 +720,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle { ...@@ -719,6 +720,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
"Vladivostok, sommartid", "VLAST", "Vladivostok, sommartid", "VLAST",
"Vladivostok-tid", "VLAT"}}, "Vladivostok-tid", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"Jekaterinburg, normaltid", "YEKT", {"Asia/Yekaterinburg", new String[] {"Jekaterinburg, normaltid", "YEKT",
"Jekaterinburg, sommartid", "YEKST", "Jekaterinburg, sommartid", "YEKST",
"Jekaterinburg-tid", "YEKT"}}, "Jekaterinburg-tid", "YEKT"}},
......
...@@ -189,6 +189,9 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle { ...@@ -189,6 +189,9 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
String MHT[] = new String[] {"\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u65f6\u95f4", "MHT", String MHT[] = new String[] {"\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u65f6\u95f4", "MHT",
"\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u590f\u4ee4\u65f6", "MHST", "\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u590f\u4ee4\u65f6", "MHST",
"\u9A6C\u7ECD\u5C14\u7FA4\u5C9B\u65F6\u95F4", "MHT"}; "\u9A6C\u7ECD\u5C14\u7FA4\u5C9B\u65F6\u95F4", "MHT"};
String MMT[] = new String[] {"\u7f05\u7538\u65f6\u95f4", "MMT",
"\u7f05\u7538\u590f\u4ee4\u65f6", "MMST",
"\u7F05\u7538\u65F6\u95F4", "MMT"};
String MSK[] = new String[] {"\u83ab\u65af\u79d1\u6807\u51c6\u65f6\u95f4", "MSK", String MSK[] = new String[] {"\u83ab\u65af\u79d1\u6807\u51c6\u65f6\u95f4", "MSK",
"\u83ab\u65af\u79d1\u590f\u4ee4\u65f6", "MSD", "\u83ab\u65af\u79d1\u590f\u4ee4\u65f6", "MSD",
"\u83AB\u65AF\u79D1\u65F6\u95F4", "MT"}; "\u83AB\u65AF\u79D1\u65F6\u95F4", "MT"};
...@@ -684,9 +687,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle { ...@@ -684,9 +687,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"Qyzylorda \u65f6\u95f4", "QYZT", {"Asia/Qyzylorda", new String[] {"Qyzylorda \u65f6\u95f4", "QYZT",
"Qyzylorda \u590f\u4ee4\u65f6", "QYZST", "Qyzylorda \u590f\u4ee4\u65f6", "QYZST",
"Qyzylorda \u65F6\u95F4", "QYZT"}}, "Qyzylorda \u65F6\u95F4", "QYZT"}},
{"Asia/Rangoon", new String[] {"\u7f05\u7538\u65f6\u95f4", "MMT", {"Asia/Rangoon", MMT},
"\u7f05\u7538\u590f\u4ee4\u65f6", "MMST",
"\u7F05\u7538\u65F6\u95F4", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"\u5e93\u9875\u5c9b\u65f6\u95f4", "SAKT", {"Asia/Sakhalin", new String[] {"\u5e93\u9875\u5c9b\u65f6\u95f4", "SAKT",
...@@ -719,6 +720,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle { ...@@ -719,6 +720,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
"\u6d77\u53c2\u5d34\u590f\u4ee4\u65f6", "VLAST", "\u6d77\u53c2\u5d34\u590f\u4ee4\u65f6", "VLAST",
"\u6D77\u53C2\u5D34\u65F6\u95F4", "VLAT"}}, "\u6D77\u53C2\u5D34\u65F6\u95F4", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"Yekaterinburg \u65f6\u95f4", "YEKT", {"Asia/Yekaterinburg", new String[] {"Yekaterinburg \u65f6\u95f4", "YEKT",
"Yekaterinburg \u590f\u4ee4\u65f6", "YEKST", "Yekaterinburg \u590f\u4ee4\u65f6", "YEKST",
"Yekaterinburg \u65F6\u95F4", "YEKT"}}, "Yekaterinburg \u65F6\u95F4", "YEKT"}},
......
...@@ -189,6 +189,9 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle { ...@@ -189,6 +189,9 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
String MHT[] = new String[] {"\u99ac\u7d39\u723e\u7fa4\u5cf6\u6642\u9593", "MHT", String MHT[] = new String[] {"\u99ac\u7d39\u723e\u7fa4\u5cf6\u6642\u9593", "MHT",
"\u99ac\u7d39\u723e\u7fa4\u5cf6\u590f\u4ee4\u6642\u9593", "MHST", "\u99ac\u7d39\u723e\u7fa4\u5cf6\u590f\u4ee4\u6642\u9593", "MHST",
"\u99AC\u7D39\u723E\u7FA4\u5CF6\u6642\u9593", "MHT"}; "\u99AC\u7D39\u723E\u7FA4\u5CF6\u6642\u9593", "MHT"};
String MMT[] = new String[] {"\u7dec\u7538\u6642\u9593", "MMT",
"\u7dec\u7538\u590f\u4ee4\u6642\u9593", "MMST",
"\u7DEC\u7538\u6642\u9593", "MMT"};
String MSK[] = new String[] {"\u83ab\u65af\u79d1\u6a19\u6e96\u6642\u9593", "MSK", String MSK[] = new String[] {"\u83ab\u65af\u79d1\u6a19\u6e96\u6642\u9593", "MSK",
"\u83ab\u65af\u79d1\u65e5\u5149\u7bc0\u7d04\u6642\u9593", "MSD", "\u83ab\u65af\u79d1\u65e5\u5149\u7bc0\u7d04\u6642\u9593", "MSD",
"\u83AB\u65AF\u79D1\u6642\u9593", "MT"}; "\u83AB\u65AF\u79D1\u6642\u9593", "MT"};
...@@ -684,9 +687,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle { ...@@ -684,9 +687,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
{"Asia/Qyzylorda", new String[] {"Qyzylorda \u6642\u9593", "QYZT", {"Asia/Qyzylorda", new String[] {"Qyzylorda \u6642\u9593", "QYZT",
"Qyzylorda \u590f\u4ee4\u6642\u9593", "QYZST", "Qyzylorda \u590f\u4ee4\u6642\u9593", "QYZST",
"\u514B\u5B5C\u6D1B\u723E\u9054\u6642\u9593", "QYZT"}}, "\u514B\u5B5C\u6D1B\u723E\u9054\u6642\u9593", "QYZT"}},
{"Asia/Rangoon", new String[] {"\u7dec\u7538\u6642\u9593", "MMT", {"Asia/Rangoon", MMT},
"\u7dec\u7538\u590f\u4ee4\u6642\u9593", "MMST",
"\u7DEC\u7538\u6642\u9593", "MMT"}},
{"Asia/Riyadh", ARAST}, {"Asia/Riyadh", ARAST},
{"Asia/Saigon", ICT}, {"Asia/Saigon", ICT},
{"Asia/Sakhalin", new String[] {"\u5eab\u9801\u5cf6\u6642\u9593", "SAKT", {"Asia/Sakhalin", new String[] {"\u5eab\u9801\u5cf6\u6642\u9593", "SAKT",
...@@ -721,6 +722,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle { ...@@ -721,6 +722,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
"\u6d77\u53c3\u5d34\u590f\u4ee4\u6642\u9593", "VLAST", "\u6d77\u53c3\u5d34\u590f\u4ee4\u6642\u9593", "VLAST",
"\u6D77\u53C3\u5D34\u6642\u9593", "VLAT"}}, "\u6D77\u53C3\u5D34\u6642\u9593", "VLAT"}},
{"Asia/Yakutsk", YAKT}, {"Asia/Yakutsk", YAKT},
{"Asia/Yangon", MMT},
{"Asia/Yekaterinburg", new String[] {"Yekaterinburg \u6642\u9593", "YEKT", {"Asia/Yekaterinburg", new String[] {"Yekaterinburg \u6642\u9593", "YEKT",
"Yekaterinburg \u590f\u4ee4\u6642\u9593", "YEKST", "Yekaterinburg \u590f\u4ee4\u6642\u9593", "YEKST",
"\u8449\u5361\u6377\u7433\u5821\u6642\u9593", "YEKT"}}, "\u8449\u5361\u6377\u7433\u5821\u6642\u9593", "YEKT"}},
......
-Xmx40m
\ No newline at end of file
/*
* Copyright (c) 2016 Red Hat Inc.
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* @test
* @bug 8153711
* @summary JDWP: Memory Leak (global references not deleted after invokeMethod).
*
* @author Severin Gehwolf <sgehwolf@redhat.com>
*
* @library ..
* @run build TestScaffold VMConnection TargetListener TargetAdapter
* @run compile -g OomDebugTest.java
* @run shell OomDebugTestSetup.sh
* @run main OomDebugTest OomDebugTestTarget test1
* @run main OomDebugTest OomDebugTestTarget test2
* @run main OomDebugTest OomDebugTestTarget test3
* @run main OomDebugTest OomDebugTestTarget test4
* @run main OomDebugTest OomDebugTestTarget test5
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Properties;
import java.util.Set;
import com.sun.jdi.ArrayReference;
import com.sun.jdi.ArrayType;
import com.sun.jdi.ClassType;
import com.sun.jdi.Field;
import com.sun.jdi.InvocationException;
import com.sun.jdi.Method;
import com.sun.jdi.ObjectReference;
import com.sun.jdi.ReferenceType;
import com.sun.jdi.StackFrame;
import com.sun.jdi.VMOutOfMemoryException;
import com.sun.jdi.Value;
import com.sun.jdi.event.BreakpointEvent;
import com.sun.jdi.event.ExceptionEvent;
/***************** Target program **********************/
class OomDebugTestTarget {
OomDebugTestTarget() {
System.out.println("DEBUG: invoked constructor");
}
static class FooCls {
@SuppressWarnings("unused")
private byte[] bytes = new byte[3000000];
};
FooCls fooCls = new FooCls();
byte[] byteArray = new byte[0];
void testMethod(FooCls foo) {
System.out.println("DEBUG: invoked 'void testMethod(FooCls)', foo == " + foo);
}
void testPrimitive(byte[] foo) {
System.out.println("DEBUG: invoked 'void testPrimitive(byte[])', foo == " + foo);
}
byte[] testPrimitiveArrRetval() {
System.out.println("DEBUG: invoked 'byte[] testPrimitiveArrRetval()'");
return new byte[3000000];
}
FooCls testFooClsRetval() {
System.out.println("DEBUG: invoked 'FooCls testFooClsRetval()'");
return new FooCls();
}
public void entry() {}
public static void main(String[] args){
System.out.println("DEBUG: OomDebugTestTarget.main");
new OomDebugTestTarget().entry();
}
}
/***************** Test program ************************/
public class OomDebugTest extends TestScaffold {
private static final String[] ALL_TESTS = new String[] {
"test1", "test2", "test3", "test4", "test5"
};
private static final Set<String> ALL_TESTS_SET = new HashSet<String>();
static {
ALL_TESTS_SET.addAll(Arrays.asList(ALL_TESTS));
}
private static final String TEST_CLASSES = System.getProperty("test.classes", ".");
private static final File RESULT_FILE = new File(TEST_CLASSES, "results.properties");
private static final String LAST_TEST = ALL_TESTS[ALL_TESTS.length - 1];
private ReferenceType targetClass;
private ObjectReference thisObject;
private int failedTests;
private final String testMethod;
public OomDebugTest(String[] args) {
super(args);
if (args.length != 2) {
throw new RuntimeException("Test failed unexpectedly.");
}
this.testMethod = args[1];
}
@Override
protected void runTests() throws Exception {
try {
addListener(new TargetAdapter() {
@Override
public void exceptionThrown(ExceptionEvent event) {
String name = event.exception().referenceType().name();
System.err.println("DEBUG: Exception thrown in debuggee was: " + name);
}
});
/*
* Get to the top of entry()
* to determine targetClass and mainThread
*/
BreakpointEvent bpe = startTo("OomDebugTestTarget", "entry", "()V");
targetClass = bpe.location().declaringType();
mainThread = bpe.thread();
StackFrame frame = mainThread.frame(0);
thisObject = frame.thisObject();
java.lang.reflect.Method m = findTestMethod();
m.invoke(this);
} catch (NoSuchMethodException e) {
e.printStackTrace();
failure();
} catch (SecurityException e) {
e.printStackTrace();
failure();
}
/*
* resume the target, listening for events
*/
listenUntilVMDisconnect();
}
private java.lang.reflect.Method findTestMethod()
throws NoSuchMethodException, SecurityException {
return OomDebugTest.class.getDeclaredMethod(testMethod);
}
private void failure() {
failedTests++;
}
/*
* Test case: Object reference as method parameter.
*/
@SuppressWarnings("unused") // called via reflection
private void test1() throws Exception {
System.out.println("DEBUG: ------------> Running test1");
try {
Field field = targetClass.fieldByName("fooCls");
ClassType clsType = (ClassType)field.type();
Method constructor = getConstructorForClass(clsType);
for (int i = 0; i < 15; i++) {
@SuppressWarnings({ "rawtypes", "unchecked" })
ObjectReference objRef = clsType.newInstance(mainThread,
constructor,
new ArrayList(0),
ObjectReference.INVOKE_NONVIRTUAL);
if (objRef.isCollected()) {
System.out.println("DEBUG: Object got GC'ed before we can use it. NO-OP.");
continue;
}
invoke("testMethod", "(LOomDebugTestTarget$FooCls;)V", objRef);
}
} catch (InvocationException e) {
handleFailure(e);
}
}
/*
* Test case: Array reference as method parameter.
*/
@SuppressWarnings("unused") // called via reflection
private void test2() throws Exception {
System.out.println("DEBUG: ------------> Running test2");
try {
Field field = targetClass.fieldByName("byteArray");
ArrayType arrType = (ArrayType)field.type();
for (int i = 0; i < 15; i++) {
ArrayReference byteArrayVal = arrType.newInstance(3000000);
if (byteArrayVal.isCollected()) {
System.out.println("DEBUG: Object got GC'ed before we can use it. NO-OP.");
continue;
}
invoke("testPrimitive", "([B)V", byteArrayVal);
}
} catch (VMOutOfMemoryException e) {
defaultHandleOOMFailure(e);
}
}
/*
* Test case: Array reference as return value.
*/
@SuppressWarnings("unused") // called via reflection
private void test3() throws Exception {
System.out.println("DEBUG: ------------> Running test3");
try {
for (int i = 0; i < 15; i++) {
invoke("testPrimitiveArrRetval",
"()[B",
Collections.EMPTY_LIST,
vm().mirrorOfVoid());
}
} catch (InvocationException e) {
handleFailure(e);
}
}
/*
* Test case: Object reference as return value.
*/
@SuppressWarnings("unused") // called via reflection
private void test4() throws Exception {
System.out.println("DEBUG: ------------> Running test4");
try {
for (int i = 0; i < 15; i++) {
invoke("testFooClsRetval",
"()LOomDebugTestTarget$FooCls;",
Collections.EMPTY_LIST,
vm().mirrorOfVoid());
}
} catch (InvocationException e) {
handleFailure(e);
}
}
/*
* Test case: Constructor
*/
@SuppressWarnings({ "unused", "unchecked", "rawtypes" }) // called via reflection
private void test5() throws Exception {
System.out.println("DEBUG: ------------> Running test5");
try {
ClassType type = (ClassType)thisObject.type();
for (int i = 0; i < 15; i++) {
type.newInstance(mainThread,
findMethod(targetClass, "<init>", "()V"),
new ArrayList(0),
ObjectReference.INVOKE_NONVIRTUAL);
}
} catch (InvocationException e) {
handleFailure(e);
}
}
private Method getConstructorForClass(ClassType clsType) {
List<Method> methods = clsType.methodsByName("<init>");
if (methods.size() != 1) {
throw new RuntimeException("FAIL. Expected only one, the default, constructor");
}
return methods.get(0);
}
private void handleFailure(InvocationException e) {
// There is no good way to see the OOME diagnostic message in the target since the
// TestScaffold might throw an exception while trying to print the stack trace. I.e
// it might get a a VMDisconnectedException before the stack trace printing finishes.
System.err.println("FAILURE: InvocationException thrown. Trying to determine cause...");
defaultHandleOOMFailure(e);
}
private void defaultHandleOOMFailure(Exception e) {
e.printStackTrace();
failure();
}
@SuppressWarnings({ "rawtypes", "unchecked" })
void invoke(String methodName, String methodSig, Value value)
throws Exception {
List args = new ArrayList(1);
args.add(value);
invoke(methodName, methodSig, args, value);
}
void invoke(String methodName,
String methodSig,
@SuppressWarnings("rawtypes") List args,
Value value) throws Exception {
Method method = findMethod(targetClass, methodName, methodSig);
if ( method == null) {
failure("FAILED: Can't find method: "
+ methodName + " for class = " + targetClass);
return;
}
invoke(method, args, value);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
void invoke(Method method, List args, Value value) throws Exception {
thisObject.invokeMethod(mainThread, method, args, 0);
System.out.println("DEBUG: Done invoking method via debugger.");
}
Value fieldValue(String fieldName) {
Field field = targetClass.fieldByName(fieldName);
return thisObject.getValue(field);
}
// Determine the pass/fail status on some heuristic and don't fail the
// test if < 3 of the total number of tests (currently 5) fail. This also
// has the nice side effect that all tests are first attempted and only
// all tests ran an overall pass/fail status is determined.
private static void determineOverallTestStatus(OomDebugTest oomTest)
throws IOException, FileNotFoundException {
Properties resultProps = new Properties();
if (!RESULT_FILE.exists()) {
RESULT_FILE.createNewFile();
}
FileInputStream fin = null;
try {
fin = new FileInputStream(RESULT_FILE);
resultProps.load(fin);
resultProps.put(oomTest.testMethod,
Integer.toString(oomTest.failedTests));
} finally {
if (fin != null) {
fin.close();
}
}
System.out.println("DEBUG: Finished running test '"
+ oomTest.testMethod + "'.");
if (LAST_TEST.equals(oomTest.testMethod)) {
System.out.println("DEBUG: Determining overall test status.");
Set<String> actualTestsRun = new HashSet<String>();
int totalTests = ALL_TESTS.length;
int failedTests = 0;
for (Object key: resultProps.keySet()) {
actualTestsRun.add((String)key);
Object propVal = resultProps.get(key);
int value = Integer.parseInt((String)propVal);
failedTests += value;
}
if (!ALL_TESTS_SET.equals(actualTestsRun)) {
String errorMsg = "Test failed! Expected to run tests '"
+ ALL_TESTS_SET + "', but only these were run '"
+ actualTestsRun + "'";
throw new RuntimeException(errorMsg);
}
if (failedTests >= 3) {
String errorMsg = "Test failed. Expected < 3 sub-tests to fail "
+ "for a pass. Got " + failedTests
+ " failed tests out of " + totalTests + ".";
throw new RuntimeException(errorMsg);
}
RESULT_FILE.delete();
System.out.println("All " + totalTests + " tests passed.");
} else {
System.out.println("DEBUG: More tests to run. Coninuing.");
FileOutputStream fout = null;
try {
fout = new FileOutputStream(RESULT_FILE);
resultProps.store(fout, "Storing results after test "
+ oomTest.testMethod);
} finally {
if (fout != null) {
fout.close();
}
}
}
}
public static void main(String[] args) throws Exception {
System.setProperty("test.vm.opts", "-Xmx40m"); // Set debuggee VM option
OomDebugTest oomTest = new OomDebugTest(args);
try {
oomTest.startTests();
} catch (Throwable e) {
System.out.println("DEBUG: Got exception for test run. " + e);
e.printStackTrace();
oomTest.failure();
}
determineOverallTestStatus(oomTest);
}
}
#!/bin/sh
#
# Copyright (c) 2016 Red Hat Inc.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
if [ "${TESTSRC}" = "" ]
then
echo "TESTSRC not set. Test cannot execute. Failed."
exit 1
fi
echo "TESTSRC=${TESTSRC}"
if [ "${TESTJAVA}" = "" ]
then
echo "TESTJAVA not set. Test cannot execute. Failed."
exit 1
fi
echo "TESTJAVA=${TESTJAVA}"
if [ "${TESTCLASSES}" = "" ]
then
echo "TESTCLASSES not set. Test cannot execute. Failed."
exit 1
fi
cp ${TESTSRC}/@debuggeeVMOptions ${TESTCLASSES}/
...@@ -49,7 +49,7 @@ import org.testng.annotations.Test; ...@@ -49,7 +49,7 @@ import org.testng.annotations.Test;
/* /*
* @test * @test
* @bug 8081022 8151876 * @bug 8081022 8151876 8166875
* @key randomness * @key randomness
*/ */
......
/* /*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -378,6 +378,7 @@ class ZoneName { ...@@ -378,6 +378,7 @@ class ZoneName {
"Europe/Helsinki", "Europe_Eastern", "Europe/Bucharest", "Europe/Helsinki", "Europe_Eastern", "Europe/Bucharest",
"America/Nome", "Alaska", "America/Juneau", "America/Nome", "Alaska", "America/Juneau",
"Asia/Yakutsk", "Yakutsk", "Asia/Yakutsk", "Asia/Yakutsk", "Yakutsk", "Asia/Yakutsk",
"Asia/Yangon", "Myanmar", "Asia/Rangoon",
"Africa/Conakry", "GMT", "Atlantic/Reykjavik", "Africa/Conakry", "GMT", "Atlantic/Reykjavik",
"Asia/Seoul", "Korea", "Asia/Seoul", "Asia/Seoul", "Korea", "Asia/Seoul",
"America/Antigua", "Atlantic", "America/Halifax", "America/Antigua", "Atlantic", "America/Halifax",
...@@ -747,6 +748,7 @@ class ZoneName { ...@@ -747,6 +748,7 @@ class ZoneName {
"NZ", "Pacific/Auckland", "NZ", "Pacific/Auckland",
"Asia/Tel_Aviv", "Asia/Jerusalem", "Asia/Tel_Aviv", "Asia/Jerusalem",
"Hongkong", "Asia/Hong_Kong", "Hongkong", "Asia/Hong_Kong",
"Asia/Rangoon", "Asia/Yangon",
}; };
private static final Map<String, String> zidToMzone = new HashMap<>(); private static final Map<String, String> zidToMzone = new HashMap<>();
......
/*
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
/*
* @test
* @bug 8166591
* @summary [macos 10.12] Trackpad scrolling of text on OS X 10.12 Sierra
* is very fast (Trackpad, Retina only)
* @run main/manual/othervm TooMuchWheelRotationEventsTest
*/
public class TooMuchWheelRotationEventsTest {
private static volatile boolean testResult = false;
private static volatile CountDownLatch countDownLatch;
private static final String INSTRUCTIONS = "INSTRUCTIONS:\n"
+ "Try to check the issue on Mac OS X 10.12 Sierra with trackpad"
+ " on Retina display.\n"
+ "\n"
+ "If the trackpad is not supported, press PASS\n"
+ "\n"
+ "Use the trackpad to slightly scroll the JTextArea horizontally and vertically.\n"
+ "If the text area is scrolled too fast press FAIL, else press PASS.";
public static void main(String args[]) throws Exception {
countDownLatch = new CountDownLatch(1);
SwingUtilities.invokeLater(TooMuchWheelRotationEventsTest::createUI);
countDownLatch.await(15, TimeUnit.MINUTES);
if (!testResult) {
throw new RuntimeException("Test fails!");
}
}
private static void createUI() {
final JFrame mainFrame = new JFrame("Trackpad scrolling test");
GridBagLayout layout = new GridBagLayout();
JPanel mainControlPanel = new JPanel(layout);
JPanel resultButtonPanel = new JPanel(layout);
GridBagConstraints gbc = new GridBagConstraints();
JPanel testPanel = createTestPanel();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.fill = GridBagConstraints.HORIZONTAL;
mainControlPanel.add(testPanel, gbc);
JTextArea instructionTextArea = new JTextArea();
instructionTextArea.setText(INSTRUCTIONS);
instructionTextArea.setEditable(false);
instructionTextArea.setBackground(Color.white);
gbc.gridx = 0;
gbc.gridy = 1;
gbc.fill = GridBagConstraints.HORIZONTAL;
mainControlPanel.add(instructionTextArea, gbc);
JButton passButton = new JButton("Pass");
passButton.setActionCommand("Pass");
passButton.addActionListener((ActionEvent e) -> {
testResult = true;
mainFrame.dispose();
countDownLatch.countDown();
});
JButton failButton = new JButton("Fail");
failButton.setActionCommand("Fail");
failButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
mainFrame.dispose();
countDownLatch.countDown();
}
});
gbc.gridx = 0;
gbc.gridy = 0;
resultButtonPanel.add(passButton, gbc);
gbc.gridx = 1;
gbc.gridy = 0;
resultButtonPanel.add(failButton, gbc);
gbc.gridx = 0;
gbc.gridy = 2;
mainControlPanel.add(resultButtonPanel, gbc);
mainFrame.add(mainControlPanel);
mainFrame.pack();
mainFrame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
mainFrame.dispose();
countDownLatch.countDown();
}
});
mainFrame.setVisible(true);
}
private static JPanel createTestPanel() {
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
JTextArea textArea = new JTextArea(20, 20);
textArea.setText(getLongString());
JScrollPane scrollPane = new JScrollPane(textArea);
panel.add(scrollPane);
return panel;
}
private static String getLongString() {
String lowCaseString = getLongString('a', 'z');
String upperCaseString = getLongString('A', 'Z');
String digitsString = getLongString('0', '9');
int repeat = 30;
StringBuilder lowCaseBuilder = new StringBuilder();
StringBuilder upperCaseBuilder = new StringBuilder();
StringBuilder digitsBuilder = new StringBuilder();
for (int i = 0; i < repeat; i++) {
lowCaseBuilder.append(lowCaseString).append(' ');
upperCaseBuilder.append(upperCaseString).append(' ');
digitsBuilder.append(digitsString).append(' ');
}
StringBuilder builder = new StringBuilder();
for (int i = 0; i < 200; i++) {
builder.append(upperCaseBuilder).append('\n')
.append(lowCaseBuilder).append('\n')
.append(digitsBuilder).append("\n\n\n");
}
return builder.toString();
}
private static String getLongString(char c1, char c2) {
char[] chars = new char[c2 - c1 + 1];
for (char i = c1; i <= c2; i++) {
chars[i - c1] = i;
}
return new String(chars);
}
}
...@@ -21,4 +21,4 @@ ...@@ -21,4 +21,4 @@
# or visit www.oracle.com if you need additional information or have any # or visit www.oracle.com if you need additional information or have any
# questions. # questions.
# #
tzdata2016f tzdata2016g
...@@ -487,7 +487,7 @@ Zone Africa/Monrovia -0:43:08 - LMT 1882 ...@@ -487,7 +487,7 @@ Zone Africa/Monrovia -0:43:08 - LMT 1882
# http://www.libyaherald.com/2013/10/24/correction-no-time-change-tomorrow/ # http://www.libyaherald.com/2013/10/24/correction-no-time-change-tomorrow/
# #
# From Paul Eggert (2013-10-25): # From Paul Eggert (2013-10-25):
# For now, assume they're reverting to the pre-2012 rules of permanent UTC+2. # For now, assume they're reverting to the pre-2012 rules of permanent UT +02.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Libya 1951 only - Oct 14 2:00 1:00 S Rule Libya 1951 only - Oct 14 2:00 1:00 S
......
...@@ -33,9 +33,7 @@ ...@@ -33,9 +33,7 @@
# http://www.spri.cam.ac.uk/bob/periant.htm # http://www.spri.cam.ac.uk/bob/periant.htm
# for information. # for information.
# Unless otherwise specified, we have no time zone information. # Unless otherwise specified, we have no time zone information.
#
# Except for the French entries,
# I made up all time zone abbreviations mentioned here; corrections welcome!
# FORMAT is '-00' and GMTOFF is 0 for locations while uninhabited. # FORMAT is '-00' and GMTOFF is 0 for locations while uninhabited.
# Argentina - year-round bases # Argentina - year-round bases
...@@ -52,7 +50,7 @@ ...@@ -52,7 +50,7 @@
# previously sealers and scientific personnel wintered # previously sealers and scientific personnel wintered
# Margaret Turner reports # Margaret Turner reports
# http://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html # http://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html
# (1999-09-30) that they're UTC+5, with no DST; # (1999-09-30) that they're UT +05, with no DST;
# presumably this is when they have visitors. # presumably this is when they have visitors.
# #
# year-round bases # year-round bases
...@@ -91,23 +89,22 @@ ...@@ -91,23 +89,22 @@
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Casey 0 - -00 1969 Zone Antarctica/Casey 0 - -00 1969
8:00 - AWST 2009 Oct 18 2:00 8:00 - +08 2009 Oct 18 2:00
# Australian Western Std Time 11:00 - +11 2010 Mar 5 2:00
11:00 - CAST 2010 Mar 5 2:00 # Casey Time 8:00 - +08 2011 Oct 28 2:00
8:00 - AWST 2011 Oct 28 2:00 11:00 - +11 2012 Feb 21 17:00u
11:00 - CAST 2012 Feb 21 17:00u 8:00 - +08
8:00 - AWST
Zone Antarctica/Davis 0 - -00 1957 Jan 13 Zone Antarctica/Davis 0 - -00 1957 Jan 13
7:00 - DAVT 1964 Nov # Davis Time 7:00 - +07 1964 Nov
0 - -00 1969 Feb 0 - -00 1969 Feb
7:00 - DAVT 2009 Oct 18 2:00 7:00 - +07 2009 Oct 18 2:00
5:00 - DAVT 2010 Mar 10 20:00u 5:00 - +05 2010 Mar 10 20:00u
7:00 - DAVT 2011 Oct 28 2:00 7:00 - +07 2011 Oct 28 2:00
5:00 - DAVT 2012 Feb 21 20:00u 5:00 - +05 2012 Feb 21 20:00u
7:00 - DAVT 7:00 - +07
Zone Antarctica/Mawson 0 - -00 1954 Feb 13 Zone Antarctica/Mawson 0 - -00 1954 Feb 13
6:00 - MAWT 2009 Oct 18 2:00 # Mawson Time 6:00 - +06 2009 Oct 18 2:00
5:00 - MAWT 5:00 - +05
# References: # References:
# Casey Weather (1998-02-26) # Casey Weather (1998-02-26)
# http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html # http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html
...@@ -161,7 +158,7 @@ Zone Antarctica/Mawson 0 - -00 1954 Feb 13 ...@@ -161,7 +158,7 @@ Zone Antarctica/Mawson 0 - -00 1954 Feb 13
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français
5:00 - TFT # ISO code TF Time 5:00 - +05
# #
# year-round base in the main continent # year-round base in the main continent
# Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11 # Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11
...@@ -172,9 +169,9 @@ Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français ...@@ -172,9 +169,9 @@ Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/DumontDUrville 0 - -00 1947 Zone Antarctica/DumontDUrville 0 - -00 1947
10:00 - PMT 1952 Jan 14 # Port-Martin Time 10:00 - +10 1952 Jan 14
0 - -00 1956 Nov 0 - -00 1956 Nov
10:00 - DDUT # Dumont-d'Urville Time 10:00 - +10
# France & Italy - year-round base # France & Italy - year-round base
# Concordia, -750600+1232000, since 2005 # Concordia, -750600+1232000, since 2005
...@@ -200,7 +197,7 @@ Zone Antarctica/DumontDUrville 0 - -00 1947 ...@@ -200,7 +197,7 @@ Zone Antarctica/DumontDUrville 0 - -00 1947
# station of Japan, it's appropriate for the principal location. # station of Japan, it's appropriate for the principal location.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Syowa 0 - -00 1957 Jan 29 Zone Antarctica/Syowa 0 - -00 1957 Jan 29
3:00 - SYOT # Syowa Time 3:00 - +03
# See: # See:
# NIPR Antarctic Research Activities (1999-08-17) # NIPR Antarctic Research Activities (1999-08-17)
# http://www.nipr.ac.jp/english/ara01.html # http://www.nipr.ac.jp/english/ara01.html
...@@ -237,17 +234,17 @@ Zone Antarctica/Syowa 0 - -00 1957 Jan 29 ...@@ -237,17 +234,17 @@ Zone Antarctica/Syowa 0 - -00 1957 Jan 29
# correct, but they should be quite close to the actual dates. # correct, but they should be quite close to the actual dates.
# #
# From Paul Eggert (2014-03-21): # From Paul Eggert (2014-03-21):
# The CET-switching Troll rules require zic from tzcode 2014b or later, so as # The CET-switching Troll rules require zic from tz 2014b or later, so as
# suggested by Bengt-Inge Larsson comment them out for now, and approximate # suggested by Bengt-Inge Larsson comment them out for now, and approximate
# with only UTC and CEST. Uncomment them when 2014b is more prevalent. # with only UTC and CEST. Uncomment them when 2014b is more prevalent.
# #
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
#Rule Troll 2005 max - Mar 1 1:00u 1:00 CET #Rule Troll 2005 max - Mar 1 1:00u 1:00 +01
Rule Troll 2005 max - Mar lastSun 1:00u 2:00 CEST Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
#Rule Troll 2005 max - Oct lastSun 1:00u 1:00 CET #Rule Troll 2005 max - Oct lastSun 1:00u 1:00 +01
#Rule Troll 2004 max - Nov 7 1:00u 0:00 UTC #Rule Troll 2004 max - Nov 7 1:00u 0:00 +00
# Remove the following line when uncommenting the above '#Rule' lines. # Remove the following line when uncommenting the above '#Rule' lines.
Rule Troll 2004 max - Oct lastSun 1:00u 0:00 UTC Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Troll 0 - -00 2005 Feb 12 Zone Antarctica/Troll 0 - -00 2005 Feb 12
0:00 Troll %s 0:00 Troll %s
...@@ -288,10 +285,10 @@ Zone Antarctica/Troll 0 - -00 2005 Feb 12 ...@@ -288,10 +285,10 @@ Zone Antarctica/Troll 0 - -00 2005 Feb 12
# changes during the year and does not necessarily correspond to mean # changes during the year and does not necessarily correspond to mean
# solar noon. So the Vostok time might have been whatever the clocks # solar noon. So the Vostok time might have been whatever the clocks
# happened to be during their visit. So we still don't really know what time # happened to be during their visit. So we still don't really know what time
# it is at Vostok. But we'll guess UTC+6. # it is at Vostok. But we'll guess +06.
# #
Zone Antarctica/Vostok 0 - -00 1957 Dec 16 Zone Antarctica/Vostok 0 - -00 1957 Dec 16
6:00 - VOST # Vostok time 6:00 - +06
# S Africa - year-round bases # S Africa - year-round bases
# Marion Island, -4653+03752 # Marion Island, -4653+03752
...@@ -324,7 +321,7 @@ Zone Antarctica/Vostok 0 - -00 1957 Dec 16 ...@@ -324,7 +321,7 @@ Zone Antarctica/Vostok 0 - -00 1957 Dec 16
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Rothera 0 - -00 1976 Dec 1 Zone Antarctica/Rothera 0 - -00 1976 Dec 1
-3:00 - ROTT # Rothera time -3:00 - -03
# Uruguay - year round base # Uruguay - year round base
# Artigas, King George Island, -621104-0585107 # Artigas, King George Island, -621104-0585107
......
...@@ -139,13 +139,11 @@ Zone Asia/Kabul 4:36:48 - LMT 1890 ...@@ -139,13 +139,11 @@ Zone Asia/Kabul 4:36:48 - LMT 1890
# http://www.worldtimezone.com/dst_news/dst_news_armenia03.html # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2
3:00 - YERT 1957 Mar # Yerevan Time 3:00 - +03 1957 Mar
4:00 RussiaAsia YER%sT 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s
3:00 1:00 YERST 1991 Sep 23 # independence 3:00 RussiaAsia +03/+04 1995 Sep 24 2:00s
3:00 RussiaAsia AM%sT 1995 Sep 24 2:00s 4:00 - +04 1997
4:00 - AMT 1997 4:00 RussiaAsia +04/+05
4:00 RussiaAsia AM%sT 2012 Feb 9
4:00 - AMT
# Azerbaijan # Azerbaijan
...@@ -166,13 +164,12 @@ Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 S ...@@ -166,13 +164,12 @@ Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 S
Rule Azer 1997 2015 - Oct lastSun 5:00 0 - Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Baku 3:19:24 - LMT 1924 May 2 Zone Asia/Baku 3:19:24 - LMT 1924 May 2
3:00 - BAKT 1957 Mar # Baku Time 3:00 - +03 1957 Mar
4:00 RussiaAsia BAK%sT 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s
3:00 1:00 BAKST 1991 Aug 30 # independence 3:00 RussiaAsia +03/+04 1992 Sep lastSun 2:00s
3:00 RussiaAsia AZ%sT 1992 Sep lastSun 2:00s 4:00 - +04 1996
4:00 - AZT 1996 # Azerbaijan Time 4:00 EUAsia +04/+05 1997
4:00 EUAsia AZ%sT 1997 4:00 Azer +04/+05
4:00 Azer AZ%sT
# Bahrain # Bahrain
# See Asia/Qatar. # See Asia/Qatar.
...@@ -291,7 +288,7 @@ Zone Asia/Brunei 7:39:40 - LMT 1926 Mar # Bandar Seri Begawan ...@@ -291,7 +288,7 @@ Zone Asia/Brunei 7:39:40 - LMT 1926 Mar # Bandar Seri Begawan
# Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon. # Milne says 6:24:40 was the meridian of the time ball observatory at Rangoon.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Rangoon 6:24:40 - LMT 1880 # or Yangon Zone Asia/Yangon 6:24:40 - LMT 1880 # or Rangoon
6:24:40 - RMT 1920 # Rangoon Mean Time? 6:24:40 - RMT 1920 # Rangoon Mean Time?
6:30 - BURT 1942 May # Burma Time 6:30 - BURT 1942 May # Burma Time
9:00 - JST 1945 May 3 9:00 - JST 1945 May 3
...@@ -406,7 +403,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -406,7 +403,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# Lewiston (ME) Daily Sun (1939-05-29), p 17, said "Even the time is # Lewiston (ME) Daily Sun (1939-05-29), p 17, said "Even the time is
# different - the occupied districts going by Tokyo time, an hour # different - the occupied districts going by Tokyo time, an hour
# ahead of that prevailing in the rest of Shanghai." Guess that the # ahead of that prevailing in the rest of Shanghai." Guess that the
# Xujiahui Observatory was under French control and stuck with UT+8. # Xujiahui Observatory was under French control and stuck with UT +08.
# #
# In earlier versions of this file, China had many separate Zone entries, but # In earlier versions of this file, China had many separate Zone entries, but
# this was based on what were apparently incorrect data in Shanks & Pottenger. # this was based on what were apparently incorrect data in Shanks & Pottenger.
...@@ -415,26 +412,26 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -415,26 +412,26 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# Proposed in 1918 and theoretically in effect until 1949 (although in practice # Proposed in 1918 and theoretically in effect until 1949 (although in practice
# mainly observed in coastal areas), the five zones were: # mainly observed in coastal areas), the five zones were:
# #
# Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT+8.5 # Changbai Time ("Long-white Time", Long-white = Heilongjiang area) UT +08:30
# Asia/Harbin (currently a link to Asia/Shanghai) # Asia/Harbin (currently a link to Asia/Shanghai)
# Heilongjiang (except Mohe county), Jilin # Heilongjiang (except Mohe county), Jilin
# #
# Zhongyuan Time ("Central plain Time") UT+8 # Zhongyuan Time ("Central plain Time") UT +08
# Asia/Shanghai # Asia/Shanghai
# most of China # most of China
# This currently represents most other zones as well, # This currently represents most other zones as well,
# as apparently these regions have been the same since 1970. # as apparently these regions have been the same since 1970.
# Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest. # Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest.
# Guo says Shanghai switched to UT+8 "from the end of the 19th century". # 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 that area) UT+7 # 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) # Asia/Chongqing (currently a link to Asia/Shanghai)
# Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan; # 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; west Qinghai; and the Guangdong
# counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing, # counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing,
# Yangchun, Yangjiang, Yu'nan, and Yunfu. # Yangchun, Yangjiang, Yu'nan, and Yunfu.
# #
# Xin-zang Time ("Xinjiang-Tibet Time") UT+6 # Xin-zang Time ("Xinjiang-Tibet Time") UT +06
# Asia/Urumqi # Asia/Urumqi
# This currently represents Kunlun Time as well, # This currently represents Kunlun Time as well,
# as apparently the two regions have been the same since 1970. # as apparently the two regions have been the same since 1970.
...@@ -447,7 +444,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -447,7 +444,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami, # Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami,
# Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan. # Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan.
# #
# Kunlun Time UT+5.5 # Kunlun Time UT +05:30
# Asia/Kashgar (currently a link to Asia/Urumqi) # Asia/Kashgar (currently a link to Asia/Urumqi)
# West Tibet, including Pulan, Aheqi, Shufu, Shule; # West Tibet, including Pulan, Aheqi, Shufu, Shule;
# West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke, # West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke,
...@@ -463,7 +460,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -463,7 +460,7 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# #
# On the other hand, ethnic Uyghurs, who make up about half the # On the other hand, ethnic Uyghurs, who make up about half the
# population of Xinjiang, typically use "Xinjiang time" which is two # population of Xinjiang, typically use "Xinjiang time" which is two
# hours behind Beijing time, or UTC +0600. The government of the Xinjiang # hours behind Beijing time, or UT +06. The government of the Xinjiang
# Uyghur Autonomous Region, (XAUR, or just Xinjiang for short) as well as # Uyghur Autonomous Region, (XAUR, or just Xinjiang for short) as well as
# local governments such as the Ürümqi city government use both times in # local governments such as the Ürümqi city government use both times in
# publications, referring to what is popularly called Xinjiang time as # publications, referring to what is popularly called Xinjiang time as
...@@ -519,8 +516,8 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -519,8 +516,8 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# having the same time as Beijing. # having the same time as Beijing.
# From Paul Eggert (2014-06-30): # From Paul Eggert (2014-06-30):
# In the early days of the PRC, Tibet was given its own time zone (UT+6) but # In the early days of the PRC, Tibet was given its own time zone (UT +06)
# this was withdrawn in 1959 and never reinstated; see Tubten Khétsun, # but this was withdrawn in 1959 and never reinstated; see Tubten Khétsun,
# Memories of life in Lhasa under Chinese Rule, Columbia U Press, ISBN # Memories of life in Lhasa under Chinese Rule, Columbia U Press, ISBN
# 978-0231142861 (2008), translator's introduction by Matthew Akester, p x. # 978-0231142861 (2008), translator's introduction by Matthew Akester, p x.
# As this is before our 1970 cutoff, Tibet doesn't need a separate zone. # As this is before our 1970 cutoff, Tibet doesn't need a separate zone.
...@@ -534,12 +531,12 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D ...@@ -534,12 +531,12 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D
# Republics, the Soviet Union, the Kuomintang, and the People's Republic of # Republics, the Soviet Union, the Kuomintang, and the People's Republic of
# China, and tracking down all these organizations' timekeeping rules would be # China, and tracking down all these organizations' timekeeping rules would be
# quite a trick. Approximate this lost history by a transition from LMT to # quite a trick. Approximate this lost history by a transition from LMT to
# XJT at the start of 1928, the year of accession of the warlord Jin Shuren, # UT +06 at the start of 1928, the year of accession of the warlord Jin Shuren,
# which happens to be the date given by Shanks & Pottenger (no doubt as a # which happens to be the date given by Shanks & Pottenger (no doubt as a
# guess) as the transition from LMT. Ignore the usage of UT+8 before # guess) as the transition from LMT. Ignore the usage of +08 before
# 1986-02-01 under the theory that the transition date to UT+8 is unknown and # 1986-02-01 under the theory that the transition date to +08 is unknown and
# that the sort of users who prefer Asia/Urumqi now typically ignored the # that the sort of users who prefer Asia/Urumqi now typically ignored the
# UT+8 mandate back then. # +08 mandate back then.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Beijing time, used throughout China; represented by Shanghai. # Beijing time, used throughout China; represented by Shanghai.
...@@ -744,7 +741,7 @@ Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 ...@@ -744,7 +741,7 @@ Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30
# be found from historical government announcement database. # be found from historical government announcement database.
# From Paul Eggert (2014-07-03): # From Paul Eggert (2014-07-03):
# As per Yu-Cheng Chuang, say that Taiwan was at UT+9 from 1937-10-01 # As per Yu-Cheng Chuang, say that Taiwan was at UT +09 from 1937-10-01
# until 1945-09-21 at 01:00, overriding Shanks & Pottenger. # until 1945-09-21 at 01:00, overriding Shanks & Pottenger.
# Likewise, use Yu-Cheng Chuang's data for DST in Taiwan. # Likewise, use Yu-Cheng Chuang's data for DST in Taiwan.
...@@ -858,16 +855,15 @@ Link Asia/Nicosia Europe/Nicosia ...@@ -858,16 +855,15 @@ Link Asia/Nicosia Europe/Nicosia
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Tbilisi 2:59:11 - LMT 1880 Zone Asia/Tbilisi 2:59:11 - LMT 1880
2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time 2:59:11 - TBMT 1924 May 2 # Tbilisi Mean Time
3:00 - TBIT 1957 Mar # Tbilisi Time 3:00 - +03 1957 Mar
4:00 RussiaAsia TBI%sT 1991 Mar 31 2:00s 4:00 RussiaAsia +04/+05 1991 Mar 31 2:00s
3:00 1:00 TBIST 1991 Apr 9 # independence 3:00 RussiaAsia +03/+04 1992
3:00 RussiaAsia GE%sT 1992 # Georgia Time 3:00 E-EurAsia +03/+04 1994 Sep lastSun
3:00 E-EurAsia GE%sT 1994 Sep lastSun 4:00 E-EurAsia +04/+05 1996 Oct lastSun
4:00 E-EurAsia GE%sT 1996 Oct lastSun 4:00 1:00 +05 1997 Mar lastSun
4:00 1:00 GEST 1997 Mar lastSun 4:00 E-EurAsia +04/+05 2004 Jun 27
4:00 E-EurAsia GE%sT 2004 Jun 27 3:00 RussiaAsia +03/+04 2005 Mar lastSun 2:00
3:00 RussiaAsia GE%sT 2005 Mar lastSun 2:00 4:00 - +04
4:00 - GET
# East Timor # East Timor
...@@ -944,7 +940,7 @@ Zone Asia/Kolkata 5:53:28 - LMT 1880 # Kolkata ...@@ -944,7 +940,7 @@ Zone Asia/Kolkata 5:53:28 - LMT 1880 # Kolkata
# These would be the earliest possible times for a change. # These would be the earliest possible times for a change.
# Régimes horaires pour le monde entier, by Henri Le Corre, (Éditions # Régimes horaires pour le monde entier, by Henri Le Corre, (Éditions
# Traditionnelles, 1987, Paris) says that Java and Madura switched # Traditionnelles, 1987, Paris) says that Java and Madura switched
# from JST to UTC+07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura # from UT +09 to +07:30 on 1945-09-23, and gives 1944-09-01 for Jayapura
# (Hollandia). For now, assume all Indonesian locations other than Jayapura # (Hollandia). For now, assume all Indonesian locations other than Jayapura
# switched on 1945-09-23. # switched on 1945-09-23.
# #
...@@ -955,11 +951,11 @@ Zone Asia/Kolkata 5:53:28 - LMT 1880 # Kolkata ...@@ -955,11 +951,11 @@ Zone Asia/Kolkata 5:53:28 - LMT 1880 # Kolkata
# summary published by the Time and Frequency Laboratory of the # summary published by the Time and Frequency Laboratory of the
# Research Center for Calibration, Instrumentation and Metrology, # Research Center for Calibration, Instrumentation and Metrology,
# Indonesia, <http://time.kim.lipi.go.id/time-eng.php> (2006-09-29). # Indonesia, <http://time.kim.lipi.go.id/time-eng.php> (2006-09-29).
# The abbreviations are: # The time zone abbreviations and UT offsets are:
# #
# WIB - UTC+7 - Waktu Indonesia Barat (Indonesia western time) # WIB - +07 - Waktu Indonesia Barat (Indonesia western time)
# WITA - UTC+8 - Waktu Indonesia Tengah (Indonesia central time) # WITA - +08 - Waktu Indonesia Tengah (Indonesia central time)
# WIT - UTC+9 - Waktu Indonesia Timur (Indonesia eastern time) # WIT - +09 - Waktu Indonesia Timur (Indonesia eastern time)
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Java, Sumatra # Java, Sumatra
...@@ -1848,11 +1844,11 @@ Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 S ...@@ -1848,11 +1844,11 @@ Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 S
Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 - Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2
5:00 - FRUT 1930 Jun 21 # Frunze Time 5:00 - +05 1930 Jun 21
6:00 RussiaAsia FRU%sT 1991 Mar 31 2:00s 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s
5:00 1:00 FRUST 1991 Aug 31 2:00 # independence 5:00 RussiaAsia +05/+06 1991 Aug 31 2:00
5:00 Kyrgyz KG%sT 2005 Aug 12 # Kyrgyzstan Time 5:00 Kyrgyz +05/+06 2005 Aug 12
6:00 - KGT 6:00 - +06
############################################################################### ###############################################################################
...@@ -1891,25 +1887,24 @@ Rule ROK 1957 1960 - Sep Sun>=18 0:00 0 S ...@@ -1891,25 +1887,24 @@ 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 - May Sun>=8 2:00 1:00 D
Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S
# From Paul Eggert (2014-10-30): # From Paul Eggert (2016-08-23):
# The Korean Wikipedia entry gives the following sources for UT offsets: # The Korean Wikipedia entry gives the following sources for UT offsets:
# #
# 1908: Official Journal Article No. 3994 (Edict No. 5) # 1908: Official Journal Article No. 3994 (decree No. 5)
# 1912: Governor-General of Korea Official Gazette Issue No. 367 # 1912: Governor-General of Korea Official Gazette Issue No. 367
# (Announcement No. 338) # (Announcement No. 338)
# 1954: Presidential Decree No. 876 (1954-03-17) # 1954: Presidential Decree No. 876 (1954-03-17)
# 1961: Law No. 676 (1961-08-07) # 1961: Law No. 676 (1961-08-07)
# 1987: Law No. 3919 (1986-12-31)
# #
# The Wikipedia entry also has confusing information about a change # (Another source "1987: Law No. 3919 (1986-12-31)" was in the 2014-10-30
# to UT+9 in April 1910, but then what would be the point of the later change # edition of the Korean Wikipedia entry.)
# to UT+9 on 1912-01-01? Omit the 1910 change for now.
# #
# I guessed that time zone abbreviations through 1945 followed the same # I guessed that time zone abbreviations through 1945 followed the same
# rules as discussed under Taiwan, with nominal switches from JST to KST # rules as discussed under Taiwan, with nominal switches from JST to KST
# when the respective cities were taken over by the Allies after WWII. # when the respective cities were taken over by the Allies after WWII.
# #
# For Pyongyang we have no information; guess no changes since World War II. # For Pyongyang, guess no changes from World War II until 2015, as we
# have no information otherwise.
# From Steffen Thorsen (2015-08-07): # From Steffen Thorsen (2015-08-07):
# According to many news sources, North Korea is going to change to # According to many news sources, North Korea is going to change to
...@@ -2069,7 +2064,7 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male ...@@ -2069,7 +2064,7 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male
# Bill Bonnet (2005-05-19) reports that the US Embassy in Ulaanbaatar says # Bill Bonnet (2005-05-19) reports that the US Embassy in Ulaanbaatar says
# there is only one time zone and that DST is observed, citing Microsoft # there is only one time zone and that DST is observed, citing Microsoft
# Windows XP as the source. Risto Nykänen (2005-05-16) reports that # Windows XP as the source. Risto Nykänen (2005-05-16) reports that
# travelmongolia.org says there are two time zones (UTC+7, UTC+8) with no DST. # travelmongolia.org says there are two time zones (UT +07, +08) with no DST.
# Oscar van Vlijmen (2005-05-20) reports that the Mongolian Embassy in # Oscar van Vlijmen (2005-05-20) reports that the Mongolian Embassy in
# Washington, DC says there are two time zones, with DST observed. # Washington, DC says there are two time zones, with DST observed.
# He also found # He also found
...@@ -2705,7 +2700,7 @@ Link Asia/Qatar Asia/Bahrain ...@@ -2705,7 +2700,7 @@ Link Asia/Qatar Asia/Bahrain
# earlier date. # earlier date.
# #
# Shanks & Pottenger also state that until 1968-05-01 Saudi Arabia had two # Shanks & Pottenger also state that until 1968-05-01 Saudi Arabia had two
# time zones; the other zone, at UTC+4, was in the far eastern part of # 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. Ignore this, as it's before our 1970 cutoff.
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
...@@ -2974,10 +2969,10 @@ Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq ...@@ -2974,10 +2969,10 @@ Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq
# From Shanks & Pottenger. # From Shanks & Pottenger.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2
5:00 - DUST 1930 Jun 21 # Dushanbe Time 5:00 - +05 1930 Jun 21
6:00 RussiaAsia DUS%sT 1991 Mar 31 2:00s 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s
5:00 1:00 DUSST 1991 Sep 9 2:00s 5:00 1:00 +05/+06 1991 Sep 9 2:00s
5:00 - TJT # Tajikistan Time 5:00 - +05
# Thailand # Thailand
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
...@@ -2991,11 +2986,10 @@ Link Asia/Bangkok Asia/Vientiane # Laos ...@@ -2991,11 +2986,10 @@ Link Asia/Bangkok Asia/Vientiane # Laos
# From Shanks & Pottenger. # From Shanks & Pottenger.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad
4:00 - ASHT 1930 Jun 21 # Ashkhabad Time 4:00 - +04 1930 Jun 21
5:00 RussiaAsia ASH%sT 1991 Mar 31 2:00 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00
4:00 RussiaAsia ASH%sT 1991 Oct 27 # independence 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00
4:00 RussiaAsia TM%sT 1992 Jan 19 2:00 5:00 - +05
5:00 - TMT
# United Arab Emirates # United Arab Emirates
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
...@@ -3007,20 +3001,18 @@ Link Asia/Dubai Asia/Muscat # Oman ...@@ -3007,20 +3001,18 @@ Link Asia/Dubai Asia/Muscat # Oman
# Byalokoz 1919 says Uzbekistan was 4:27:53. # Byalokoz 1919 says Uzbekistan was 4:27:53.
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2 Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2
4:00 - SAMT 1930 Jun 21 # Samarkand Time 4:00 - +04 1930 Jun 21
5:00 - SAMT 1981 Apr 1 5:00 - +05 1981 Apr 1
5:00 1:00 SAMST 1981 Oct 1 5:00 1:00 +06 1981 Oct 1
6:00 - TAST 1982 Apr 1 # Tashkent Time 6:00 - +06 1982 Apr 1
5:00 RussiaAsia SAM%sT 1991 Sep 1 # independence 5:00 RussiaAsia +05/+06 1992
5:00 RussiaAsia UZ%sT 1992 5:00 - +05
5:00 - UZT
# Milne says Tashkent was 4:37:10.8; round to nearest. # Milne says Tashkent was 4:37:10.8; round to nearest.
Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
5:00 - TAST 1930 Jun 21 # Tashkent Time 5:00 - +05 1930 Jun 21
6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00
5:00 RussiaAsia TAS%sT 1991 Sep 1 # independence 5:00 RussiaAsia +05/+06 1992
5:00 RussiaAsia UZ%sT 1992 5:00 - +05
5:00 - UZT
# Vietnam # Vietnam
......
...@@ -568,7 +568,7 @@ Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 ...@@ -568,7 +568,7 @@ Zone Pacific/Port_Moresby 9:48:40 - LMT 1880
# Base the Bougainville entry on the Arawa-Kieta region, which appears to have # Base the Bougainville entry on the Arawa-Kieta region, which appears to have
# the most people even though it was devastated in the Bougainville Civil War. # the most people even though it was devastated in the Bougainville Civil War.
# #
# Although Shanks gives 1942-03-15 / 1943-11-01 for JST, these dates # Although Shanks gives 1942-03-15 / 1943-11-01 for UT +09, these dates
# are apparently rough guesswork from the starts of military campaigns. # are apparently rough guesswork from the starts of military campaigns.
# The World War II entries below are instead based on Arawa-Kieta. # The World War II entries below are instead based on Arawa-Kieta.
# The Japanese occupied Kieta in July 1942, # The Japanese occupied Kieta in July 1942,
...@@ -576,8 +576,8 @@ Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 ...@@ -576,8 +576,8 @@ Zone Pacific/Port_Moresby 9:48:40 - LMT 1880
# http://pwencycl.kgbudge.com/B/o/Bougainville.htm # http://pwencycl.kgbudge.com/B/o/Bougainville.htm
# and seem to have controlled it until their 1945-08-21 surrender. # and seem to have controlled it until their 1945-08-21 surrender.
# #
# The Autonomous Region of Bougainville plans to switch from UTC+10 to UTC+11 # The Autonomous Region of Bougainville switched from UT +10 to +11
# on 2014-12-28 at 02:00. They call UTC+11 "Bougainville Standard Time"; # on 2014-12-28 at 02:00. They call +11 "Bougainville Standard Time";
# abbreviate this as BST. See: # abbreviate this as BST. See:
# http://www.bougainville24.com/bougainville-issues/bougainville-gets-own-timezone/ # http://www.bougainville24.com/bougainville-issues/bougainville-gets-own-timezone/
# #
...@@ -643,7 +643,7 @@ Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands ...@@ -643,7 +643,7 @@ Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands
# From Paul Eggert (2014-06-27): # From Paul Eggert (2014-06-27):
# The International Date Line Act 2011 # The International Date Line Act 2011
# http://www.parliament.gov.ws/images/ACTS/International_Date_Line_Act__2011_-_Eng.pdf # http://www.parliament.gov.ws/images/ACTS/International_Date_Line_Act__2011_-_Eng.pdf
# changed Samoa from UTC-11 to UTC+13, effective "12 o'clock midnight, on # changed Samoa from UT -11 to +13, effective "12 o'clock midnight, on
# Thursday 29th December 2011". The International Date Line was adjusted # Thursday 29th December 2011". The International Date Line was adjusted
# accordingly. # accordingly.
...@@ -738,7 +738,7 @@ Zone Pacific/Funafuti 11:56:52 - LMT 1901 ...@@ -738,7 +738,7 @@ Zone Pacific/Funafuti 11:56:52 - LMT 1901
# 1886-1891; Baker was similar but exact dates are not known. # 1886-1891; Baker was similar but exact dates are not known.
# Inhabited by civilians 1935-1942; U.S. military bases 1943-1944; # Inhabited by civilians 1935-1942; U.S. military bases 1943-1944;
# uninhabited thereafter. # uninhabited thereafter.
# Howland observed Hawaii Standard Time (UT-10:30) in 1937; # Howland observed Hawaii Standard Time (UT -10:30) in 1937;
# see page 206 of Elgen M. Long and Marie K. Long, # see page 206 of Elgen M. Long and Marie K. Long,
# Amelia Earhart: the Mystery Solved, Simon & Schuster (2000). # Amelia Earhart: the Mystery Solved, Simon & Schuster (2000).
# So most likely Howland and Baker observed Hawaii Time from 1935 # So most likely Howland and Baker observed Hawaii Time from 1935
...@@ -1496,7 +1496,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 ...@@ -1496,7 +1496,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# Zealand time. I understand that is the time they keep locally, anyhow." # Zealand time. I understand that is the time they keep locally, anyhow."
# For now, assume this practice goes back to the introduction of standard time # For now, assume this practice goes back to the introduction of standard time
# in New Zealand, as this would make Chatham Islands time almost exactly match # in New Zealand, as this would make Chatham Islands time almost exactly match
# LMT back when New Zealand was at UTC+11:30; also, assume Chatham Islands did # LMT back when New Zealand was at UT +11:30; also, assume Chatham Islands did
# not observe New Zealand's prewar DST. # not observe New Zealand's prewar DST.
############################################################################### ###############################################################################
...@@ -1552,7 +1552,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 ...@@ -1552,7 +1552,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# For now, we assume the Ladrones switched at the same time as the Philippines; # For now, we assume the Ladrones switched at the same time as the Philippines;
# see Asia/Manila. # see Asia/Manila.
# US Public Law 106-564 (2000-12-23) made UTC+10 the official standard time, # 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, # under the name "Chamorro Standard Time". There is no official abbreviation,
# but Congressman Robert A. Underwood, author of the bill that became law, # 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". # wrote in a press release (2000-12-27) that he will seek the use of "ChST".
...@@ -1564,15 +1564,15 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 ...@@ -1564,15 +1564,15 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# "I am certain, having lived there for the past decade, that 'Truk' # "I am certain, having lived there for the past decade, that 'Truk'
# (now properly known as Chuuk) ... is in the time zone GMT+10." # (now properly known as Chuuk) ... is in the time zone GMT+10."
# #
# Shanks & Pottenger write that Truk switched from UTC+10 to UTC+11 # Shanks & Pottenger write that Truk switched from UT +10 to +11
# on 1978-10-01; ignore this for now. # on 1978-10-01; ignore this for now.
# From Paul Eggert (1999-10-29): # From Paul Eggert (1999-10-29):
# The Federated States of Micronesia Visitors Board writes in # The Federated States of Micronesia Visitors Board writes in
# The Federated States of Micronesia - Visitor Information (1999-01-26) # The Federated States of Micronesia - Visitor Information (1999-01-26)
# http://www.fsmgov.org/info/clocks.html # http://www.fsmgov.org/info/clocks.html
# that Truk and Yap are UTC+10, and Ponape and Kosrae are UTC+11. # that Truk and Yap are UT +10, and Ponape and Kosrae are +11.
# We don't know when Kosrae switched from UTC+12; assume January 1 for now. # We don't know when Kosrae switched from +12; assume January 1 for now.
# Midway # Midway
...@@ -1638,11 +1638,11 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 ...@@ -1638,11 +1638,11 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# ordaining - by a masterpiece of diplomatic flattery - that # ordaining - by a masterpiece of diplomatic flattery - that
# the Fourth of July should be celebrated twice in that year." # the Fourth of July should be celebrated twice in that year."
# Although Shanks & Pottenger says they both switched to UTC-11:30 # Although Shanks & Pottenger says they both switched to UT -11:30
# in 1911, and to UTC-11 in 1950. many earlier sources give UTC-11 # in 1911, and to -11 in 1950. many earlier sources give -11
# for American Samoa, e.g., the US National Bureau of Standards # for American Samoa, e.g., the US National Bureau of Standards
# circular "Standard Time Throughout the World", 1932. # circular "Standard Time Throughout the World", 1932.
# Assume American Samoa switched to UTC-11 in 1911, not 1950, # Assume American Samoa switched to -11 in 1911, not 1950,
# and that after 1950 they agreed until (western) Samoa skipped a # and that after 1950 they agreed until (western) Samoa skipped a
# day in 2011. Assume also that the Samoas follow the US and New # day in 2011. Assume also that the Samoas follow the US and New
# Zealand's "ST"/"DT" style of daylight-saving abbreviations. # Zealand's "ST"/"DT" style of daylight-saving abbreviations.
......
...@@ -59,6 +59,7 @@ Link Asia/Shanghai Asia/Harbin ...@@ -59,6 +59,7 @@ Link Asia/Shanghai Asia/Harbin
Link Asia/Urumqi Asia/Kashgar Link Asia/Urumqi Asia/Kashgar
Link Asia/Kathmandu Asia/Katmandu Link Asia/Kathmandu Asia/Katmandu
Link Asia/Macau Asia/Macao Link Asia/Macau Asia/Macao
Link Asia/Yangon Asia/Rangoon
Link Asia/Ho_Chi_Minh Asia/Saigon Link Asia/Ho_Chi_Minh Asia/Saigon
Link Asia/Jerusalem Asia/Tel_Aviv Link Asia/Jerusalem Asia/Tel_Aviv
Link Asia/Thimphu Asia/Thimbu Link Asia/Thimphu Asia/Thimbu
......
...@@ -31,6 +31,13 @@ ...@@ -31,6 +31,13 @@
# need now for the entries that are not on UTC are for ships at sea # need now for the entries that are not on UTC are for ships at sea
# that cannot use POSIX TZ settings. # that cannot use POSIX TZ settings.
# Starting with POSIX 1003.1-2001, the entries below are all
# unnecessary as settings for the TZ environment variable. E.g.,
# instead of TZ='Etc/GMT+4' one can use the POSIX setting TZ='<-04>+4'.
#
# Do not use a POSIX TZ setting like TZ='GMT+4', which is four hours
# behind GMT but uses the completely misleading abbreviation "GMT".
Zone Etc/GMT 0 - GMT Zone Etc/GMT 0 - GMT
Zone Etc/UTC 0 - UTC Zone Etc/UTC 0 - UTC
Zone Etc/UCT 0 - UCT Zone Etc/UCT 0 - UCT
...@@ -49,23 +56,13 @@ Link Etc/GMT Etc/GMT-0 ...@@ -49,23 +56,13 @@ Link Etc/GMT Etc/GMT-0
Link Etc/GMT Etc/GMT+0 Link Etc/GMT Etc/GMT+0
Link Etc/GMT Etc/GMT0 Link Etc/GMT Etc/GMT0
# We use POSIX-style signs in the Zone names and the output abbreviations, # Be consistent with POSIX TZ settings in the Zone names,
# even though this is the opposite of what many people expect. # even though this is the opposite of what many people expect.
# POSIX has positive signs west of Greenwich, but many people expect # POSIX has positive signs west of Greenwich, but many people expect
# positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses # positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses
# the abbreviation "GMT+4" and corresponds to 4 hours behind UT # the abbreviation "-04" and corresponds to 4 hours behind UT
# (i.e. west of Greenwich) even though many people would expect it to # (i.e. west of Greenwich) even though many people would expect it to
# mean 4 hours ahead of UT (i.e. east of Greenwich). # mean 4 hours ahead of UT (i.e. east of Greenwich).
#
# In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for
# TZ='<GMT-4>+4'; if you want time zone abbreviations conforming to
# ISO 8601 you can use TZ='<-0400>+4'. Thus the commonly-expected
# offset is kept within the angle bracket (and is used for display)
# while the POSIX sign is kept outside the angle bracket (and is used
# for calculation).
#
# Do not use a TZ setting like TZ='GMT+4', which is four hours behind
# GMT but uses the completely misleading abbreviation "GMT".
# Earlier incarnations of this package were not POSIX-compliant, # Earlier incarnations of this package were not POSIX-compliant,
# and had lines such as # and had lines such as
...@@ -74,30 +71,31 @@ Link Etc/GMT Etc/GMT0 ...@@ -74,30 +71,31 @@ Link Etc/GMT Etc/GMT0
# way does a # way does a
# zic -l GMT-12 # zic -l GMT-12
# so we moved the names into the Etc subdirectory. # so we moved the names into the Etc subdirectory.
# Also, the time zone abbreviations are now compatible with %z.
Zone Etc/GMT-14 14 - GMT-14 # 14 hours ahead of GMT Zone Etc/GMT-14 14 - +14
Zone Etc/GMT-13 13 - GMT-13 Zone Etc/GMT-13 13 - +13
Zone Etc/GMT-12 12 - GMT-12 Zone Etc/GMT-12 12 - +12
Zone Etc/GMT-11 11 - GMT-11 Zone Etc/GMT-11 11 - +11
Zone Etc/GMT-10 10 - GMT-10 Zone Etc/GMT-10 10 - +10
Zone Etc/GMT-9 9 - GMT-9 Zone Etc/GMT-9 9 - +09
Zone Etc/GMT-8 8 - GMT-8 Zone Etc/GMT-8 8 - +08
Zone Etc/GMT-7 7 - GMT-7 Zone Etc/GMT-7 7 - +07
Zone Etc/GMT-6 6 - GMT-6 Zone Etc/GMT-6 6 - +06
Zone Etc/GMT-5 5 - GMT-5 Zone Etc/GMT-5 5 - +05
Zone Etc/GMT-4 4 - GMT-4 Zone Etc/GMT-4 4 - +04
Zone Etc/GMT-3 3 - GMT-3 Zone Etc/GMT-3 3 - +03
Zone Etc/GMT-2 2 - GMT-2 Zone Etc/GMT-2 2 - +02
Zone Etc/GMT-1 1 - GMT-1 Zone Etc/GMT-1 1 - +01
Zone Etc/GMT+1 -1 - GMT+1 Zone Etc/GMT+1 -1 - -01
Zone Etc/GMT+2 -2 - GMT+2 Zone Etc/GMT+2 -2 - -02
Zone Etc/GMT+3 -3 - GMT+3 Zone Etc/GMT+3 -3 - -03
Zone Etc/GMT+4 -4 - GMT+4 Zone Etc/GMT+4 -4 - -04
Zone Etc/GMT+5 -5 - GMT+5 Zone Etc/GMT+5 -5 - -05
Zone Etc/GMT+6 -6 - GMT+6 Zone Etc/GMT+6 -6 - -06
Zone Etc/GMT+7 -7 - GMT+7 Zone Etc/GMT+7 -7 - -07
Zone Etc/GMT+8 -8 - GMT+8 Zone Etc/GMT+8 -8 - -08
Zone Etc/GMT+9 -9 - GMT+9 Zone Etc/GMT+9 -9 - -09
Zone Etc/GMT+10 -10 - GMT+10 Zone Etc/GMT+10 -10 - -10
Zone Etc/GMT+11 -11 - GMT+11 Zone Etc/GMT+11 -11 - -11
Zone Etc/GMT+12 -12 - GMT+12 Zone Etc/GMT+12 -12 - -12
...@@ -98,8 +98,7 @@ ...@@ -98,8 +98,7 @@
# 1:00 CET CEST CEMT Central Europe # 1:00 CET CEST CEMT Central Europe
# 1:00:14 SET Swedish (1879-1899)* # 1:00:14 SET Swedish (1879-1899)*
# 2:00 EET EEST Eastern Europe # 2:00 EET EEST Eastern Europe
# 3:00 FET Further-eastern Europe (2011-2014)* # 3:00 MSK MSD Moscow
# 3:00 MSK MSD MSM* Minsk, Moscow
# From Peter Ilieve (1994-12-04), # From Peter Ilieve (1994-12-04),
# The original six [EU members]: Belgium, France, (West) Germany, Italy, # The original six [EU members]: Belgium, France, (West) Germany, Italy,
...@@ -606,16 +605,33 @@ Rule E-Eur 1979 1995 - Sep lastSun 0:00 0 - ...@@ -606,16 +605,33 @@ Rule E-Eur 1979 1995 - Sep lastSun 0:00 0 -
Rule E-Eur 1981 max - Mar lastSun 0:00 1:00 S Rule E-Eur 1981 max - Mar lastSun 0:00 1:00 S
Rule E-Eur 1996 max - Oct lastSun 0:00 0 - Rule E-Eur 1996 max - Oct lastSun 0:00 0 -
# Daylight saving time for Russia and the Soviet Union
#
# The 1917-1921 decree URLs are from Alexander Belopolsky (2016-08-23).
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time
#
# Decree No. 142 (1917-12-22) http://istmat.info/node/28137
Rule Russia 1917 only - Dec 28 0:00 0 MMT # Moscow Mean Time Rule Russia 1917 only - Dec 28 0:00 0 MMT # Moscow Mean Time
#
# Decree No. 497 (1918-05-30) http://istmat.info/node/30001
Rule Russia 1918 only - May 31 22:00 2:00 MDST # Moscow Double Summer Time Rule Russia 1918 only - May 31 22:00 2:00 MDST # Moscow Double Summer Time
Rule Russia 1918 only - Sep 16 1:00 1:00 MST Rule Russia 1918 only - Sep 16 1:00 1:00 MST
#
# Decree No. 258 (1919-05-29) http://istmat.info/node/37949
Rule Russia 1919 only - May 31 23:00 2:00 MDST Rule Russia 1919 only - May 31 23:00 2:00 MDST
Rule Russia 1919 only - Jul 1 2:00 1:00 MSD #
Rule Russia 1919 only - Jul 1 0:00u 1:00 MSD
Rule Russia 1919 only - Aug 16 0:00 0 MSK Rule Russia 1919 only - Aug 16 0:00 0 MSK
#
# Decree No. 63 (1921-02-03) http://istmat.info/node/45840
Rule Russia 1921 only - Feb 14 23:00 1:00 MSD Rule Russia 1921 only - Feb 14 23:00 1:00 MSD
Rule Russia 1921 only - Mar 20 23:00 2:00 MSM # Midsummer #
# Decree No. 121 (1921-03-07) http://istmat.info/node/45949
Rule Russia 1921 only - Mar 20 23:00 2:00 +05
#
Rule Russia 1921 only - Sep 1 0:00 1:00 MSD Rule Russia 1921 only - Sep 1 0:00 1:00 MSD
Rule Russia 1921 only - Oct 1 0:00 0 - Rule Russia 1921 only - Oct 1 0:00 0 -
# Act No. 925 of the Council of Ministers of the USSR (1980-10-24): # Act No. 925 of the Council of Ministers of the USSR (1980-10-24):
...@@ -798,8 +814,6 @@ Zone Europe/Vienna 1:05:21 - LMT 1893 Apr ...@@ -798,8 +814,6 @@ Zone Europe/Vienna 1:05:21 - LMT 1893 Apr
# From Alexander Bokovoy (2014-10-09): # From Alexander Bokovoy (2014-10-09):
# Belarussian government decided against changing to winter time.... # 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 # http://eng.belta.by/all_news/society/Belarus-decides-against-adjusting-time-in-Russias-wake_i_76335.html
# From Paul Eggert (2014-10-08):
# Hence Belarus can share time zone abbreviations with Moscow again.
# #
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Minsk 1:50:16 - LMT 1880 Zone Europe/Minsk 1:50:16 - LMT 1880
...@@ -810,8 +824,7 @@ Zone Europe/Minsk 1:50:16 - LMT 1880 ...@@ -810,8 +824,7 @@ Zone Europe/Minsk 1:50:16 - LMT 1880
3:00 Russia MSK/MSD 1990 3:00 Russia MSK/MSD 1990
3:00 - MSK 1991 Mar 31 2:00s 3:00 - MSK 1991 Mar 31 2:00s
2:00 Russia EE%sT 2011 Mar 27 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s
3:00 - FET 2014 Oct 26 1:00s 3:00 - +03
3:00 - MSK
# Belgium # Belgium
# #
...@@ -1319,7 +1332,7 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01 ...@@ -1319,7 +1332,7 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
# http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf # http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf
# says that Bersarin issued an order to use Moscow time on May 20. # says that Bersarin issued an order to use Moscow time on May 20.
# However, Moscow did not observe daylight saving in 1945, so # However, Moscow did not observe daylight saving in 1945, so
# this was equivalent to CEMT (GMT+3), not GMT+4. # this was equivalent to UT +03, not +04.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
...@@ -2283,7 +2296,6 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct ...@@ -2283,7 +2296,6 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct
# http://www.worldtimezone.com/dst_news/dst_news_russia-map-2014-07.html # http://www.worldtimezone.com/dst_news/dst_news_russia-map-2014-07.html
# From Paul Eggert (2006-03-22): # From Paul Eggert (2006-03-22):
# Except for Moscow after 1919-07-01, I invented the time zone abbreviations.
# Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991, # Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991,
# are from Andrey A. Chernov. The rest is from Shanks & Pottenger, # are from Andrey A. Chernov. The rest is from Shanks & Pottenger,
# except we follow Chernov's report that 1992 DST transitions were Sat # except we follow Chernov's report that 1992 DST transitions were Sat
...@@ -2359,7 +2371,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr ...@@ -2359,7 +2371,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
2:00 Poland CE%sT 1946 2:00 Poland CE%sT 1946
3:00 Russia MSK/MSD 1989 Mar 26 2:00s 3:00 Russia MSK/MSD 1989 Mar 26 2:00s
2:00 Russia EE%sT 2011 Mar 27 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s
3:00 - FET 2014 Oct 26 2:00s 3:00 - +03 2014 Oct 26 2:00s
2:00 - EET 2:00 - EET
...@@ -2412,6 +2424,16 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr ...@@ -2412,6 +2424,16 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
# 78 RU-SPE Saint Petersburg # 78 RU-SPE Saint Petersburg
# 83 RU-NEN Nenets Autonomous Okrug # 83 RU-NEN Nenets Autonomous Okrug
# From Paul Eggert (2016-08-23):
# The Soviets switched to UT-based time in 1919. Decree No. 59
# (1919-02-08) http://istmat.info/node/35567 established UT-based time
# zones, and Decree No. 147 (1919-03-29) http://istmat.info/node/35854
# specified a transition date of 1919-07-01, apparently at 00:00 UT.
# No doubt only the Soviet-controlled regions switched on that date;
# later transitions to UT-based time in other parts of Russia are
# taken from what appear to be guesses by Shanks.
# (Thanks to Alexander Belopolsky for pointers to the decrees.)
# From Stepan Golosunov (2016-03-07): # From Stepan Golosunov (2016-03-07):
# 11. Regions-violators, 1981-1982. # 11. Regions-violators, 1981-1982.
# Wikipedia refers to # Wikipedia refers to
...@@ -2453,7 +2475,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr ...@@ -2453,7 +2475,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
# attributes the 1982 changes to the Act of the Council of Ministers # attributes the 1982 changes to the Act of the Council of Ministers
# of the USSR No. 126 from 18.02.1982. 1980-925.txt also adds # of the USSR No. 126 from 18.02.1982. 1980-925.txt also adds
# Udmurtia to the list of affected territories and lists Khatangsky # Udmurtia to the list of affected territories and lists Khatangsky
# district separately from Taymyr Autonomous Okurg. Probably erroneously. # district separately from Taymyr Autonomous Okrug. Probably erroneously.
# #
# The affected territories are currently listed under Europe/Moscow, # The affected territories are currently listed under Europe/Moscow,
# Asia/Yekaterinburg and Asia/Krasnoyarsk. # Asia/Yekaterinburg and Asia/Krasnoyarsk.
...@@ -2513,7 +2535,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr ...@@ -2513,7 +2535,7 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
Zone Europe/Moscow 2:30:17 - LMT 1880 Zone Europe/Moscow 2:30:17 - LMT 1880
2:30:17 - MMT 1916 Jul 3 # Moscow Mean Time 2:30:17 - MMT 1916 Jul 3 # Moscow Mean Time
2:31:19 Russia %s 1919 Jul 1 2:00 2:31:19 Russia %s 1919 Jul 1 0:00u
3:00 Russia %s 1921 Oct 3:00 Russia %s 1921 Oct
3:00 Russia MSK/MSD 1922 Oct 3:00 Russia MSK/MSD 1922 Oct
2:00 - EET 1930 Jun 21 2:00 - EET 1930 Jun 21
...@@ -2596,22 +2618,21 @@ Zone Europe/Astrakhan 3:12:12 - LMT 1924 May ...@@ -2596,22 +2618,21 @@ Zone Europe/Astrakhan 3:12:12 - LMT 1924 May
# The 1988 transition is from USSR act No. 5 (1988-01-04). # The 1988 transition is from USSR act No. 5 (1988-01-04).
Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3
3:00 - TSAT 1925 Apr 6 # Tsaritsyn Time 3:00 - +03 1930 Jun 21
3:00 - STAT 1930 Jun 21 # Stalingrad Time 4:00 - +04 1961 Nov 11
4:00 - STAT 1961 Nov 11 4:00 Russia +04/+05 1988 Mar 27 2:00s
4:00 Russia VOL%sT 1988 Mar 27 2:00s # Volgograd T 3:00 Russia +03/+04 1991 Mar 31 2:00s
3:00 Russia VOL%sT 1991 Mar 31 2:00s 4:00 - +04 1992 Mar 29 2:00s
4:00 - VOLT 1992 Mar 29 2:00s 3:00 Russia +03/+04 2011 Mar 27 2:00s
3:00 Russia MSK/MSD 2011 Mar 27 2:00s 4:00 - +04 2014 Oct 26 2:00s
4:00 - MSK 2014 Oct 26 2:00s 3:00 - +03
3:00 - MSK
# From Paul Eggert (2016-03-18): # From Paul Eggert (2016-03-18):
# Europe/Kirov covers: # Europe/Kirov covers:
# 43 RU-KIR Kirov Oblast # 43 RU-KIR Kirov Oblast
# The 1989 transition is from USSR act No. 227 (1989-03-14). # The 1989 transition is from USSR act No. 227 (1989-03-14).
# #
Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 2:00 Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0:00u
3:00 - +03 1930 Jun 21 3:00 - +03 1930 Jun 21
4:00 Russia +04/+05 1989 Mar 26 2:00s 4:00 Russia +04/+05 1989 Mar 26 2:00s
3:00 Russia +03/+04 1991 Mar 31 2:00s 3:00 Russia +03/+04 1991 Mar 31 2:00s
...@@ -2629,16 +2650,16 @@ Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 2:00 ...@@ -2629,16 +2650,16 @@ Zone Europe/Kirov 3:18:48 - LMT 1919 Jul 1 2:00
# Byalokoz 1919 says Samara was 3:20:20. # Byalokoz 1919 says Samara was 3:20:20.
# The 1989 transition is from USSR act No. 227 (1989-03-14). # The 1989 transition is from USSR act No. 227 (1989-03-14).
Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 2:00 Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 0:00u
3:00 - SAMT 1930 Jun 21 # Samara Time 3:00 - +03 1930 Jun 21
4:00 - SAMT 1935 Jan 27 4:00 - +04 1935 Jan 27
4:00 Russia KUY%sT 1989 Mar 26 2:00s # Kuybyshev 4:00 Russia +04/+05 1989 Mar 26 2:00s
3:00 Russia MSK/MSD 1991 Mar 31 2:00s 3:00 Russia +03/+04 1991 Mar 31 2:00s
2:00 Russia EE%sT 1991 Sep 29 2:00s 2:00 Russia +02/+03 1991 Sep 29 2:00s
3:00 - SAMT 1991 Oct 20 3:00 3:00 - +03 1991 Oct 20 3:00
4:00 Russia SAM%sT 2010 Mar 28 2:00s 4:00 Russia +04/+05 2010 Mar 28 2:00s
3:00 Russia SAM%sT 2011 Mar 27 2:00s 3:00 Russia +03/+04 2011 Mar 27 2:00s
4:00 - SAMT 4:00 - +04
# From Paul Eggert (2016-03-18): # From Paul Eggert (2016-03-18):
# Europe/Ulyanovsk covers: # Europe/Ulyanovsk covers:
...@@ -2653,7 +2674,7 @@ Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 2:00 ...@@ -2653,7 +2674,7 @@ Zone Europe/Samara 3:20:20 - LMT 1919 Jul 1 2:00
# From Matt Johnson (2016-03-09): # From Matt Johnson (2016-03-09):
# http://publication.pravo.gov.ru/Document/View/0001201603090051 # http://publication.pravo.gov.ru/Document/View/0001201603090051
Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 2:00 Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0:00u
3:00 - +03 1930 Jun 21 3:00 - +03 1930 Jun 21
4:00 Russia +04/+05 1989 Mar 26 2:00s 4:00 Russia +04/+05 1989 Mar 26 2:00s
3:00 Russia +03/+04 1991 Mar 31 2:00s 3:00 Russia +03/+04 1991 Mar 31 2:00s
...@@ -2685,12 +2706,12 @@ Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 2:00 ...@@ -2685,12 +2706,12 @@ Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 2:00
Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3 Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3
3:45:05 - PMT 1919 Jul 15 4:00 3:45:05 - PMT 1919 Jul 15 4:00
4:00 - SVET 1930 Jun 21 # Sverdlovsk Time 4:00 - +04 1930 Jun 21
5:00 Russia SVE%sT 1991 Mar 31 2:00s 5:00 Russia +05/+06 1991 Mar 31 2:00s
4:00 Russia SVE%sT 1992 Jan 19 2:00s 4:00 Russia +04/+05 1992 Jan 19 2:00s
5:00 Russia YEK%sT 2011 Mar 27 2:00s 5:00 Russia +05/+06 2011 Mar 27 2:00s
6:00 - YEKT 2014 Oct 26 2:00s 6:00 - +06 2014 Oct 26 2:00s
5:00 - YEKT 5:00 - +05
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
...@@ -2700,12 +2721,12 @@ Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3 ...@@ -2700,12 +2721,12 @@ Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3
# Byalokoz 1919 says Omsk was 4:53:30. # Byalokoz 1919 says Omsk was 4:53:30.
Zone Asia/Omsk 4:53:30 - LMT 1919 Nov 14 Zone Asia/Omsk 4:53:30 - LMT 1919 Nov 14
5:00 - OMST 1930 Jun 21 # Omsk Time 5:00 - +05 1930 Jun 21
6:00 Russia OMS%sT 1991 Mar 31 2:00s 6:00 Russia +06/+07 1991 Mar 31 2:00s
5:00 Russia OMS%sT 1992 Jan 19 2:00s 5:00 Russia +05/+06 1992 Jan 19 2:00s
6:00 Russia OMS%sT 2011 Mar 27 2:00s 6:00 Russia +06/+07 2011 Mar 27 2:00s
7:00 - OMST 2014 Oct 26 2:00s 7:00 - +07 2014 Oct 26 2:00s
6:00 - OMST 6:00 - +06
# From Paul Eggert (2016-02-22): # From Paul Eggert (2016-02-22):
# Asia/Barnaul covers: # Asia/Barnaul covers:
...@@ -2785,7 +2806,7 @@ Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00 ...@@ -2785,7 +2806,7 @@ Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00
# Note that time belts (numbered from 2 (Moscow) to 12 according to their # Note that time belts (numbered from 2 (Moscow) to 12 according to their
# GMT/UTC offset and having too many exceptions like regions formally # GMT/UTC offset and having too many exceptions like regions formally
# belonging to one belt but using time from another) were replaced # belonging to one belt but using time from another) were replaced
# with time zones in 2011 with different numberings (there was a # with time zones in 2011 with different numbering (there was a
# 2-hour gap between second and third zones in 2011-2014). # 2-hour gap between second and third zones in 2011-2014).
# From Stepan Golosunov (2016-04-12): # From Stepan Golosunov (2016-04-12):
...@@ -2868,12 +2889,12 @@ Zone Asia/Novokuznetsk 5:48:48 - LMT 1924 May 1 ...@@ -2868,12 +2889,12 @@ Zone Asia/Novokuznetsk 5:48:48 - LMT 1924 May 1
# Byalokoz 1919 says Krasnoyarsk was 6:11:26. # Byalokoz 1919 says Krasnoyarsk was 6:11:26.
Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6 Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6
6:00 - KRAT 1930 Jun 21 # Krasnoyarsk Time 6:00 - +06 1930 Jun 21
7:00 Russia KRA%sT 1991 Mar 31 2:00s 7:00 Russia +07/+08 1991 Mar 31 2:00s
6:00 Russia KRA%sT 1992 Jan 19 2:00s 6:00 Russia +06/+07 1992 Jan 19 2:00s
7:00 Russia KRA%sT 2011 Mar 27 2:00s 7:00 Russia +07/+08 2011 Mar 27 2:00s
8:00 - KRAT 2014 Oct 26 2:00s 8:00 - +08 2014 Oct 26 2:00s
7:00 - KRAT 7:00 - +07
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
...@@ -2890,12 +2911,12 @@ Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6 ...@@ -2890,12 +2911,12 @@ Zone Asia/Krasnoyarsk 6:11:26 - LMT 1920 Jan 6
Zone Asia/Irkutsk 6:57:05 - LMT 1880 Zone Asia/Irkutsk 6:57:05 - LMT 1880
6:57:05 - IMT 1920 Jan 25 # Irkutsk Mean Time 6:57:05 - IMT 1920 Jan 25 # Irkutsk Mean Time
7:00 - IRKT 1930 Jun 21 # Irkutsk Time 7:00 - +07 1930 Jun 21
8:00 Russia IRK%sT 1991 Mar 31 2:00s 8:00 Russia +08/+09 1991 Mar 31 2:00s
7:00 Russia IRK%sT 1992 Jan 19 2:00s 7:00 Russia +07/+08 1992 Jan 19 2:00s
8:00 Russia IRK%sT 2011 Mar 27 2:00s 8:00 Russia +08/+09 2011 Mar 27 2:00s
9:00 - IRKT 2014 Oct 26 2:00s 9:00 - +09 2014 Oct 26 2:00s
8:00 - IRKT 8:00 - +08
# From Tim Parenti (2014-07-06): # From Tim Parenti (2014-07-06):
...@@ -2912,13 +2933,13 @@ Zone Asia/Irkutsk 6:57:05 - LMT 1880 ...@@ -2912,13 +2933,13 @@ Zone Asia/Irkutsk 6:57:05 - LMT 1880
# http://publication.pravo.gov.ru/Document/View/0001201512300107 # http://publication.pravo.gov.ru/Document/View/0001201512300107
Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15 Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15
8:00 - YAKT 1930 Jun 21 # Yakutsk Time 8:00 - +08 1930 Jun 21
9:00 Russia YAK%sT 1991 Mar 31 2:00s 9:00 Russia +09/+10 1991 Mar 31 2:00s
8:00 Russia YAK%sT 1992 Jan 19 2:00s 8:00 Russia +08/+09 1992 Jan 19 2:00s
9:00 Russia YAK%sT 2011 Mar 27 2:00s 9:00 Russia +09/+10 2011 Mar 27 2:00s
10:00 - YAKT 2014 Oct 26 2:00s 10:00 - +10 2014 Oct 26 2:00s
8:00 - IRKT 2016 Mar 27 2:00 8:00 - +08 2016 Mar 27 2:00
9:00 - YAKT 9:00 - +09
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
...@@ -2958,12 +2979,12 @@ Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15 ...@@ -2958,12 +2979,12 @@ Zone Asia/Chita 7:33:52 - LMT 1919 Dec 15
# Byalokoz 1919 says Yakutsk was 8:38:58. # Byalokoz 1919 says Yakutsk was 8:38:58.
Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15 Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15
8:00 - YAKT 1930 Jun 21 # Yakutsk Time 8:00 - +08 1930 Jun 21
9:00 Russia YAK%sT 1991 Mar 31 2:00s 9:00 Russia +09/+10 1991 Mar 31 2:00s
8:00 Russia YAK%sT 1992 Jan 19 2:00s 8:00 Russia +08/+09 1992 Jan 19 2:00s
9:00 Russia YAK%sT 2011 Mar 27 2:00s 9:00 Russia +09/+10 2011 Mar 27 2:00s
10:00 - YAKT 2014 Oct 26 2:00s 10:00 - +10 2014 Oct 26 2:00s
9:00 - YAKT 9:00 - +09
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
...@@ -2981,12 +3002,12 @@ Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15 ...@@ -2981,12 +3002,12 @@ Zone Asia/Yakutsk 8:38:58 - LMT 1919 Dec 15
# Go with Byalokoz. # Go with Byalokoz.
Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15 Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15
9:00 - VLAT 1930 Jun 21 # Vladivostok Time 9:00 - +09 1930 Jun 21
10:00 Russia VLA%sT 1991 Mar 31 2:00s 10:00 Russia +10/+11 1991 Mar 31 2:00s
9:00 Russia VLA%sT 1992 Jan 19 2:00s 9:00 Russia +09/+10 1992 Jan 19 2:00s
10:00 Russia VLA%sT 2011 Mar 27 2:00s 10:00 Russia +10/+11 2011 Mar 27 2:00s
11:00 - VLAT 2014 Oct 26 2:00s 11:00 - +11 2014 Oct 26 2:00s
10:00 - VLAT 10:00 - +10
# From Tim Parenti (2014-07-03): # From Tim Parenti (2014-07-03):
...@@ -3004,14 +3025,14 @@ Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15 ...@@ -3004,14 +3025,14 @@ Zone Asia/Vladivostok 8:47:31 - LMT 1922 Nov 15
# This transition is no doubt wrong, but we have no better info. # This transition is no doubt wrong, but we have no better info.
Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15 Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15
8:00 - YAKT 1930 Jun 21 # Yakutsk Time 8:00 - +08 1930 Jun 21
9:00 Russia YAK%sT 1991 Mar 31 2:00s 9:00 Russia +09/+10 1991 Mar 31 2:00s
8:00 Russia YAK%sT 1992 Jan 19 2:00s 8:00 Russia +08/+09 1992 Jan 19 2:00s
9:00 Russia YAK%sT 2004 9:00 Russia +09/+10 2004
10:00 Russia VLA%sT 2011 Mar 27 2:00s 10:00 Russia +10/+11 2011 Mar 27 2:00s
11:00 - VLAT 2011 Sep 13 0:00s # Decree 725? 11:00 - +11 2011 Sep 13 0:00s # Decree 725?
10:00 - YAKT 2014 Oct 26 2:00s 10:00 - +10 2014 Oct 26 2:00s
9:00 - YAKT 9:00 - +09
# From Tim Parenti (2014-07-03): # From Tim Parenti (2014-07-03):
...@@ -3027,15 +3048,14 @@ Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15 ...@@ -3027,15 +3048,14 @@ Zone Asia/Khandyga 9:02:13 - LMT 1919 Dec 15
# The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long. # The Zone name should be Asia/Yuzhno-Sakhalinsk, but that's too long.
Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23 Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23
9:00 - JCST 1937 Oct 1 9:00 - +09 1945 Aug 25
9:00 - JST 1945 Aug 25 11:00 Russia +11/+12 1991 Mar 31 2:00s # Sakhalin T
11:00 Russia SAK%sT 1991 Mar 31 2:00s # Sakhalin T 10:00 Russia +10/+11 1992 Jan 19 2:00s
10:00 Russia SAK%sT 1992 Jan 19 2:00s 11:00 Russia +11/+12 1997 Mar lastSun 2:00s
11:00 Russia SAK%sT 1997 Mar lastSun 2:00s 10:00 Russia +10/+11 2011 Mar 27 2:00s
10:00 Russia SAK%sT 2011 Mar 27 2:00s 11:00 - +11 2014 Oct 26 2:00s
11:00 - SAKT 2014 Oct 26 2:00s 10:00 - +10 2016 Mar 27 2:00s
10:00 - SAKT 2016 Mar 27 2:00s 11:00 - +11
11:00 - SAKT
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2009-11-29):
...@@ -3058,13 +3078,13 @@ Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23 ...@@ -3058,13 +3078,13 @@ Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23
# http://publication.pravo.gov.ru/Document/View/0001201604050038 # http://publication.pravo.gov.ru/Document/View/0001201604050038
Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 Zone Asia/Magadan 10:03:12 - LMT 1924 May 2
10:00 - MAGT 1930 Jun 21 # Magadan Time 10:00 - +10 1930 Jun 21 # Magadan Time
11:00 Russia MAG%sT 1991 Mar 31 2:00s 11:00 Russia +11/+12 1991 Mar 31 2:00s
10:00 Russia MAG%sT 1992 Jan 19 2:00s 10:00 Russia +10/+11 1992 Jan 19 2:00s
11:00 Russia MAG%sT 2011 Mar 27 2:00s 11:00 Russia +11/+12 2011 Mar 27 2:00s
12:00 - MAGT 2014 Oct 26 2:00s 12:00 - +12 2014 Oct 26 2:00s
10:00 - MAGT 2016 Apr 24 2:00s 10:00 - +10 2016 Apr 24 2:00s
11:00 - MAGT 11:00 - +11
# From Tim Parenti (2014-07-06): # From Tim Parenti (2014-07-06):
...@@ -3107,17 +3127,14 @@ Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 ...@@ -3107,17 +3127,14 @@ Zone Asia/Magadan 10:03:12 - LMT 1924 May 2
# in Russian.) In addition, Srednekolymsk appears to be a much older # in Russian.) In addition, Srednekolymsk appears to be a much older
# settlement and the population of Zyryanka seems to be declining. # settlement and the population of Zyryanka seems to be declining.
# Go with Srednekolymsk. # Go with Srednekolymsk.
#
# Since Magadan Oblast moves to UTC+10 on 2014-10-26, we cannot keep using MAGT
# as the abbreviation. Use SRET instead.
Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2
10:00 - MAGT 1930 Jun 21 # Magadan Time 10:00 - +10 1930 Jun 21
11:00 Russia MAG%sT 1991 Mar 31 2:00s 11:00 Russia +11/+12 1991 Mar 31 2:00s
10:00 Russia MAG%sT 1992 Jan 19 2:00s 10:00 Russia +10/+11 1992 Jan 19 2:00s
11:00 Russia MAG%sT 2011 Mar 27 2:00s 11:00 Russia +11/+12 2011 Mar 27 2:00s
12:00 - MAGT 2014 Oct 26 2:00s 12:00 - +12 2014 Oct 26 2:00s
11:00 - SRET # Srednekolymsk Time 11:00 - +11
# From Tim Parenti (2014-07-03): # From Tim Parenti (2014-07-03):
...@@ -3135,14 +3152,14 @@ Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 ...@@ -3135,14 +3152,14 @@ Zone Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2
# UTC+12 since at least then, too. # UTC+12 since at least then, too.
Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15 Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15
8:00 - YAKT 1930 Jun 21 # Yakutsk Time 8:00 - +08 1930 Jun 21
9:00 Russia YAKT 1981 Apr 1 9:00 Russia +09/+10 1981 Apr 1
11:00 Russia MAG%sT 1991 Mar 31 2:00s 11:00 Russia +11/+12 1991 Mar 31 2:00s
10:00 Russia MAG%sT 1992 Jan 19 2:00s 10:00 Russia +10/+11 1992 Jan 19 2:00s
11:00 Russia MAG%sT 2011 Mar 27 2:00s 11:00 Russia +11/+12 2011 Mar 27 2:00s
12:00 - MAGT 2011 Sep 13 0:00s # Decree 725? 12:00 - +12 2011 Sep 13 0:00s # Decree 725?
11:00 - VLAT 2014 Oct 26 2:00s 11:00 - +11 2014 Oct 26 2:00s
10:00 - VLAT 10:00 - +10
# From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25): # From Tim Parenti (2014-07-03), per Oscar van Vlijmen (2001-08-25):
...@@ -3155,12 +3172,12 @@ Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15 ...@@ -3155,12 +3172,12 @@ Zone Asia/Ust-Nera 9:32:54 - LMT 1919 Dec 15
# The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps # The Zone name should be Asia/Petropavlovsk-Kamchatski or perhaps
# Asia/Petropavlovsk-Kamchatsky, but these are too long. # Asia/Petropavlovsk-Kamchatsky, but these are too long.
Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10 Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10
11:00 - PETT 1930 Jun 21 # P-K Time 11:00 - +11 1930 Jun 21
12:00 Russia PET%sT 1991 Mar 31 2:00s 12:00 Russia +12/+13 1991 Mar 31 2:00s
11:00 Russia PET%sT 1992 Jan 19 2:00s 11:00 Russia +11/+12 1992 Jan 19 2:00s
12:00 Russia PET%sT 2010 Mar 28 2:00s 12:00 Russia +12/+13 2010 Mar 28 2:00s
11:00 Russia PET%sT 2011 Mar 27 2:00s 11:00 Russia +11/+12 2011 Mar 27 2:00s
12:00 - PETT 12:00 - +12
# From Tim Parenti (2014-07-03): # From Tim Parenti (2014-07-03):
...@@ -3168,13 +3185,13 @@ Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10 ...@@ -3168,13 +3185,13 @@ Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10
# 87 RU-CHU Chukotka Autonomous Okrug # 87 RU-CHU Chukotka Autonomous Okrug
Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2
12:00 - ANAT 1930 Jun 21 # Anadyr Time 12:00 - +12 1930 Jun 21
13:00 Russia ANA%sT 1982 Apr 1 0:00s 13:00 Russia +13/+14 1982 Apr 1 0:00s
12:00 Russia ANA%sT 1991 Mar 31 2:00s 12:00 Russia +12/+13 1991 Mar 31 2:00s
11:00 Russia ANA%sT 1992 Jan 19 2:00s 11:00 Russia +11/+12 1992 Jan 19 2:00s
12:00 Russia ANA%sT 2010 Mar 28 2:00s 12:00 Russia +12/+13 2010 Mar 28 2:00s
11:00 Russia ANA%sT 2011 Mar 27 2:00s 11:00 Russia +11/+12 2011 Mar 27 2:00s
12:00 - ANAT 12:00 - +12
# San Marino # San Marino
...@@ -3495,6 +3512,14 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment. ...@@ -3495,6 +3512,14 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment.
# Engineered Standard Time," said Twitter user @aysekarahasan. # Engineered Standard Time," said Twitter user @aysekarahasan.
# http://www.bbc.com/news/world-europe-34631326 # http://www.bbc.com/news/world-europe-34631326
# From Burak AYDIN (2016-09-08):
# Turkey will stay in Daylight Saving Time even in winter....
# http://www.resmigazete.gov.tr/eskiler/2016/09/20160908-2.pdf
#
# From Paul Eggert (2016-09-07):
# The change is permanent, so this is the new standard time in Turkey.
# It takes effect today, which is not much notice.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # 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 - May 1 0:00 1:00 S
Rule Turkey 1916 only - Oct 1 0:00 0 - Rule Turkey 1916 only - Oct 1 0:00 0 -
...@@ -3558,7 +3583,7 @@ Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 - ...@@ -3558,7 +3583,7 @@ Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 -
Zone Europe/Istanbul 1:55:52 - LMT 1880 Zone Europe/Istanbul 1:55:52 - LMT 1880
1:56:56 - IMT 1910 Oct # Istanbul Mean Time? 1:56:56 - IMT 1910 Oct # Istanbul Mean Time?
2:00 Turkey EE%sT 1978 Oct 15 2:00 Turkey EE%sT 1978 Oct 15
3:00 Turkey TR%sT 1985 Apr 20 # Turkey Time 3:00 Turkey +03/+04 1985 Apr 20
2:00 Turkey EE%sT 2007 2:00 Turkey EE%sT 2007
2:00 EU EE%sT 2011 Mar 27 1:00u 2:00 EU EE%sT 2011 Mar 27 1:00u
2:00 - EET 2011 Mar 28 1:00u 2:00 - EET 2011 Mar 28 1:00u
...@@ -3566,7 +3591,8 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880 ...@@ -3566,7 +3591,8 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880
2:00 - EET 2014 Mar 31 1:00u 2:00 - EET 2014 Mar 31 1:00u
2:00 EU EE%sT 2015 Oct 25 1:00u 2:00 EU EE%sT 2015 Oct 25 1:00u
2:00 1:00 EEST 2015 Nov 8 1:00u 2:00 1:00 EEST 2015 Nov 8 1:00u
2:00 EU EE%sT 2:00 EU EE%sT 2016 Sep 7
3:00 - +03
Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
# Ukraine # Ukraine
......
...@@ -24,9 +24,10 @@ ...@@ -24,9 +24,10 @@
# This file is in the public domain, so clarified as of # This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson. # 2009-05-17 by Arthur David Olson.
# For companies who don't want to put time zone specification in # For distributors who don't want to put time zone specification in
# their installation procedures. When users run date, they'll get the message. # their installation procedures. Users that run 'date' will get the
# Also useful for the "comp.sources" version. # time zone abbreviation "-00", indicating that the actual time zone
# is unknown.
# Zone NAME GMTOFF RULES FORMAT # Zone NAME GMTOFF RULES FORMAT
Zone Factory 0 - "Local time zone must be set--see zic manual page" Zone Factory 0 - -00
...@@ -79,6 +79,7 @@ Leap 2005 Dec 31 23:59:60 + S ...@@ -79,6 +79,7 @@ Leap 2005 Dec 31 23:59:60 + S
Leap 2008 Dec 31 23:59:60 + S Leap 2008 Dec 31 23:59:60 + S
Leap 2012 Jun 30 23:59:60 + S Leap 2012 Jun 30 23:59:60 + S
Leap 2015 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 C51 # Updated through IERS Bulletin C52
# File expires on: 28 December 2016 # File expires on: 28 June 2017
...@@ -436,11 +436,42 @@ Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04 ...@@ -436,11 +436,42 @@ Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04
# north of the Salmon River, and the towns of Burgdorf and Warren), # 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 3/4 of
# Malheur county), and Washington # Malheur county), and Washington
# From Paul Eggert (2016-08-20):
# In early February 1948, in response to California's electricity shortage,
# PG&E changed power frequency from 60 to 59.5 Hz during daylight hours,
# causing electric clocks to lose six minutes per day. (This did not change
# 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
#
# 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
# the fallback transition earlier. See pages 3-4 of:
# http://clerk.assembly.ca.gov/sites/clerk.assembly.ca.gov/files/archive/Statutes/1948/48Vol1_Chapters.pdf
#
# In response:
#
# Governor Warren received a torrent of objecting mail, and it is not too much
# to speculate that the objections to Daylight Saving Time were one important
# factor in the defeat of the Dewey-Warren Presidential ticket in California.
# -- Ross, p 25
#
# On December 8 the governor exercised the option, setting the date to January 1
# (LA Times 1948-12-09). The transition time was 02:00 (LA Times 1949-01-01).
#
# Despite the controversy, in 1949 California voters approved Proposition 12,
# 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
# #
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule CA 1948 only - Mar 14 2:00 1:00 D Rule CA 1948 only - Mar 14 2:01 1:00 D
Rule CA 1949 only - Jan 1 2:00 0 S Rule CA 1949 only - Jan 1 2:00 0 S
Rule CA 1950 1966 - Apr lastSun 2:00 1:00 D Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
Rule CA 1950 1961 - Sep lastSun 2:00 0 S Rule CA 1950 1961 - Sep lastSun 2:00 0 S
Rule CA 1962 1966 - Oct lastSun 2:00 0 S Rule CA 1962 1966 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL] # Zone NAME GMTOFF RULES FORMAT [UNTIL]
...@@ -3304,7 +3335,7 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre ...@@ -3304,7 +3335,7 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre
# indicating that the normal ET rules are followed. # indicating that the normal ET rules are followed.
# #
# From Paul Eggert (2014-08-19): # From Paul Eggert (2014-08-19):
# The 2014-08-13 Cabinet meeting decided to stay on UTC-4 year-round. See: # The 2014-08-13 Cabinet meeting decided to stay on UT -04 year-round. See:
# http://tcweeklynews.com/daylight-savings-time-to-be-maintained-p5353-127.htm # http://tcweeklynews.com/daylight-savings-time-to-be-maintained-p5353-127.htm
# Model this as a switch from EST/EDT to AST ... # Model this as a switch from EST/EDT to AST ...
# From Chris Walton (2014-11-04): # From Chris Walton (2014-11-04):
......
...@@ -433,9 +433,9 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S ...@@ -433,9 +433,9 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S
# stuck on Summer daylight savings time even though the summer is over. # stuck on Summer daylight savings time even though the summer is over.
# From Paul Eggert (2013-09-05): # From Paul Eggert (2013-09-05):
# Perhaps San Luis operates on the legal fiction that it is at UTC-4 # 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 summer time, but ordinary usage typically seems to
# just say it's at UTC-3; see, for example, # just say it's at -03; see, for example,
# http://es.wikipedia.org/wiki/Hora_oficial_argentina # http://es.wikipedia.org/wiki/Hora_oficial_argentina
# We've documented similar situations as being plain changes to # We've documented similar situations as being plain changes to
# standard time, so let's do that here too. This does not change UTC # standard time, so let's do that here too. This does not change UTC
......
...@@ -284,7 +284,7 @@ MH +0709+17112 Pacific/Majuro Marshall Islands (most areas) ...@@ -284,7 +284,7 @@ MH +0709+17112 Pacific/Majuro Marshall Islands (most areas)
MH +0905+16720 Pacific/Kwajalein Kwajalein MH +0905+16720 Pacific/Kwajalein Kwajalein
MK +4159+02126 Europe/Skopje MK +4159+02126 Europe/Skopje
ML +1239-00800 Africa/Bamako ML +1239-00800 Africa/Bamako
MM +1647+09610 Asia/Rangoon MM +1647+09610 Asia/Yangon
MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas) MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas)
MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册