tzinfo 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of tzinfo might be problematic. Click here for more details.

@@ -109,6 +109,28 @@ class TCZoneinfoDataSource < Minitest::Test
109
109
  end
110
110
  end
111
111
  end
112
+
113
+ def test_new_search_zone1970
114
+ Dir.mktmpdir('tzinfo_test_dir1') do |dir1|
115
+ Dir.mktmpdir('tzinfo_test_dir2') do |dir2|
116
+ Dir.mktmpdir('tzinfo_test_dir3') do |dir3|
117
+ Dir.mktmpdir('tzinfo_test_dir4') do |dir4|
118
+ file = File.join(dir1, 'file')
119
+ FileUtils.touch(File.join(dir2, 'zone1970.tab'))
120
+ FileUtils.touch(File.join(dir3, 'iso3166.tab'))
121
+ FileUtils.touch(File.join(dir4, 'zone1970.tab'))
122
+ FileUtils.touch(File.join(dir4, 'iso3166.tab'))
123
+
124
+ ZoneinfoDataSource.search_path = [file, dir2, dir3, dir4]
125
+ ZoneinfoDataSource.alternate_iso3166_tab_search_path = []
126
+
127
+ data_source = ZoneinfoDataSource.new
128
+ assert_equal(dir4, data_source.zoneinfo_dir)
129
+ end
130
+ end
131
+ end
132
+ end
133
+ end
112
134
 
113
135
  def test_new_search_solaris_tab_files
114
136
  # Solaris names the tab files 'tab/country.tab' (iso3166.tab) and
@@ -119,10 +141,10 @@ class TCZoneinfoDataSource < Minitest::Test
119
141
  FileUtils.mkdir(tab)
120
142
  FileUtils.touch(File.join(tab, 'country.tab'))
121
143
  FileUtils.touch(File.join(tab, 'zone_sun.tab'))
122
-
144
+
123
145
  ZoneinfoDataSource.search_path = [dir]
124
146
  ZoneinfoDataSource.alternate_iso3166_tab_search_path = []
125
-
147
+
126
148
  data_source = ZoneinfoDataSource.new
127
149
  assert_equal(dir, data_source.zoneinfo_dir)
128
150
  end
@@ -155,16 +177,19 @@ class TCZoneinfoDataSource < Minitest::Test
155
177
  Dir.mktmpdir('tzinfo_test_dir2') do |dir2|
156
178
  Dir.mktmpdir('tzinfo_test_dir3') do |dir3|
157
179
  Dir.mktmpdir('tzinfo_test_dir4') do |dir4|
158
- file = File.join(dir1, 'file')
159
- FileUtils.touch(file)
160
- FileUtils.touch(File.join(dir2, 'zone.tab'))
161
- FileUtils.touch(File.join(dir3, 'iso3166.tab'))
162
-
163
- ZoneinfoDataSource.search_path = [file, dir2, dir3, dir4]
164
- ZoneinfoDataSource.alternate_iso3166_tab_search_path = []
165
-
166
- assert_raises(ZoneinfoDirectoryNotFound) do
167
- ZoneinfoDataSource.new
180
+ Dir.mktmpdir('tzinfo_test_dir5') do |dir5|
181
+ file = File.join(dir1, 'file')
182
+ FileUtils.touch(file)
183
+ FileUtils.touch(File.join(dir2, 'zone.tab'))
184
+ FileUtils.touch(File.join(dir3, 'zone1970.tab'))
185
+ FileUtils.touch(File.join(dir4, 'iso3166.tab'))
186
+
187
+ ZoneinfoDataSource.search_path = [file, dir2, dir3, dir4, dir5]
188
+ ZoneinfoDataSource.alternate_iso3166_tab_search_path = []
189
+
190
+ assert_raises(ZoneinfoDirectoryNotFound) do
191
+ ZoneinfoDataSource.new
192
+ end
168
193
  end
169
194
  end
170
195
  end
@@ -198,6 +223,16 @@ class TCZoneinfoDataSource < Minitest::Test
198
223
  assert_equal(dir, data_source.zoneinfo_dir)
199
224
  end
200
225
  end
226
+
227
+ def test_new_dir_zone1970
228
+ Dir.mktmpdir('tzinfo_test') do |dir|
229
+ FileUtils.touch(File.join(dir, 'zone1970.tab'))
230
+ FileUtils.touch(File.join(dir, 'iso3166.tab'))
231
+
232
+ data_source = ZoneinfoDataSource.new(dir)
233
+ assert_equal(dir, data_source.zoneinfo_dir)
234
+ end
235
+ end
201
236
 
202
237
  def test_new_dir_solaris_tab_files
203
238
  # Solaris names the tab files 'tab/country.tab' (iso3166.tab) and
@@ -788,6 +823,80 @@ class TCZoneinfoDataSource < Minitest::Test
788
823
  assert_equal(true, info.zones.frozen?)
789
824
  end
790
825
  end
826
+
827
+ def test_load_country_info_check_zones_zone1970
828
+ Dir.mktmpdir('tzinfo_test') do |dir|
829
+ RubyCoreSupport.open_file(File.join(dir, 'iso3166.tab'), 'w', :external_encoding => 'UTF-8') do |iso3166|
830
+ iso3166.puts('# iso3166.tab')
831
+ iso3166.puts('')
832
+ iso3166.puts("AC\tAnother Country")
833
+ iso3166.puts("FC\tFake Country")
834
+ iso3166.puts("OC\tOther Country")
835
+ end
836
+
837
+ # zone.tab will be ignored.
838
+ RubyCoreSupport.open_file(File.join(dir, 'zone.tab'), 'w', :external_encoding => 'UTF-8') do |zone|
839
+ zone.puts('# zone.tab')
840
+ zone.puts('')
841
+ zone.puts("FC\t+513030-0000731\tFake/One\tDescription of one")
842
+ zone.puts("FC\t+353916+1394441\tFake/Two\tAnother description")
843
+ zone.puts("FC\t-2332-04637\tFake/Three\tThis is Three")
844
+ zone.puts("OC\t+5005+01426\tOther/One")
845
+ end
846
+
847
+ # zone1970.tab will be used.
848
+ RubyCoreSupport.open_file(File.join(dir, 'zone1970.tab'), 'w', :external_encoding => 'UTF-8') do |zone|
849
+ zone.puts('# zone1970.tab')
850
+ zone.puts('')
851
+ zone.puts("AC,OC\t+0000+00000\tMiddle/Another/One\tAnother's One")
852
+ zone.puts("FC\t+513030-0000731\tFake/One\tDescription of one")
853
+ zone.puts("FC,OC\t+353916+1394441\tFake/Two\tAnother description")
854
+ zone.puts("FC,OC\t-2332-04637\tFake/Three\tThis is Three")
855
+ zone.puts("OC\t+5005+01426\tOther/One")
856
+ zone.puts("OC\t+5015+11426\tOther/Two")
857
+ end
858
+
859
+ data_source = ZoneinfoDataSource.new(dir)
860
+
861
+ info = data_source.load_country_info('AC')
862
+ assert_equal('AC', info.code)
863
+ assert_equal('Another Country', info.name)
864
+ assert_equal(['Middle/Another/One'], info.zone_identifiers)
865
+ assert_equal(true, info.zone_identifiers.frozen?)
866
+ assert_equal([CountryTimezone.new('Middle/Another/One', Rational(0, 1), Rational(0, 1), "Another's One")], info.zones)
867
+ assert_equal(true, info.zones.frozen?)
868
+
869
+ info = data_source.load_country_info('FC')
870
+ assert_equal('FC', info.code)
871
+ assert_equal('Fake Country', info.name)
872
+ assert_equal(['Fake/One', 'Fake/Two', 'Fake/Three'], info.zone_identifiers)
873
+ assert_equal(true, info.zone_identifiers.frozen?)
874
+ assert_equal([
875
+ CountryTimezone.new('Fake/One', Rational(6181, 120), Rational(-451, 3600), 'Description of one'),
876
+ CountryTimezone.new('Fake/Two', Rational(32089, 900), Rational(503081, 3600), 'Another description'),
877
+ CountryTimezone.new('Fake/Three', Rational(-353, 15), Rational(-2797, 60), 'This is Three')], info.zones)
878
+ assert_equal(true, info.zones.frozen?)
879
+
880
+ # Testing the ordering of zones. A zone can either be primary (country
881
+ # code is the first in the first column), or secondary (country code is
882
+ # not the first). Should return all the primaries first in the order they
883
+ # appeared in the file, followed by all the secondaries in the order they
884
+ # appeared in file.
885
+
886
+ info = data_source.load_country_info('OC')
887
+ assert_equal('OC', info.code)
888
+ assert_equal('Other Country', info.name)
889
+ assert_equal(['Other/One', 'Other/Two', 'Middle/Another/One', 'Fake/Two', 'Fake/Three'], info.zone_identifiers)
890
+ assert_equal(true, info.zone_identifiers.frozen?)
891
+ assert_equal([
892
+ CountryTimezone.new('Other/One', Rational(601, 12), Rational( 433, 30)),
893
+ CountryTimezone.new('Other/Two', Rational(201, 4), Rational(3433, 30)),
894
+ CountryTimezone.new('Middle/Another/One', Rational(0, 1), Rational(0, 1), "Another's One"),
895
+ CountryTimezone.new('Fake/Two', Rational(32089, 900), Rational(503081, 3600), 'Another description'),
896
+ CountryTimezone.new('Fake/Three', Rational(-353, 15), Rational(-2797, 60), 'This is Three')], info.zones)
897
+ assert_equal(true, info.zones.frozen?)
898
+ end
899
+ end
791
900
 
792
901
  def test_load_country_info_check_zones_solaris_tab_files
793
902
  # Solaris uses 5 columns instead of the usual 4 in zone_sun.tab.
@@ -923,8 +1032,11 @@ class TCZoneinfoDataSource < Minitest::Test
923
1032
  end
924
1033
 
925
1034
  def test_load_country_info_utf8
926
- # Files are in ASCII, but may change to UTF-8 (a superset of ASCII) in
927
- # the future.
1035
+ # iso3166.tab is currently in ASCII (as of tzdata 2014f), but will be
1036
+ # changed to UTF-8 in the future.
1037
+
1038
+ # zone.tab is in ASCII, with no plans to change. Since ASCII is a subset of
1039
+ # UTF-8, test that this is loaded in UTF-8 anyway.
928
1040
 
929
1041
  Dir.mktmpdir('tzinfo_test') do |dir|
930
1042
  RubyCoreSupport.open_file(File.join(dir, 'iso3166.tab'), 'w', :external_encoding => 'UTF-8') do |iso3166|
@@ -944,6 +1056,31 @@ class TCZoneinfoDataSource < Minitest::Test
944
1056
  assert_equal([CountryTimezone.new('Unicode✓/One', Rational(6181, 120), Rational(-451, 3600), 'Unicode Description ✓')], info.zones)
945
1057
  end
946
1058
  end
1059
+
1060
+ def test_load_country_info_utf8_zone1970
1061
+ # iso3166.tab is currently in ASCII (as of tzdata 2014f), but will be
1062
+ # changed to UTF-8 in the future.
1063
+
1064
+ # zone1970.tab is in UTF-8.
1065
+
1066
+ Dir.mktmpdir('tzinfo_test') do |dir|
1067
+ RubyCoreSupport.open_file(File.join(dir, 'iso3166.tab'), 'w', :external_encoding => 'UTF-8') do |iso3166|
1068
+ iso3166.puts("UT\tUnicode Test ✓")
1069
+ end
1070
+
1071
+ RubyCoreSupport.open_file(File.join(dir, 'zone1970.tab'), 'w', :external_encoding => 'UTF-8') do |zone|
1072
+ zone.puts("UT\t+513030-0000731\tUnicode✓/One\tUnicode Description ✓")
1073
+ end
1074
+
1075
+ data_source = ZoneinfoDataSource.new(dir)
1076
+
1077
+ info = data_source.load_country_info('UT')
1078
+ assert_equal('UT', info.code)
1079
+ assert_equal('Unicode Test ✓', info.name)
1080
+ assert_equal(['Unicode✓/One'], info.zone_identifiers)
1081
+ assert_equal([CountryTimezone.new('Unicode✓/One', Rational(6181, 120), Rational(-451, 3600), 'Unicode Description ✓')], info.zones)
1082
+ end
1083
+ end
947
1084
 
948
1085
  def test_country_codes
949
1086
  file_codes = []
@@ -12,8 +12,8 @@ module TZInfo
12
12
 
13
13
  timezone 'Australia/Melbourne' do |tz|
14
14
  tz.offset :o0, 34792, 0, :LMT
15
- tz.offset :o1, 36000, 0, :EST
16
- tz.offset :o2, 36000, 3600, :EST
15
+ tz.offset :o1, 36000, 0, :AEST
16
+ tz.offset :o2, 36000, 3600, :AEDT
17
17
 
18
18
  tz.transition 1895, 1, :o1, -2364111592, 26062831051, 10800
19
19
  tz.transition 1916, 12, :o2, -1672567140, 3486569881, 1440
@@ -19,10 +19,10 @@ module TZInfo
19
19
  c.timezone 'Asia/Kabul', 2071, 60, 346, 5
20
20
  end
21
21
  country 'AG', 'Antigua & Barbuda' do |c|
22
- c.timezone 'America/Antigua', 341, 20, -309, 5
22
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
23
23
  end
24
24
  country 'AI', 'Anguilla' do |c|
25
- c.timezone 'America/Anguilla', 91, 5, -946, 15
25
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
26
26
  end
27
27
  country 'AL', 'Albania' do |c|
28
28
  c.timezone 'Europe/Tirane', 124, 3, 119, 6
@@ -31,10 +31,9 @@ module TZInfo
31
31
  c.timezone 'Asia/Yerevan', 2411, 60, 89, 2
32
32
  end
33
33
  country 'AO', 'Angola' do |c|
34
- c.timezone 'Africa/Luanda', -44, 5, 397, 30
34
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
35
35
  end
36
36
  country 'AQ', 'Antarctica' do |c|
37
- c.timezone 'Antarctica/McMurdo', -467, 6, 833, 5, 'McMurdo, South Pole, Scott (New Zealand time)'
38
37
  c.timezone 'Antarctica/Rothera', -2027, 30, -1022, 15, 'Rothera Station, Adelaide Island'
39
38
  c.timezone 'Antarctica/Palmer', -324, 5, -641, 10, 'Palmer Station, Anvers Island'
40
39
  c.timezone 'Antarctica/Mawson', -338, 5, 3773, 60, 'Mawson Station, Holme Bay'
@@ -44,13 +43,14 @@ module TZInfo
44
43
  c.timezone 'Antarctica/DumontDUrville', -200, 3, 8401, 60, 'Dumont-d\'Urville Station, Terre Adelie'
45
44
  c.timezone 'Antarctica/Syowa', -124211, 1800, 3959, 100, 'Syowa Station, E Ongul I'
46
45
  c.timezone 'Antarctica/Troll', -259241, 3600, 507, 200, 'Troll Station, Queen Maud Land'
46
+ c.timezone 'Pacific/Auckland', -553, 15, 5243, 30, 'New Zealand time'
47
47
  end
48
48
  country 'AR', 'Argentina' do |c|
49
49
  c.timezone 'America/Argentina/Buenos_Aires', -173, 5, -1169, 20, 'Buenos Aires (BA, CF)'
50
50
  c.timezone 'America/Argentina/Cordoba', -157, 5, -3851, 60, 'most locations (CB, CC, CN, ER, FM, MN, SE, SF)'
51
51
  c.timezone 'America/Argentina/Salta', -1487, 60, -785, 12, '(SA, LP, NQ, RN)'
52
52
  c.timezone 'America/Argentina/Jujuy', -1451, 60, -653, 10, 'Jujuy (JY)'
53
- c.timezone 'America/Argentina/Tucuman', -1609, 60, -3913, 60, 'Tucuman (TM)'
53
+ c.timezone 'America/Argentina/Tucuman', -1609, 60, -3913, 60, 'Tucumán (TM)'
54
54
  c.timezone 'America/Argentina/Catamarca', -427, 15, -3947, 60, 'Catamarca (CT), Chubut (CH)'
55
55
  c.timezone 'America/Argentina/La_Rioja', -883, 30, -1337, 20, 'La Rioja (LR)'
56
56
  c.timezone 'America/Argentina/San_Juan', -473, 15, -4111, 60, 'San Juan (SJ)'
@@ -60,7 +60,7 @@ module TZInfo
60
60
  c.timezone 'America/Argentina/Ushuaia', -274, 5, -683, 10, 'Tierra del Fuego (TF)'
61
61
  end
62
62
  country 'AS', 'Samoa (American)' do |c|
63
- c.timezone 'Pacific/Pago_Pago', -214, 15, -1707, 10
63
+ c.timezone 'Pacific/Pago_Pago', -214, 15, -1707, 10, 'Samoa, Midway'
64
64
  end
65
65
  country 'AT', 'Austria' do |c|
66
66
  c.timezone 'Europe/Vienna', 2893, 60, 49, 3
@@ -81,16 +81,16 @@ module TZInfo
81
81
  c.timezone 'Australia/Eucla', -1903, 60, 1933, 15, 'Western Australia - Eucla area'
82
82
  end
83
83
  country 'AW', 'Aruba' do |c|
84
- c.timezone 'America/Aruba', 25, 2, -2099, 30
84
+ c.timezone 'America/Curacao', 731, 60, -69, 1
85
85
  end
86
86
  country 'AX', 'Aaland Islands' do |c|
87
- c.timezone 'Europe/Mariehamn', 601, 10, 399, 20
87
+ c.timezone 'Europe/Helsinki', 361, 6, 749, 30
88
88
  end
89
89
  country 'AZ', 'Azerbaijan' do |c|
90
90
  c.timezone 'Asia/Baku', 2423, 60, 997, 20
91
91
  end
92
92
  country 'BA', 'Bosnia & Herzegovina' do |c|
93
- c.timezone 'Europe/Sarajevo', 658, 15, 221, 12
93
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
94
94
  end
95
95
  country 'BB', 'Barbados' do |c|
96
96
  c.timezone 'America/Barbados', 131, 10, -3577, 60
@@ -102,22 +102,22 @@ module TZInfo
102
102
  c.timezone 'Europe/Brussels', 305, 6, 13, 3
103
103
  end
104
104
  country 'BF', 'Burkina Faso' do |c|
105
- c.timezone 'Africa/Ouagadougou', 371, 30, -91, 60
105
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
106
106
  end
107
107
  country 'BG', 'Bulgaria' do |c|
108
108
  c.timezone 'Europe/Sofia', 2561, 60, 1399, 60
109
109
  end
110
110
  country 'BH', 'Bahrain' do |c|
111
- c.timezone 'Asia/Bahrain', 1583, 60, 607, 12
111
+ c.timezone 'Asia/Qatar', 1517, 60, 773, 15
112
112
  end
113
113
  country 'BI', 'Burundi' do |c|
114
- c.timezone 'Africa/Bujumbura', -203, 60, 881, 30
114
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
115
115
  end
116
116
  country 'BJ', 'Benin' do |c|
117
- c.timezone 'Africa/Porto-Novo', 389, 60, 157, 60
117
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
118
118
  end
119
119
  country 'BL', 'St Barthelemy' do |c|
120
- c.timezone 'America/St_Barthelemy', 1073, 60, -1257, 20
120
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
121
121
  end
122
122
  country 'BM', 'Bermuda' do |c|
123
123
  c.timezone 'Atlantic/Bermuda', 1937, 60, -1943, 30
@@ -129,11 +129,11 @@ module TZInfo
129
129
  c.timezone 'America/La_Paz', -33, 2, -1363, 20
130
130
  end
131
131
  country 'BQ', 'Caribbean Netherlands' do |c|
132
- c.timezone 'America/Kralendijk', 14581, 1200, -20483, 300
132
+ c.timezone 'America/Curacao', 731, 60, -69, 1
133
133
  end
134
134
  country 'BR', 'Brazil' do |c|
135
135
  c.timezone 'America/Noronha', -77, 20, -389, 12, 'Atlantic islands'
136
- c.timezone 'America/Belem', -29, 20, -2909, 60, 'Amapa, E Para'
136
+ c.timezone 'America/Belem', -29, 20, -2909, 60, 'Amapá, E Pará'
137
137
  c.timezone 'America/Fortaleza', -223, 60, -77, 2, 'NE Brazil (MA, PI, CE, RN, PB)'
138
138
  c.timezone 'America/Recife', -161, 20, -349, 10, 'Pernambuco'
139
139
  c.timezone 'America/Araguaina', -36, 5, -241, 5, 'Tocantins'
@@ -142,8 +142,8 @@ module TZInfo
142
142
  c.timezone 'America/Sao_Paulo', -353, 15, -2797, 60, 'S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)'
143
143
  c.timezone 'America/Campo_Grande', -409, 20, -3277, 60, 'Mato Grosso do Sul'
144
144
  c.timezone 'America/Cuiaba', -187, 12, -673, 12, 'Mato Grosso'
145
- c.timezone 'America/Santarem', -73, 30, -823, 15, 'W Para'
146
- c.timezone 'America/Porto_Velho', -263, 30, -639, 10, 'Rondonia'
145
+ c.timezone 'America/Santarem', -73, 30, -823, 15, 'W Pará'
146
+ c.timezone 'America/Porto_Velho', -263, 30, -639, 10, 'Rondônia'
147
147
  c.timezone 'America/Boa_Vista', 169, 60, -182, 3, 'Roraima'
148
148
  c.timezone 'America/Manaus', -47, 15, -3601, 60, 'E Amazonas'
149
149
  c.timezone 'America/Eirunepe', -20, 3, -1048, 15, 'W Amazonas'
@@ -157,7 +157,7 @@ module TZInfo
157
157
  end
158
158
  country 'BV', 'Bouvet Island'
159
159
  country 'BW', 'Botswana' do |c|
160
- c.timezone 'Africa/Gaborone', -493, 20, 311, 12
160
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
161
161
  end
162
162
  country 'BY', 'Belarus' do |c|
163
163
  c.timezone 'Europe/Minsk', 539, 10, 827, 30
@@ -177,7 +177,7 @@ module TZInfo
177
177
  c.timezone 'America/Thunder_Bay', 2903, 60, -357, 4, 'Eastern Time - Thunder Bay, Ontario'
178
178
  c.timezone 'America/Iqaluit', 956, 15, -1027, 15, 'Eastern Time - east Nunavut - most locations'
179
179
  c.timezone 'America/Pangnirtung', 992, 15, -986, 15, 'Eastern Time - Pangnirtung, Nunavut'
180
- c.timezone 'America/Resolute', 33613, 450, -22759, 240, 'Central Standard Time - Resolute, Nunavut'
180
+ c.timezone 'America/Resolute', 33613, 450, -22759, 240, 'Central Time - Resolute, Nunavut'
181
181
  c.timezone 'America/Atikokan', 175531, 3600, -54973, 600, 'Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut'
182
182
  c.timezone 'America/Rankin_Inlet', 3769, 60, -331499, 3600, 'Central Time - central Nunavut'
183
183
  c.timezone 'America/Winnipeg', 2993, 60, -1943, 20, 'Central Time - Manitoba & west Ontario'
@@ -198,17 +198,17 @@ module TZInfo
198
198
  c.timezone 'Indian/Cocos', -73, 6, 1163, 12
199
199
  end
200
200
  country 'CD', 'Congo (Dem. Rep.)' do |c|
201
- c.timezone 'Africa/Kinshasa', -43, 10, 153, 10, 'west Dem. Rep. of Congo'
202
- c.timezone 'Africa/Lubumbashi', -35, 3, 412, 15, 'east Dem. Rep. of Congo'
201
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
202
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
203
203
  end
204
204
  country 'CF', 'Central African Rep.' do |c|
205
- c.timezone 'Africa/Bangui', 131, 30, 223, 12
205
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
206
206
  end
207
207
  country 'CG', 'Congo (Rep.)' do |c|
208
- c.timezone 'Africa/Brazzaville', -64, 15, 917, 60
208
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
209
209
  end
210
210
  country 'CH', 'Switzerland' do |c|
211
- c.timezone 'Europe/Zurich', 2843, 60, 128, 15
211
+ c.timezone 'Europe/Zurich', 2843, 60, 128, 15, 'Swiss time'
212
212
  end
213
213
  country 'CI', 'Cote d\'Ivoire' do |c|
214
214
  c.timezone 'Africa/Abidjan', 319, 60, -121, 30
@@ -218,17 +218,14 @@ module TZInfo
218
218
  end
219
219
  country 'CL', 'Chile' do |c|
220
220
  c.timezone 'America/Santiago', -669, 20, -212, 3, 'most locations'
221
- c.timezone 'Pacific/Easter', -543, 20, -3283, 30, 'Easter Island & Sala y Gomez'
221
+ c.timezone 'Pacific/Easter', -543, 20, -3283, 30, 'Easter Island'
222
222
  end
223
223
  country 'CM', 'Cameroon' do |c|
224
- c.timezone 'Africa/Douala', 81, 20, 97, 10
224
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
225
225
  end
226
226
  country 'CN', 'China' do |c|
227
- c.timezone 'Asia/Shanghai', 937, 30, 1822, 15, 'east China - Beijing, Guangdong, Shanghai, etc.'
228
- c.timezone 'Asia/Harbin', 183, 4, 7601, 60, 'Heilongjiang (except Mohe), Jilin'
229
- c.timezone 'Asia/Chongqing', 887, 30, 1279, 12, 'central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.'
230
- c.timezone 'Asia/Urumqi', 219, 5, 1051, 12, 'most of Tibet & Xinjiang'
231
- c.timezone 'Asia/Kashgar', 2369, 60, 4559, 60, 'west Tibet & Xinjiang'
227
+ c.timezone 'Asia/Shanghai', 937, 30, 1822, 15, 'Beijing Time'
228
+ c.timezone 'Asia/Urumqi', 219, 5, 1051, 12, 'Xinjiang Time'
232
229
  end
233
230
  country 'CO', 'Colombia' do |c|
234
231
  c.timezone 'America/Bogota', 23, 5, -889, 12
@@ -255,17 +252,17 @@ module TZInfo
255
252
  c.timezone 'Europe/Prague', 601, 12, 433, 30
256
253
  end
257
254
  country 'DE', 'Germany' do |c|
258
- c.timezone 'Europe/Berlin', 105, 2, 401, 30, 'most locations'
259
- c.timezone 'Europe/Busingen', 477, 10, 521, 60, 'Busingen'
255
+ c.timezone 'Europe/Berlin', 105, 2, 401, 30, 'Berlin time'
256
+ c.timezone 'Europe/Zurich', 2843, 60, 128, 15, 'Swiss time'
260
257
  end
261
258
  country 'DJ', 'Djibouti' do |c|
262
- c.timezone 'Africa/Djibouti', 58, 5, 863, 20
259
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
263
260
  end
264
261
  country 'DK', 'Denmark' do |c|
265
262
  c.timezone 'Europe/Copenhagen', 167, 3, 151, 12
266
263
  end
267
264
  country 'DM', 'Dominica' do |c|
268
- c.timezone 'America/Dominica', 153, 10, -307, 5
265
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
269
266
  end
270
267
  country 'DO', 'Dominican Republic' do |c|
271
268
  c.timezone 'America/Santo_Domingo', 277, 15, -699, 10
@@ -275,7 +272,7 @@ module TZInfo
275
272
  end
276
273
  country 'EC', 'Ecuador' do |c|
277
274
  c.timezone 'America/Guayaquil', -13, 6, -479, 6, 'mainland'
278
- c.timezone 'Pacific/Galapagos', -9, 10, -448, 5, 'Galapagos Islands'
275
+ c.timezone 'Pacific/Galapagos', -9, 10, -448, 5, 'Galápagos Islands'
279
276
  end
280
277
  country 'EE', 'Estonia' do |c|
281
278
  c.timezone 'Europe/Tallinn', 713, 12, 99, 4
@@ -287,7 +284,7 @@ module TZInfo
287
284
  c.timezone 'Africa/El_Aaiun', 543, 20, -66, 5
288
285
  end
289
286
  country 'ER', 'Eritrea' do |c|
290
- c.timezone 'Africa/Asmara', 46, 3, 2333, 60
287
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
291
288
  end
292
289
  country 'ES', 'Spain' do |c|
293
290
  c.timezone 'Europe/Madrid', 202, 5, -221, 60, 'mainland'
@@ -295,7 +292,7 @@ module TZInfo
295
292
  c.timezone 'Atlantic/Canary', 281, 10, -77, 5, 'Canary Islands'
296
293
  end
297
294
  country 'ET', 'Ethiopia' do |c|
298
- c.timezone 'Africa/Addis_Ababa', 271, 30, 387, 10
295
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
299
296
  end
300
297
  country 'FI', 'Finland' do |c|
301
298
  c.timezone 'Europe/Helsinki', 361, 6, 749, 30
@@ -318,13 +315,13 @@ module TZInfo
318
315
  c.timezone 'Europe/Paris', 733, 15, 7, 3
319
316
  end
320
317
  country 'GA', 'Gabon' do |c|
321
- c.timezone 'Africa/Libreville', 23, 60, 189, 20
318
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
322
319
  end
323
320
  country 'GB', 'Britain (UK)' do |c|
324
321
  c.timezone 'Europe/London', 6181, 120, -451, 3600
325
322
  end
326
323
  country 'GD', 'Grenada' do |c|
327
- c.timezone 'America/Grenada', 241, 20, -247, 4
324
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
328
325
  end
329
326
  country 'GE', 'Georgia' do |c|
330
327
  c.timezone 'Asia/Tbilisi', 2503, 60, 2689, 60
@@ -333,7 +330,7 @@ module TZInfo
333
330
  c.timezone 'America/Cayenne', 74, 15, -157, 3
334
331
  end
335
332
  country 'GG', 'Guernsey' do |c|
336
- c.timezone 'Europe/Guernsey', 989, 20, -38, 15
333
+ c.timezone 'Europe/London', 6181, 120, -451, 3600
337
334
  end
338
335
  country 'GH', 'Ghana' do |c|
339
336
  c.timezone 'Africa/Accra', 111, 20, -13, 60
@@ -348,16 +345,16 @@ module TZInfo
348
345
  c.timezone 'America/Thule', 2297, 30, -4127, 60, 'Thule / Pituffik'
349
346
  end
350
347
  country 'GM', 'Gambia' do |c|
351
- c.timezone 'Africa/Banjul', 202, 15, -333, 20
348
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
352
349
  end
353
350
  country 'GN', 'Guinea' do |c|
354
- c.timezone 'Africa/Conakry', 571, 60, -823, 60
351
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
355
352
  end
356
353
  country 'GP', 'Guadeloupe' do |c|
357
- c.timezone 'America/Guadeloupe', 487, 30, -923, 15
354
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
358
355
  end
359
356
  country 'GQ', 'Equatorial Guinea' do |c|
360
- c.timezone 'Africa/Malabo', 15, 4, 527, 60
357
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
361
358
  end
362
359
  country 'GR', 'Greece' do |c|
363
360
  c.timezone 'Europe/Athens', 1139, 30, 1423, 60
@@ -385,7 +382,7 @@ module TZInfo
385
382
  c.timezone 'America/Tegucigalpa', 141, 10, -5233, 60
386
383
  end
387
384
  country 'HR', 'Croatia' do |c|
388
- c.timezone 'Europe/Zagreb', 229, 5, 479, 30
385
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
389
386
  end
390
387
  country 'HT', 'Haiti' do |c|
391
388
  c.timezone 'America/Port-au-Prince', 278, 15, -217, 3
@@ -406,7 +403,7 @@ module TZInfo
406
403
  c.timezone 'Asia/Jerusalem', 11441, 360, 63403, 1800
407
404
  end
408
405
  country 'IM', 'Isle of Man' do |c|
409
- c.timezone 'Europe/Isle_of_Man', 1083, 20, -67, 15
406
+ c.timezone 'Europe/London', 6181, 120, -451, 3600
410
407
  end
411
408
  country 'IN', 'India' do |c|
412
409
  c.timezone 'Asia/Kolkata', 338, 15, 2651, 30
@@ -427,7 +424,7 @@ module TZInfo
427
424
  c.timezone 'Europe/Rome', 419, 10, 749, 60
428
425
  end
429
426
  country 'JE', 'Jersey' do |c|
430
- c.timezone 'Europe/Jersey', 246, 5, -127, 60
427
+ c.timezone 'Europe/London', 6181, 120, -451, 3600
431
428
  end
432
429
  country 'JM', 'Jamaica' do |c|
433
430
  c.timezone 'America/Jamaica', 12937, 720, -11519, 150
@@ -445,7 +442,7 @@ module TZInfo
445
442
  c.timezone 'Asia/Bishkek', 429, 10, 373, 5
446
443
  end
447
444
  country 'KH', 'Cambodia' do |c|
448
- c.timezone 'Asia/Phnom_Penh', 231, 20, 1259, 12
445
+ c.timezone 'Asia/Bangkok', 55, 4, 6031, 60
449
446
  end
450
447
  country 'KI', 'Kiribati' do |c|
451
448
  c.timezone 'Pacific/Tarawa', 17, 12, 173, 1, 'Gilbert Islands'
@@ -453,10 +450,10 @@ module TZInfo
453
450
  c.timezone 'Pacific/Kiritimati', 28, 15, -472, 3, 'Line Islands'
454
451
  end
455
452
  country 'KM', 'Comoros' do |c|
456
- c.timezone 'Indian/Comoro', -701, 60, 649, 15
453
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
457
454
  end
458
455
  country 'KN', 'St Kitts & Nevis' do |c|
459
- c.timezone 'America/St_Kitts', 173, 10, -3763, 60
456
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
460
457
  end
461
458
  country 'KP', 'Korea (North)' do |c|
462
459
  c.timezone 'Asia/Pyongyang', 2341, 60, 503, 4
@@ -465,10 +462,10 @@ module TZInfo
465
462
  c.timezone 'Asia/Seoul', 751, 20, 3809, 30
466
463
  end
467
464
  country 'KW', 'Kuwait' do |c|
468
- c.timezone 'Asia/Kuwait', 88, 3, 2879, 60
465
+ c.timezone 'Asia/Riyadh', 739, 30, 2803, 60
469
466
  end
470
467
  country 'KY', 'Cayman Islands' do |c|
471
- c.timezone 'America/Cayman', 193, 10, -4883, 60
468
+ c.timezone 'America/Panama', 269, 30, -1193, 15
472
469
  end
473
470
  country 'KZ', 'Kazakhstan' do |c|
474
471
  c.timezone 'Asia/Almaty', 173, 4, 1539, 20, 'most locations'
@@ -478,16 +475,16 @@ module TZInfo
478
475
  c.timezone 'Asia/Oral', 3073, 60, 1027, 20, 'West Kazakhstan'
479
476
  end
480
477
  country 'LA', 'Laos' do |c|
481
- c.timezone 'Asia/Vientiane', 539, 30, 513, 5
478
+ c.timezone 'Asia/Bangkok', 55, 4, 6031, 60
482
479
  end
483
480
  country 'LB', 'Lebanon' do |c|
484
481
  c.timezone 'Asia/Beirut', 2033, 60, 71, 2
485
482
  end
486
483
  country 'LC', 'St Lucia' do |c|
487
- c.timezone 'America/St_Lucia', 841, 60, -61, 1
484
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
488
485
  end
489
486
  country 'LI', 'Liechtenstein' do |c|
490
- c.timezone 'Europe/Vaduz', 943, 20, 571, 60
487
+ c.timezone 'Europe/Zurich', 2843, 60, 128, 15, 'Swiss time'
491
488
  end
492
489
  country 'LK', 'Sri Lanka' do |c|
493
490
  c.timezone 'Asia/Colombo', 104, 15, 1597, 20
@@ -496,7 +493,7 @@ module TZInfo
496
493
  c.timezone 'Africa/Monrovia', 63, 10, -647, 60
497
494
  end
498
495
  country 'LS', 'Lesotho' do |c|
499
- c.timezone 'Africa/Maseru', -442, 15, 55, 2
496
+ c.timezone 'Africa/Johannesburg', -105, 4, 28, 1
500
497
  end
501
498
  country 'LT', 'Lithuania' do |c|
502
499
  c.timezone 'Europe/Vilnius', 3281, 60, 1519, 60
@@ -520,46 +517,46 @@ module TZInfo
520
517
  c.timezone 'Europe/Chisinau', 47, 1, 173, 6
521
518
  end
522
519
  country 'ME', 'Montenegro' do |c|
523
- c.timezone 'Europe/Podgorica', 1273, 30, 289, 15
520
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
524
521
  end
525
522
  country 'MF', 'St Martin (French part)' do |c|
526
- c.timezone 'America/Marigot', 271, 15, -757, 12
523
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
527
524
  end
528
525
  country 'MG', 'Madagascar' do |c|
529
- c.timezone 'Indian/Antananarivo', -227, 12, 2851, 60
526
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
530
527
  end
531
528
  country 'MH', 'Marshall Islands' do |c|
532
529
  c.timezone 'Pacific/Majuro', 143, 20, 856, 5, 'most locations'
533
530
  c.timezone 'Pacific/Kwajalein', 109, 12, 502, 3, 'Kwajalein'
534
531
  end
535
532
  country 'MK', 'Macedonia' do |c|
536
- c.timezone 'Europe/Skopje', 2519, 60, 643, 30
533
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
537
534
  end
538
535
  country 'ML', 'Mali' do |c|
539
- c.timezone 'Africa/Bamako', 253, 20, -8, 1
536
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
540
537
  end
541
538
  country 'MM', 'Myanmar (Burma)' do |c|
542
539
  c.timezone 'Asia/Rangoon', 1007, 60, 577, 6
543
540
  end
544
541
  country 'MN', 'Mongolia' do |c|
545
542
  c.timezone 'Asia/Ulaanbaatar', 575, 12, 6413, 60, 'most locations'
546
- c.timezone 'Asia/Hovd', 2881, 60, 1833, 20, 'Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan'
547
- c.timezone 'Asia/Choibalsan', 721, 15, 229, 2, 'Dornod, Sukhbaatar'
543
+ c.timezone 'Asia/Hovd', 2881, 60, 1833, 20, 'Bayan-Ölgii, Govi-Altai, Hovd, Uvs, Zavkhan'
544
+ c.timezone 'Asia/Choibalsan', 721, 15, 229, 2, 'Dornod, Sükhbaatar'
548
545
  end
549
546
  country 'MO', 'Macau' do |c|
550
547
  c.timezone 'Asia/Macau', 667, 30, 1363, 12
551
548
  end
552
549
  country 'MP', 'Northern Mariana Islands' do |c|
553
- c.timezone 'Pacific/Saipan', 76, 5, 583, 4
550
+ c.timezone 'Pacific/Guam', 202, 15, 579, 4
554
551
  end
555
552
  country 'MQ', 'Martinique' do |c|
556
553
  c.timezone 'America/Martinique', 73, 5, -733, 12
557
554
  end
558
555
  country 'MR', 'Mauritania' do |c|
559
- c.timezone 'Africa/Nouakchott', 181, 10, -319, 20
556
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
560
557
  end
561
558
  country 'MS', 'Montserrat' do |c|
562
- c.timezone 'America/Montserrat', 1003, 60, -3733, 60
559
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
563
560
  end
564
561
  country 'MT', 'Malta' do |c|
565
562
  c.timezone 'Europe/Malta', 359, 10, 871, 60
@@ -571,28 +568,28 @@ module TZInfo
571
568
  c.timezone 'Indian/Maldives', 25, 6, 147, 2
572
569
  end
573
570
  country 'MW', 'Malawi' do |c|
574
- c.timezone 'Africa/Blantyre', -947, 60, 35, 1
571
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
575
572
  end
576
573
  country 'MX', 'Mexico' do |c|
577
574
  c.timezone 'America/Mexico_City', 97, 5, -1983, 20, 'Central Time - most locations'
578
575
  c.timezone 'America/Cancun', 253, 12, -2603, 30, 'Central Time - Quintana Roo'
579
- c.timezone 'America/Merida', 629, 30, -5377, 60, 'Central Time - Campeche, Yucatan'
580
- c.timezone 'America/Monterrey', 77, 3, -6019, 60, 'Mexican Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas away from US border'
581
- c.timezone 'America/Matamoros', 155, 6, -195, 2, 'US Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas near US border'
576
+ c.timezone 'America/Merida', 629, 30, -5377, 60, 'Central Time - Campeche, Yucatán'
577
+ c.timezone 'America/Monterrey', 77, 3, -6019, 60, 'Mexican Central Time - Coahuila, Durango, Nuevo León, Tamaulipas away from US border'
578
+ c.timezone 'America/Matamoros', 155, 6, -195, 2, 'US Central Time - Coahuila, Durango, Nuevo León, Tamaulipas near US border'
582
579
  c.timezone 'America/Mazatlan', 1393, 60, -1277, 12, 'Mountain Time - S Baja, Nayarit, Sinaloa'
583
580
  c.timezone 'America/Chihuahua', 859, 30, -1273, 12, 'Mexican Mountain Time - Chihuahua away from US border'
584
581
  c.timezone 'America/Ojinaga', 887, 30, -1253, 12, 'US Mountain Time - Chihuahua near US border'
585
582
  c.timezone 'America/Hermosillo', 436, 15, -3329, 30, 'Mountain Standard Time - Sonora'
586
583
  c.timezone 'America/Tijuana', 488, 15, -7021, 60, 'US Pacific Time - Baja California near US border'
587
584
  c.timezone 'America/Santa_Isabel', 303, 10, -1723, 15, 'Mexican Pacific Time - Baja California away from US border'
588
- c.timezone 'America/Bahia_Banderas', 104, 5, -421, 4, 'Mexican Central Time - Bahia de Banderas'
585
+ c.timezone 'America/Bahia_Banderas', 104, 5, -421, 4, 'Mexican Central Time - Bahía de Banderas'
589
586
  end
590
587
  country 'MY', 'Malaysia' do |c|
591
588
  c.timezone 'Asia/Kuala_Lumpur', 19, 6, 1017, 10, 'peninsular Malaysia'
592
589
  c.timezone 'Asia/Kuching', 31, 20, 331, 3, 'Sabah & Sarawak'
593
590
  end
594
591
  country 'MZ', 'Mozambique' do |c|
595
- c.timezone 'Africa/Maputo', -779, 30, 391, 12
592
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
596
593
  end
597
594
  country 'NA', 'Namibia' do |c|
598
595
  c.timezone 'Africa/Windhoek', -677, 30, 171, 10
@@ -601,13 +598,13 @@ module TZInfo
601
598
  c.timezone 'Pacific/Noumea', -334, 15, 3329, 20
602
599
  end
603
600
  country 'NE', 'Niger' do |c|
604
- c.timezone 'Africa/Niamey', 811, 60, 127, 60
601
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
605
602
  end
606
603
  country 'NF', 'Norfolk Island' do |c|
607
604
  c.timezone 'Pacific/Norfolk', -581, 20, 5039, 30
608
605
  end
609
606
  country 'NG', 'Nigeria' do |c|
610
- c.timezone 'Africa/Lagos', 129, 20, 17, 5
607
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
611
608
  end
612
609
  country 'NI', 'Nicaragua' do |c|
613
610
  c.timezone 'America/Managua', 243, 20, -5177, 60
@@ -628,11 +625,11 @@ module TZInfo
628
625
  c.timezone 'Pacific/Niue', -1141, 60, -2039, 12
629
626
  end
630
627
  country 'NZ', 'New Zealand' do |c|
631
- c.timezone 'Pacific/Auckland', -553, 15, 5243, 30, 'most locations'
628
+ c.timezone 'Pacific/Auckland', -553, 15, 5243, 30, 'New Zealand time'
632
629
  c.timezone 'Pacific/Chatham', -879, 20, -3531, 20, 'Chatham Islands'
633
630
  end
634
631
  country 'OM', 'Oman' do |c|
635
- c.timezone 'Asia/Muscat', 118, 5, 703, 12
632
+ c.timezone 'Asia/Dubai', 253, 10, 553, 10
636
633
  end
637
634
  country 'PA', 'Panama' do |c|
638
635
  c.timezone 'America/Panama', 269, 30, -1193, 15
@@ -685,7 +682,7 @@ module TZInfo
685
682
  c.timezone 'Asia/Qatar', 1517, 60, 773, 15
686
683
  end
687
684
  country 'RE', 'Reunion' do |c|
688
- c.timezone 'Indian/Reunion', -313, 15, 832, 15
685
+ c.timezone 'Indian/Reunion', -313, 15, 832, 15, 'Réunion, Crozet Is, Scattered Is'
689
686
  end
690
687
  country 'RO', 'Romania' do |c|
691
688
  c.timezone 'Europe/Bucharest', 1333, 30, 261, 10
@@ -695,27 +692,29 @@ module TZInfo
695
692
  end
696
693
  country 'RU', 'Russia' do |c|
697
694
  c.timezone 'Europe/Kaliningrad', 3283, 60, 41, 2, 'Moscow-01 - Kaliningrad'
698
- c.timezone 'Europe/Moscow', 223, 4, 451, 12, 'Moscow+00 - west Russia'
699
- c.timezone 'Europe/Volgograd', 731, 15, 533, 12, 'Moscow+00 - Caspian Sea'
700
- c.timezone 'Europe/Samara', 266, 5, 1003, 20, 'Moscow+00 - Samara, Udmurtia'
695
+ c.timezone 'Europe/Moscow', 66907, 1200, 8464, 225, 'Moscow+00 - west Russia'
701
696
  c.timezone 'Europe/Simferopol', 899, 20, 341, 10, 'Moscow+00 - Crimea'
697
+ c.timezone 'Europe/Volgograd', 731, 15, 533, 12, 'Moscow+00 - Caspian Sea'
698
+ c.timezone 'Europe/Samara', 266, 5, 1003, 20, 'Moscow+00 (Moscow+01 after 2014-10-26) - Samara, Udmurtia'
702
699
  c.timezone 'Asia/Yekaterinburg', 1137, 20, 303, 5, 'Moscow+02 - Urals'
703
700
  c.timezone 'Asia/Omsk', 55, 1, 367, 5, 'Moscow+03 - west Siberia'
704
701
  c.timezone 'Asia/Novosibirsk', 1651, 30, 995, 12, 'Moscow+03 - Novosibirsk'
705
- c.timezone 'Asia/Novokuznetsk', 215, 4, 5227, 60, 'Moscow+03 - Novokuznetsk'
702
+ c.timezone 'Asia/Novokuznetsk', 215, 4, 5227, 60, 'Moscow+03 (Moscow+04 after 2014-10-26) - Kemerovo'
706
703
  c.timezone 'Asia/Krasnoyarsk', 3361, 60, 557, 6, 'Moscow+04 - Yenisei River'
707
704
  c.timezone 'Asia/Irkutsk', 784, 15, 313, 3, 'Moscow+05 - Lake Baikal'
705
+ c.timezone 'Asia/Chita', 1041, 20, 1702, 15, 'Moscow+06 (Moscow+05 after 2014-10-26) - Zabaykalsky'
708
706
  c.timezone 'Asia/Yakutsk', 62, 1, 389, 3, 'Moscow+06 - Lena River'
709
707
  c.timezone 'Asia/Khandyga', 225563, 3600, 243997, 1800, 'Moscow+06 - Tomponsky, Ust-Maysky'
710
708
  c.timezone 'Asia/Vladivostok', 259, 6, 1979, 15, 'Moscow+07 - Amur River'
711
709
  c.timezone 'Asia/Sakhalin', 1409, 30, 1427, 10, 'Moscow+07 - Sakhalin Island'
712
710
  c.timezone 'Asia/Ust-Nera', 232417, 3600, 10742, 75, 'Moscow+07 - Oymyakonsky'
713
- c.timezone 'Asia/Magadan', 1787, 30, 754, 5, 'Moscow+08 - Magadan'
714
- c.timezone 'Asia/Kamchatka', 3181, 60, 3173, 20, 'Moscow+08 - Kamchatka'
715
- c.timezone 'Asia/Anadyr', 259, 4, 10649, 60, 'Moscow+08 - Bering Sea'
711
+ c.timezone 'Asia/Magadan', 1787, 30, 754, 5, 'Moscow+08 (Moscow+07 after 2014-10-26) - Magadan'
712
+ c.timezone 'Asia/Srednekolymsk', 1012, 15, 9223, 60, 'Moscow+08 - E Sakha, N Kuril Is'
713
+ c.timezone 'Asia/Kamchatka', 3181, 60, 3173, 20, 'Moscow+08 (Moscow+09 after 2014-10-26) - Kamchatka'
714
+ c.timezone 'Asia/Anadyr', 259, 4, 10649, 60, 'Moscow+08 (Moscow+09 after 2014-10-26) - Bering Sea'
716
715
  end
717
716
  country 'RW', 'Rwanda' do |c|
718
- c.timezone 'Africa/Kigali', -39, 20, 451, 15
717
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
719
718
  end
720
719
  country 'SA', 'Saudi Arabia' do |c|
721
720
  c.timezone 'Asia/Riyadh', 739, 30, 2803, 60
@@ -736,49 +735,49 @@ module TZInfo
736
735
  c.timezone 'Asia/Singapore', 77, 60, 2077, 20
737
736
  end
738
737
  country 'SH', 'St Helena' do |c|
739
- c.timezone 'Atlantic/St_Helena', -191, 12, -57, 10
738
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
740
739
  end
741
740
  country 'SI', 'Slovenia' do |c|
742
- c.timezone 'Europe/Ljubljana', 921, 20, 871, 60
741
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
743
742
  end
744
743
  country 'SJ', 'Svalbard & Jan Mayen' do |c|
745
- c.timezone 'Arctic/Longyearbyen', 78, 1, 16, 1
744
+ c.timezone 'Europe/Oslo', 719, 12, 43, 4
746
745
  end
747
746
  country 'SK', 'Slovakia' do |c|
748
- c.timezone 'Europe/Bratislava', 963, 20, 1027, 60
747
+ c.timezone 'Europe/Prague', 601, 12, 433, 30
749
748
  end
750
749
  country 'SL', 'Sierra Leone' do |c|
751
- c.timezone 'Africa/Freetown', 17, 2, -53, 4
750
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
752
751
  end
753
752
  country 'SM', 'San Marino' do |c|
754
- c.timezone 'Europe/San_Marino', 527, 12, 187, 15
753
+ c.timezone 'Europe/Rome', 419, 10, 749, 60
755
754
  end
756
755
  country 'SN', 'Senegal' do |c|
757
- c.timezone 'Africa/Dakar', 44, 3, -523, 30
756
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
758
757
  end
759
758
  country 'SO', 'Somalia' do |c|
760
- c.timezone 'Africa/Mogadishu', 31, 15, 1361, 30
759
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
761
760
  end
762
761
  country 'SR', 'Suriname' do |c|
763
762
  c.timezone 'America/Paramaribo', 35, 6, -331, 6
764
763
  end
765
764
  country 'SS', 'South Sudan' do |c|
766
- c.timezone 'Africa/Juba', 97, 20, 158, 5
765
+ c.timezone 'Africa/Khartoum', 78, 5, 488, 15
767
766
  end
768
767
  country 'ST', 'Sao Tome & Principe' do |c|
769
- c.timezone 'Africa/Sao_Tome', 1, 3, 101, 15
768
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
770
769
  end
771
770
  country 'SV', 'El Salvador' do |c|
772
771
  c.timezone 'America/El_Salvador', 137, 10, -446, 5
773
772
  end
774
773
  country 'SX', 'St Maarten (Dutch part)' do |c|
775
- c.timezone 'America/Lower_Princes', 12997, 720, -22697, 360
774
+ c.timezone 'America/Curacao', 731, 60, -69, 1
776
775
  end
777
776
  country 'SY', 'Syria' do |c|
778
777
  c.timezone 'Asia/Damascus', 67, 2, 363, 10
779
778
  end
780
779
  country 'SZ', 'Swaziland' do |c|
781
- c.timezone 'Africa/Mbabane', -263, 10, 311, 10
780
+ c.timezone 'Africa/Johannesburg', -105, 4, 28, 1
782
781
  end
783
782
  country 'TC', 'Turks & Caicos Is' do |c|
784
783
  c.timezone 'America/Grand_Turk', 322, 15, -1067, 15
@@ -787,10 +786,11 @@ module TZInfo
787
786
  c.timezone 'Africa/Ndjamena', 727, 60, 301, 20
788
787
  end
789
788
  country 'TF', 'French Southern & Antarctic Lands' do |c|
790
- c.timezone 'Indian/Kerguelen', -17767, 360, 28087, 400
789
+ c.timezone 'Indian/Kerguelen', -17767, 360, 28087, 400, 'Kerguelen, St Paul I, Amsterdam I'
790
+ c.timezone 'Indian/Reunion', -313, 15, 832, 15, 'Réunion, Crozet Is, Scattered Is'
791
791
  end
792
792
  country 'TG', 'Togo' do |c|
793
- c.timezone 'Africa/Lome', 92, 15, 73, 60
793
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
794
794
  end
795
795
  country 'TH', 'Thailand' do |c|
796
796
  c.timezone 'Asia/Bangkok', 55, 4, 6031, 60
@@ -826,7 +826,7 @@ module TZInfo
826
826
  c.timezone 'Asia/Taipei', 501, 20, 243, 2
827
827
  end
828
828
  country 'TZ', 'Tanzania' do |c|
829
- c.timezone 'Africa/Dar_es_Salaam', -34, 5, 2357, 60
829
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
830
830
  end
831
831
  country 'UA', 'Ukraine' do |c|
832
832
  c.timezone 'Europe/Kiev', 1513, 30, 1831, 60, 'most locations'
@@ -834,12 +834,12 @@ module TZInfo
834
834
  c.timezone 'Europe/Zaporozhye', 287, 6, 211, 6, 'Zaporozh\'ye, E Lugansk / Zaporizhia, E Luhansk'
835
835
  end
836
836
  country 'UG', 'Uganda' do |c|
837
- c.timezone 'Africa/Kampala', 19, 60, 389, 12
837
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
838
838
  end
839
839
  country 'UM', 'US minor outlying islands' do |c|
840
- c.timezone 'Pacific/Johnston', 67, 4, -10171, 60, 'Johnston Atoll'
841
- c.timezone 'Pacific/Midway', 1693, 60, -5321, 30, 'Midway Islands'
842
840
  c.timezone 'Pacific/Wake', 1157, 60, 9997, 60, 'Wake Island'
841
+ c.timezone 'Pacific/Pago_Pago', -214, 15, -1707, 10, 'Samoa, Midway'
842
+ c.timezone 'Pacific/Honolulu', 15341, 720, -18943, 120, 'Hawaii time'
843
843
  end
844
844
  country 'US', 'United States' do |c|
845
845
  c.timezone 'America/New_York', 48857, 1200, -266423, 3600, 'Eastern Time'
@@ -863,14 +863,14 @@ module TZInfo
863
863
  c.timezone 'America/Boise', 157009, 3600, -46481, 400, 'Mountain Time - south Idaho & east Oregon'
864
864
  c.timezone 'America/Phoenix', 20069, 600, -16811, 150, 'Mountain Standard Time - Arizona (except Navajo)'
865
865
  c.timezone 'America/Los_Angeles', 30647, 900, -212837, 1800, 'Pacific Time'
866
+ c.timezone 'America/Metlakatla', 198457, 3600, -18947, 144, 'Pacific Standard Time - Annette Island, Alaska'
866
867
  c.timezone 'America/Anchorage', 44077, 720, -539641, 3600, 'Alaska Time'
867
868
  c.timezone 'America/Juneau', 209887, 3600, -483911, 3600, 'Alaska Time - Alaska panhandle'
868
869
  c.timezone 'America/Sitka', 41167, 720, -487087, 3600, 'Alaska Time - southeast Alaska panhandle'
869
870
  c.timezone 'America/Yakutat', 214369, 3600, -251509, 1800, 'Alaska Time - Alaska panhandle neck'
870
871
  c.timezone 'America/Nome', 58051, 900, -595463, 3600, 'Alaska Time - west Alaska'
871
872
  c.timezone 'America/Adak', 1297, 25, -635969, 3600, 'Aleutian Islands'
872
- c.timezone 'America/Metlakatla', 198457, 3600, -18947, 144, 'Metlakatla Time - Annette Island'
873
- c.timezone 'Pacific/Honolulu', 15341, 720, -18943, 120, 'Hawaii'
873
+ c.timezone 'Pacific/Honolulu', 15341, 720, -18943, 120, 'Hawaii time'
874
874
  end
875
875
  country 'UY', 'Uruguay' do |c|
876
876
  c.timezone 'America/Montevideo', -2093, 60, -3371, 60
@@ -880,22 +880,22 @@ module TZInfo
880
880
  c.timezone 'Asia/Tashkent', 124, 3, 693, 10, 'east Uzbekistan'
881
881
  end
882
882
  country 'VA', 'Vatican City' do |c|
883
- c.timezone 'Europe/Vatican', 9428, 225, 44831, 3600
883
+ c.timezone 'Europe/Rome', 419, 10, 749, 60
884
884
  end
885
885
  country 'VC', 'St Vincent' do |c|
886
- c.timezone 'America/St_Vincent', 263, 20, -1837, 30
886
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
887
887
  end
888
888
  country 'VE', 'Venezuela' do |c|
889
889
  c.timezone 'America/Caracas', 21, 2, -1004, 15
890
890
  end
891
891
  country 'VG', 'Virgin Islands (UK)' do |c|
892
- c.timezone 'America/Tortola', 369, 20, -3877, 60
892
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
893
893
  end
894
894
  country 'VI', 'Virgin Islands (US)' do |c|
895
- c.timezone 'America/St_Thomas', 367, 20, -974, 15
895
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
896
896
  end
897
897
  country 'VN', 'Vietnam' do |c|
898
- c.timezone 'Asia/Ho_Chi_Minh', 43, 4, 320, 3
898
+ c.timezone 'Asia/Bangkok', 55, 4, 6031, 60
899
899
  end
900
900
  country 'VU', 'Vanuatu' do |c|
901
901
  c.timezone 'Pacific/Efate', -53, 3, 2021, 12
@@ -907,19 +907,19 @@ module TZInfo
907
907
  c.timezone 'Pacific/Apia', -83, 6, -2576, 15
908
908
  end
909
909
  country 'YE', 'Yemen' do |c|
910
- c.timezone 'Asia/Aden', 51, 4, 226, 5
910
+ c.timezone 'Asia/Riyadh', 739, 30, 2803, 60
911
911
  end
912
912
  country 'YT', 'Mayotte' do |c|
913
- c.timezone 'Indian/Mayotte', -767, 60, 1357, 30
913
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
914
914
  end
915
915
  country 'ZA', 'South Africa' do |c|
916
916
  c.timezone 'Africa/Johannesburg', -105, 4, 28, 1
917
917
  end
918
918
  country 'ZM', 'Zambia' do |c|
919
- c.timezone 'Africa/Lusaka', -185, 12, 1697, 60
919
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
920
920
  end
921
921
  country 'ZW', 'Zimbabwe' do |c|
922
- c.timezone 'Africa/Harare', -107, 6, 621, 20
922
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
923
923
  end
924
924
  end
925
925
  end