tzinfo 1.2.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (111) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +3 -0
  3. data.tar.gz.sig +0 -0
  4. data/.yardopts +6 -0
  5. data/CHANGES.md +786 -0
  6. data/LICENSE +19 -0
  7. data/README.md +151 -0
  8. data/Rakefile +107 -0
  9. data/lib/tzinfo.rb +40 -0
  10. data/lib/tzinfo/country.rb +196 -0
  11. data/lib/tzinfo/country_index_definition.rb +31 -0
  12. data/lib/tzinfo/country_info.rb +42 -0
  13. data/lib/tzinfo/country_timezone.rb +135 -0
  14. data/lib/tzinfo/data_source.rb +190 -0
  15. data/lib/tzinfo/data_timezone.rb +58 -0
  16. data/lib/tzinfo/data_timezone_info.rb +55 -0
  17. data/lib/tzinfo/info_timezone.rb +30 -0
  18. data/lib/tzinfo/linked_timezone.rb +63 -0
  19. data/lib/tzinfo/linked_timezone_info.rb +26 -0
  20. data/lib/tzinfo/offset_rationals.rb +77 -0
  21. data/lib/tzinfo/ruby_core_support.rb +146 -0
  22. data/lib/tzinfo/ruby_country_info.rb +74 -0
  23. data/lib/tzinfo/ruby_data_source.rb +136 -0
  24. data/lib/tzinfo/time_or_datetime.rb +340 -0
  25. data/lib/tzinfo/timezone.rb +669 -0
  26. data/lib/tzinfo/timezone_definition.rb +36 -0
  27. data/lib/tzinfo/timezone_index_definition.rb +54 -0
  28. data/lib/tzinfo/timezone_info.rb +30 -0
  29. data/lib/tzinfo/timezone_offset.rb +101 -0
  30. data/lib/tzinfo/timezone_period.rb +245 -0
  31. data/lib/tzinfo/timezone_proxy.rb +105 -0
  32. data/lib/tzinfo/timezone_transition.rb +130 -0
  33. data/lib/tzinfo/timezone_transition_definition.rb +104 -0
  34. data/lib/tzinfo/transition_data_timezone_info.rb +274 -0
  35. data/lib/tzinfo/zoneinfo_country_info.rb +37 -0
  36. data/lib/tzinfo/zoneinfo_data_source.rb +488 -0
  37. data/lib/tzinfo/zoneinfo_timezone_info.rb +296 -0
  38. data/test/tc_country.rb +234 -0
  39. data/test/tc_country_index_definition.rb +69 -0
  40. data/test/tc_country_info.rb +16 -0
  41. data/test/tc_country_timezone.rb +173 -0
  42. data/test/tc_data_source.rb +218 -0
  43. data/test/tc_data_timezone.rb +99 -0
  44. data/test/tc_data_timezone_info.rb +18 -0
  45. data/test/tc_info_timezone.rb +34 -0
  46. data/test/tc_linked_timezone.rb +155 -0
  47. data/test/tc_linked_timezone_info.rb +23 -0
  48. data/test/tc_offset_rationals.rb +23 -0
  49. data/test/tc_ruby_core_support.rb +168 -0
  50. data/test/tc_ruby_country_info.rb +110 -0
  51. data/test/tc_ruby_data_source.rb +143 -0
  52. data/test/tc_time_or_datetime.rb +654 -0
  53. data/test/tc_timezone.rb +1350 -0
  54. data/test/tc_timezone_definition.rb +113 -0
  55. data/test/tc_timezone_index_definition.rb +73 -0
  56. data/test/tc_timezone_info.rb +11 -0
  57. data/test/tc_timezone_london.rb +143 -0
  58. data/test/tc_timezone_melbourne.rb +142 -0
  59. data/test/tc_timezone_new_york.rb +142 -0
  60. data/test/tc_timezone_offset.rb +126 -0
  61. data/test/tc_timezone_period.rb +555 -0
  62. data/test/tc_timezone_proxy.rb +136 -0
  63. data/test/tc_timezone_transition.rb +366 -0
  64. data/test/tc_timezone_transition_definition.rb +295 -0
  65. data/test/tc_timezone_utc.rb +27 -0
  66. data/test/tc_transition_data_timezone_info.rb +423 -0
  67. data/test/tc_zoneinfo_country_info.rb +78 -0
  68. data/test/tc_zoneinfo_data_source.rb +1195 -0
  69. data/test/tc_zoneinfo_timezone_info.rb +1232 -0
  70. data/test/test_utils.rb +163 -0
  71. data/test/ts_all.rb +7 -0
  72. data/test/ts_all_ruby.rb +5 -0
  73. data/test/ts_all_zoneinfo.rb +7 -0
  74. data/test/tzinfo-data/tzinfo/data.rb +8 -0
  75. data/test/tzinfo-data/tzinfo/data/definitions/America/Argentina/Buenos_Aires.rb +89 -0
  76. data/test/tzinfo-data/tzinfo/data/definitions/America/New_York.rb +315 -0
  77. data/test/tzinfo-data/tzinfo/data/definitions/Australia/Melbourne.rb +218 -0
  78. data/test/tzinfo-data/tzinfo/data/definitions/EST.rb +19 -0
  79. data/test/tzinfo-data/tzinfo/data/definitions/Etc/GMT__m__1.rb +21 -0
  80. data/test/tzinfo-data/tzinfo/data/definitions/Etc/GMT__p__1.rb +21 -0
  81. data/test/tzinfo-data/tzinfo/data/definitions/Etc/UTC.rb +21 -0
  82. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Amsterdam.rb +261 -0
  83. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Andorra.rb +186 -0
  84. data/test/tzinfo-data/tzinfo/data/definitions/Europe/London.rb +321 -0
  85. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Paris.rb +265 -0
  86. data/test/tzinfo-data/tzinfo/data/definitions/Europe/Prague.rb +220 -0
  87. data/test/tzinfo-data/tzinfo/data/definitions/UTC.rb +16 -0
  88. data/test/tzinfo-data/tzinfo/data/indexes/countries.rb +927 -0
  89. data/test/tzinfo-data/tzinfo/data/indexes/timezones.rb +596 -0
  90. data/test/tzinfo-data/tzinfo/data/version.rb +14 -0
  91. data/test/zoneinfo/America/Argentina/Buenos_Aires +0 -0
  92. data/test/zoneinfo/America/New_York +0 -0
  93. data/test/zoneinfo/Australia/Melbourne +0 -0
  94. data/test/zoneinfo/EST +0 -0
  95. data/test/zoneinfo/Etc/UTC +0 -0
  96. data/test/zoneinfo/Europe/Amsterdam +0 -0
  97. data/test/zoneinfo/Europe/Andorra +0 -0
  98. data/test/zoneinfo/Europe/London +0 -0
  99. data/test/zoneinfo/Europe/Paris +0 -0
  100. data/test/zoneinfo/Europe/Prague +0 -0
  101. data/test/zoneinfo/Factory +0 -0
  102. data/test/zoneinfo/iso3166.tab +275 -0
  103. data/test/zoneinfo/leapseconds +61 -0
  104. data/test/zoneinfo/posix/Europe/London +0 -0
  105. data/test/zoneinfo/posixrules +0 -0
  106. data/test/zoneinfo/right/Europe/London +0 -0
  107. data/test/zoneinfo/zone.tab +439 -0
  108. data/test/zoneinfo/zone1970.tab +369 -0
  109. data/tzinfo.gemspec +21 -0
  110. metadata +193 -0
  111. metadata.gz.sig +2 -0
@@ -0,0 +1,16 @@
1
+ # encoding: UTF-8
2
+
3
+ # This file contains data derived from the IANA Time Zone Database
4
+ # (http://www.iana.org/time-zones).
5
+
6
+ module TZInfo
7
+ module Data
8
+ module Definitions
9
+ module UTC
10
+ include TimezoneDefinition
11
+
12
+ linked_timezone 'UTC', 'Etc/UTC'
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,927 @@
1
+ # encoding: UTF-8
2
+
3
+ # This file contains data derived from the IANA Time Zone Database
4
+ # (http://www.iana.org/time-zones).
5
+
6
+ module TZInfo
7
+ module Data
8
+ module Indexes
9
+ module Countries
10
+ include CountryIndexDefinition
11
+
12
+ country 'AD', 'Andorra' do |c|
13
+ c.timezone 'Europe/Andorra', 85, 2, 91, 60
14
+ end
15
+ country 'AE', 'United Arab Emirates' do |c|
16
+ c.timezone 'Asia/Dubai', 253, 10, 553, 10
17
+ end
18
+ country 'AF', 'Afghanistan' do |c|
19
+ c.timezone 'Asia/Kabul', 2071, 60, 346, 5
20
+ end
21
+ country 'AG', 'Antigua & Barbuda' do |c|
22
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
23
+ end
24
+ country 'AI', 'Anguilla' do |c|
25
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
26
+ end
27
+ country 'AL', 'Albania' do |c|
28
+ c.timezone 'Europe/Tirane', 124, 3, 119, 6
29
+ end
30
+ country 'AM', 'Armenia' do |c|
31
+ c.timezone 'Asia/Yerevan', 2411, 60, 89, 2
32
+ end
33
+ country 'AO', 'Angola' do |c|
34
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
35
+ end
36
+ country 'AQ', 'Antarctica' do |c|
37
+ c.timezone 'Antarctica/Rothera', -2027, 30, -1022, 15, 'Rothera Station, Adelaide Island'
38
+ c.timezone 'Antarctica/Palmer', -324, 5, -641, 10, 'Palmer Station, Anvers Island'
39
+ c.timezone 'Antarctica/Mawson', -338, 5, 3773, 60, 'Mawson Station, Holme Bay'
40
+ c.timezone 'Antarctica/Davis', -823, 12, 2339, 30, 'Davis Station, Vestfold Hills'
41
+ c.timezone 'Antarctica/Casey', -3977, 60, 6631, 60, 'Casey Station, Bailey Peninsula'
42
+ c.timezone 'Antarctica/Vostok', -392, 5, 1069, 10, 'Vostok Station, Lake Vostok'
43
+ c.timezone 'Antarctica/DumontDUrville', -200, 3, 8401, 60, 'Dumont-d\'Urville Station, Terre Adelie'
44
+ c.timezone 'Antarctica/Syowa', -124211, 1800, 3959, 100, 'Syowa Station, E Ongul I'
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
+ end
48
+ country 'AR', 'Argentina' do |c|
49
+ c.timezone 'America/Argentina/Buenos_Aires', -173, 5, -1169, 20, 'Buenos Aires (BA, CF)'
50
+ c.timezone 'America/Argentina/Cordoba', -157, 5, -3851, 60, 'most locations (CB, CC, CN, ER, FM, MN, SE, SF)'
51
+ c.timezone 'America/Argentina/Salta', -1487, 60, -785, 12, '(SA, LP, NQ, RN)'
52
+ c.timezone 'America/Argentina/Jujuy', -1451, 60, -653, 10, 'Jujuy (JY)'
53
+ c.timezone 'America/Argentina/Tucuman', -1609, 60, -3913, 60, 'Tucumán (TM)'
54
+ c.timezone 'America/Argentina/Catamarca', -427, 15, -3947, 60, 'Catamarca (CT), Chubut (CH)'
55
+ c.timezone 'America/Argentina/La_Rioja', -883, 30, -1337, 20, 'La Rioja (LR)'
56
+ c.timezone 'America/Argentina/San_Juan', -473, 15, -4111, 60, 'San Juan (SJ)'
57
+ c.timezone 'America/Argentina/Mendoza', -1973, 60, -4129, 60, 'Mendoza (MZ)'
58
+ c.timezone 'America/Argentina/San_Luis', -1999, 60, -1327, 20, 'San Luis (SL)'
59
+ c.timezone 'America/Argentina/Rio_Gallegos', -1549, 30, -4153, 60, 'Santa Cruz (SC)'
60
+ c.timezone 'America/Argentina/Ushuaia', -274, 5, -683, 10, 'Tierra del Fuego (TF)'
61
+ end
62
+ country 'AS', 'Samoa (American)' do |c|
63
+ c.timezone 'Pacific/Pago_Pago', -214, 15, -1707, 10, 'Samoa, Midway'
64
+ end
65
+ country 'AT', 'Austria' do |c|
66
+ c.timezone 'Europe/Vienna', 2893, 60, 49, 3
67
+ end
68
+ country 'AU', 'Australia' do |c|
69
+ c.timezone 'Australia/Lord_Howe', -631, 20, 1909, 12, 'Lord Howe Island'
70
+ c.timezone 'Antarctica/Macquarie', -109, 2, 3179, 20, 'Macquarie Island'
71
+ c.timezone 'Australia/Hobart', -2573, 60, 8839, 60, 'Tasmania - most locations'
72
+ c.timezone 'Australia/Currie', -599, 15, 2158, 15, 'Tasmania - King Island'
73
+ c.timezone 'Australia/Melbourne', -2269, 60, 4349, 30, 'Victoria'
74
+ c.timezone 'Australia/Sydney', -508, 15, 9073, 60, 'New South Wales - most locations'
75
+ c.timezone 'Australia/Broken_Hill', -639, 20, 2829, 20, 'New South Wales - Yancowinna'
76
+ c.timezone 'Australia/Brisbane', -412, 15, 4591, 30, 'Queensland - most locations'
77
+ c.timezone 'Australia/Lindeman', -304, 15, 149, 1, 'Queensland - Holiday Islands'
78
+ c.timezone 'Australia/Adelaide', -419, 12, 1663, 12, 'South Australia'
79
+ c.timezone 'Australia/Darwin', -187, 15, 785, 6, 'Northern Territory'
80
+ c.timezone 'Australia/Perth', -639, 20, 2317, 20, 'Western Australia - most locations'
81
+ c.timezone 'Australia/Eucla', -1903, 60, 1933, 15, 'Western Australia - Eucla area'
82
+ end
83
+ country 'AW', 'Aruba' do |c|
84
+ c.timezone 'America/Curacao', 731, 60, -69, 1
85
+ end
86
+ country 'AX', 'Aaland Islands' do |c|
87
+ c.timezone 'Europe/Helsinki', 361, 6, 749, 30
88
+ end
89
+ country 'AZ', 'Azerbaijan' do |c|
90
+ c.timezone 'Asia/Baku', 2423, 60, 997, 20
91
+ end
92
+ country 'BA', 'Bosnia & Herzegovina' do |c|
93
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
94
+ end
95
+ country 'BB', 'Barbados' do |c|
96
+ c.timezone 'America/Barbados', 131, 10, -3577, 60
97
+ end
98
+ country 'BD', 'Bangladesh' do |c|
99
+ c.timezone 'Asia/Dhaka', 1423, 60, 1085, 12
100
+ end
101
+ country 'BE', 'Belgium' do |c|
102
+ c.timezone 'Europe/Brussels', 305, 6, 13, 3
103
+ end
104
+ country 'BF', 'Burkina Faso' do |c|
105
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
106
+ end
107
+ country 'BG', 'Bulgaria' do |c|
108
+ c.timezone 'Europe/Sofia', 2561, 60, 1399, 60
109
+ end
110
+ country 'BH', 'Bahrain' do |c|
111
+ c.timezone 'Asia/Qatar', 1517, 60, 773, 15
112
+ end
113
+ country 'BI', 'Burundi' do |c|
114
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
115
+ end
116
+ country 'BJ', 'Benin' do |c|
117
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
118
+ end
119
+ country 'BL', 'St Barthelemy' do |c|
120
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
121
+ end
122
+ country 'BM', 'Bermuda' do |c|
123
+ c.timezone 'Atlantic/Bermuda', 1937, 60, -1943, 30
124
+ end
125
+ country 'BN', 'Brunei' do |c|
126
+ c.timezone 'Asia/Brunei', 74, 15, 1379, 12
127
+ end
128
+ country 'BO', 'Bolivia' do |c|
129
+ c.timezone 'America/La_Paz', -33, 2, -1363, 20
130
+ end
131
+ country 'BQ', 'Caribbean Netherlands' do |c|
132
+ c.timezone 'America/Curacao', 731, 60, -69, 1
133
+ end
134
+ country 'BR', 'Brazil' do |c|
135
+ c.timezone 'America/Noronha', -77, 20, -389, 12, 'Atlantic islands'
136
+ c.timezone 'America/Belem', -29, 20, -2909, 60, 'Amapá, E Pará'
137
+ c.timezone 'America/Fortaleza', -223, 60, -77, 2, 'NE Brazil (MA, PI, CE, RN, PB)'
138
+ c.timezone 'America/Recife', -161, 20, -349, 10, 'Pernambuco'
139
+ c.timezone 'America/Araguaina', -36, 5, -241, 5, 'Tocantins'
140
+ c.timezone 'America/Maceio', -29, 3, -2143, 60, 'Alagoas, Sergipe'
141
+ c.timezone 'America/Bahia', -779, 60, -2311, 60, 'Bahia'
142
+ c.timezone 'America/Sao_Paulo', -353, 15, -2797, 60, 'S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)'
143
+ c.timezone 'America/Campo_Grande', -409, 20, -3277, 60, 'Mato Grosso do Sul'
144
+ c.timezone 'America/Cuiaba', -187, 12, -673, 12, 'Mato Grosso'
145
+ c.timezone 'America/Santarem', -73, 30, -823, 15, 'W Pará'
146
+ c.timezone 'America/Porto_Velho', -263, 30, -639, 10, 'Rondônia'
147
+ c.timezone 'America/Boa_Vista', 169, 60, -182, 3, 'Roraima'
148
+ c.timezone 'America/Manaus', -47, 15, -3601, 60, 'E Amazonas'
149
+ c.timezone 'America/Eirunepe', -20, 3, -1048, 15, 'W Amazonas'
150
+ c.timezone 'America/Rio_Branco', -299, 30, -339, 5, 'Acre'
151
+ end
152
+ country 'BS', 'Bahamas' do |c|
153
+ c.timezone 'America/Nassau', 301, 12, -1547, 20
154
+ end
155
+ country 'BT', 'Bhutan' do |c|
156
+ c.timezone 'Asia/Thimphu', 412, 15, 1793, 20
157
+ end
158
+ country 'BV', 'Bouvet Island'
159
+ country 'BW', 'Botswana' do |c|
160
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
161
+ end
162
+ country 'BY', 'Belarus' do |c|
163
+ c.timezone 'Europe/Minsk', 539, 10, 827, 30
164
+ end
165
+ country 'BZ', 'Belize' do |c|
166
+ c.timezone 'America/Belize', 35, 2, -441, 5
167
+ end
168
+ country 'CA', 'Canada' do |c|
169
+ c.timezone 'America/St_Johns', 1427, 30, -3163, 60, 'Newfoundland Time, including SE Labrador'
170
+ c.timezone 'America/Halifax', 893, 20, -318, 5, 'Atlantic Time - Nova Scotia (most places), PEI'
171
+ c.timezone 'America/Glace_Bay', 231, 5, -1199, 20, 'Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971'
172
+ c.timezone 'America/Moncton', 461, 10, -3887, 60, 'Atlantic Time - New Brunswick'
173
+ c.timezone 'America/Goose_Bay', 160, 3, -725, 12, 'Atlantic Time - Labrador - most locations'
174
+ c.timezone 'America/Blanc-Sablon', 617, 12, -3427, 60, 'Atlantic Standard Time - Quebec - Lower North Shore'
175
+ c.timezone 'America/Toronto', 873, 20, -4763, 60, 'Eastern Time - Ontario & Quebec - most locations'
176
+ c.timezone 'America/Nipigon', 2941, 60, -1324, 15, 'Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973'
177
+ c.timezone 'America/Thunder_Bay', 2903, 60, -357, 4, 'Eastern Time - Thunder Bay, Ontario'
178
+ c.timezone 'America/Iqaluit', 956, 15, -1027, 15, 'Eastern Time - east Nunavut - most locations'
179
+ c.timezone 'America/Pangnirtung', 992, 15, -986, 15, 'Eastern Time - Pangnirtung, Nunavut'
180
+ c.timezone 'America/Resolute', 33613, 450, -22759, 240, 'Central Time - Resolute, Nunavut'
181
+ c.timezone 'America/Atikokan', 175531, 3600, -54973, 600, 'Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut'
182
+ c.timezone 'America/Rankin_Inlet', 3769, 60, -331499, 3600, 'Central Time - central Nunavut'
183
+ c.timezone 'America/Winnipeg', 2993, 60, -1943, 20, 'Central Time - Manitoba & west Ontario'
184
+ c.timezone 'America/Rainy_River', 2923, 60, -2837, 30, 'Central Time - Rainy River & Fort Frances, Ontario'
185
+ c.timezone 'America/Regina', 252, 5, -2093, 20, 'Central Standard Time - Saskatchewan - most locations'
186
+ c.timezone 'America/Swift_Current', 3017, 60, -647, 6, 'Central Standard Time - Saskatchewan - midwest'
187
+ c.timezone 'America/Edmonton', 1071, 20, -1702, 15, 'Mountain Time - Alberta, east British Columbia & west Saskatchewan'
188
+ c.timezone 'America/Cambridge_Bay', 24881, 360, -37819, 360, 'Mountain Time - west Nunavut'
189
+ c.timezone 'America/Yellowknife', 1249, 20, -2287, 20, 'Mountain Time - central Northwest Territories'
190
+ c.timezone 'America/Inuvik', 246059, 3600, -8023, 60, 'Mountain Time - west Northwest Territories'
191
+ c.timezone 'America/Creston', 491, 10, -6991, 60, 'Mountain Standard Time - Creston, British Columbia'
192
+ c.timezone 'America/Dawson_Creek', 1793, 30, -3607, 30, 'Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia'
193
+ c.timezone 'America/Vancouver', 739, 15, -7387, 60, 'Pacific Time - west British Columbia'
194
+ c.timezone 'America/Whitehorse', 3643, 60, -2701, 20, 'Pacific Time - south Yukon'
195
+ c.timezone 'America/Dawson', 961, 15, -1673, 12, 'Pacific Time - north Yukon'
196
+ end
197
+ country 'CC', 'Cocos (Keeling) Islands' do |c|
198
+ c.timezone 'Indian/Cocos', -73, 6, 1163, 12
199
+ end
200
+ country 'CD', 'Congo (Dem. Rep.)' do |c|
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
+ end
204
+ country 'CF', 'Central African Rep.' do |c|
205
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
206
+ end
207
+ country 'CG', 'Congo (Rep.)' do |c|
208
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
209
+ end
210
+ country 'CH', 'Switzerland' do |c|
211
+ c.timezone 'Europe/Zurich', 2843, 60, 128, 15, 'Swiss time'
212
+ end
213
+ country 'CI', 'Cote d\'Ivoire' do |c|
214
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
215
+ end
216
+ country 'CK', 'Cook Islands' do |c|
217
+ c.timezone 'Pacific/Rarotonga', -637, 30, -4793, 30
218
+ end
219
+ country 'CL', 'Chile' do |c|
220
+ c.timezone 'America/Santiago', -669, 20, -212, 3, 'most locations'
221
+ c.timezone 'Pacific/Easter', -543, 20, -3283, 30, 'Easter Island'
222
+ end
223
+ country 'CM', 'Cameroon' do |c|
224
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
225
+ end
226
+ country 'CN', 'China' do |c|
227
+ c.timezone 'Asia/Shanghai', 937, 30, 1822, 15, 'Beijing Time'
228
+ c.timezone 'Asia/Urumqi', 219, 5, 1051, 12, 'Xinjiang Time'
229
+ end
230
+ country 'CO', 'Colombia' do |c|
231
+ c.timezone 'America/Bogota', 23, 5, -889, 12
232
+ end
233
+ country 'CR', 'Costa Rica' do |c|
234
+ c.timezone 'America/Costa_Rica', 149, 15, -1009, 12
235
+ end
236
+ country 'CU', 'Cuba' do |c|
237
+ c.timezone 'America/Havana', 347, 15, -2471, 30
238
+ end
239
+ country 'CV', 'Cape Verde' do |c|
240
+ c.timezone 'Atlantic/Cape_Verde', 179, 12, -1411, 60
241
+ end
242
+ country 'CW', 'Curacao' do |c|
243
+ c.timezone 'America/Curacao', 731, 60, -69, 1
244
+ end
245
+ country 'CX', 'Christmas Island' do |c|
246
+ c.timezone 'Indian/Christmas', -125, 12, 6343, 60
247
+ end
248
+ country 'CY', 'Cyprus' do |c|
249
+ c.timezone 'Asia/Nicosia', 211, 6, 1001, 30
250
+ end
251
+ country 'CZ', 'Czech Republic' do |c|
252
+ c.timezone 'Europe/Prague', 601, 12, 433, 30
253
+ end
254
+ country 'DE', 'Germany' do |c|
255
+ c.timezone 'Europe/Berlin', 105, 2, 401, 30, 'Berlin time'
256
+ c.timezone 'Europe/Zurich', 2843, 60, 128, 15, 'Swiss time'
257
+ end
258
+ country 'DJ', 'Djibouti' do |c|
259
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
260
+ end
261
+ country 'DK', 'Denmark' do |c|
262
+ c.timezone 'Europe/Copenhagen', 167, 3, 151, 12
263
+ end
264
+ country 'DM', 'Dominica' do |c|
265
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
266
+ end
267
+ country 'DO', 'Dominican Republic' do |c|
268
+ c.timezone 'America/Santo_Domingo', 277, 15, -699, 10
269
+ end
270
+ country 'DZ', 'Algeria' do |c|
271
+ c.timezone 'Africa/Algiers', 2207, 60, 61, 20
272
+ end
273
+ country 'EC', 'Ecuador' do |c|
274
+ c.timezone 'America/Guayaquil', -13, 6, -479, 6, 'mainland'
275
+ c.timezone 'Pacific/Galapagos', -9, 10, -448, 5, 'Galápagos Islands'
276
+ end
277
+ country 'EE', 'Estonia' do |c|
278
+ c.timezone 'Europe/Tallinn', 713, 12, 99, 4
279
+ end
280
+ country 'EG', 'Egypt' do |c|
281
+ c.timezone 'Africa/Cairo', 601, 20, 125, 4
282
+ end
283
+ country 'EH', 'Western Sahara' do |c|
284
+ c.timezone 'Africa/El_Aaiun', 543, 20, -66, 5
285
+ end
286
+ country 'ER', 'Eritrea' do |c|
287
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
288
+ end
289
+ country 'ES', 'Spain' do |c|
290
+ c.timezone 'Europe/Madrid', 202, 5, -221, 60, 'mainland'
291
+ c.timezone 'Africa/Ceuta', 2153, 60, -319, 60, 'Ceuta & Melilla'
292
+ c.timezone 'Atlantic/Canary', 281, 10, -77, 5, 'Canary Islands'
293
+ end
294
+ country 'ET', 'Ethiopia' do |c|
295
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
296
+ end
297
+ country 'FI', 'Finland' do |c|
298
+ c.timezone 'Europe/Helsinki', 361, 6, 749, 30
299
+ end
300
+ country 'FJ', 'Fiji' do |c|
301
+ c.timezone 'Pacific/Fiji', -272, 15, 2141, 12
302
+ end
303
+ country 'FK', 'Falkland Islands' do |c|
304
+ c.timezone 'Atlantic/Stanley', -517, 10, -1157, 20
305
+ end
306
+ country 'FM', 'Micronesia' do |c|
307
+ c.timezone 'Pacific/Chuuk', 89, 12, 9107, 60, 'Chuuk (Truk) and Yap'
308
+ c.timezone 'Pacific/Pohnpei', 209, 30, 9493, 60, 'Pohnpei (Ponape)'
309
+ c.timezone 'Pacific/Kosrae', 319, 60, 9779, 60, 'Kosrae'
310
+ end
311
+ country 'FO', 'Faroe Islands' do |c|
312
+ c.timezone 'Atlantic/Faroe', 3721, 60, -203, 30
313
+ end
314
+ country 'FR', 'France' do |c|
315
+ c.timezone 'Europe/Paris', 733, 15, 7, 3
316
+ end
317
+ country 'GA', 'Gabon' do |c|
318
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
319
+ end
320
+ country 'GB', 'Britain (UK)' do |c|
321
+ c.timezone 'Europe/London', 6181, 120, -451, 3600
322
+ end
323
+ country 'GD', 'Grenada' do |c|
324
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
325
+ end
326
+ country 'GE', 'Georgia' do |c|
327
+ c.timezone 'Asia/Tbilisi', 2503, 60, 2689, 60
328
+ end
329
+ country 'GF', 'French Guiana' do |c|
330
+ c.timezone 'America/Cayenne', 74, 15, -157, 3
331
+ end
332
+ country 'GG', 'Guernsey' do |c|
333
+ c.timezone 'Europe/London', 6181, 120, -451, 3600
334
+ end
335
+ country 'GH', 'Ghana' do |c|
336
+ c.timezone 'Africa/Accra', 111, 20, -13, 60
337
+ end
338
+ country 'GI', 'Gibraltar' do |c|
339
+ c.timezone 'Europe/Gibraltar', 542, 15, -107, 20
340
+ end
341
+ country 'GL', 'Greenland' do |c|
342
+ c.timezone 'America/Godthab', 3851, 60, -776, 15, 'most locations'
343
+ c.timezone 'America/Danmarkshavn', 2303, 30, -56, 3, 'east coast, north of Scoresbysund'
344
+ c.timezone 'America/Scoresbysund', 4229, 60, -659, 30, 'Scoresbysund / Ittoqqortoormiit'
345
+ c.timezone 'America/Thule', 2297, 30, -4127, 60, 'Thule / Pituffik'
346
+ end
347
+ country 'GM', 'Gambia' do |c|
348
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
349
+ end
350
+ country 'GN', 'Guinea' do |c|
351
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
352
+ end
353
+ country 'GP', 'Guadeloupe' do |c|
354
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
355
+ end
356
+ country 'GQ', 'Equatorial Guinea' do |c|
357
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
358
+ end
359
+ country 'GR', 'Greece' do |c|
360
+ c.timezone 'Europe/Athens', 1139, 30, 1423, 60
361
+ end
362
+ country 'GS', 'South Georgia & the South Sandwich Islands' do |c|
363
+ c.timezone 'Atlantic/South_Georgia', -814, 15, -548, 15
364
+ end
365
+ country 'GT', 'Guatemala' do |c|
366
+ c.timezone 'America/Guatemala', 439, 30, -5431, 60
367
+ end
368
+ country 'GU', 'Guam' do |c|
369
+ c.timezone 'Pacific/Guam', 202, 15, 579, 4
370
+ end
371
+ country 'GW', 'Guinea-Bissau' do |c|
372
+ c.timezone 'Africa/Bissau', 237, 20, -187, 12
373
+ end
374
+ country 'GY', 'Guyana' do |c|
375
+ c.timezone 'America/Guyana', 34, 5, -349, 6
376
+ end
377
+ country 'HK', 'Hong Kong' do |c|
378
+ c.timezone 'Asia/Hong_Kong', 1337, 60, 2283, 20
379
+ end
380
+ country 'HM', 'Heard Island & McDonald Islands'
381
+ country 'HN', 'Honduras' do |c|
382
+ c.timezone 'America/Tegucigalpa', 141, 10, -5233, 60
383
+ end
384
+ country 'HR', 'Croatia' do |c|
385
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
386
+ end
387
+ country 'HT', 'Haiti' do |c|
388
+ c.timezone 'America/Port-au-Prince', 278, 15, -217, 3
389
+ end
390
+ country 'HU', 'Hungary' do |c|
391
+ c.timezone 'Europe/Budapest', 95, 2, 229, 12
392
+ end
393
+ country 'ID', 'Indonesia' do |c|
394
+ c.timezone 'Asia/Jakarta', -37, 6, 534, 5, 'Java & Sumatra'
395
+ c.timezone 'Asia/Pontianak', -1, 30, 328, 3, 'west & central Borneo'
396
+ c.timezone 'Asia/Makassar', -307, 60, 597, 5, 'east & south Borneo, Sulawesi (Celebes), Bali, Nusa Tengarra, west Timor'
397
+ c.timezone 'Asia/Jayapura', -38, 15, 1407, 10, 'west New Guinea (Irian Jaya) & Malukus (Moluccas)'
398
+ end
399
+ country 'IE', 'Ireland' do |c|
400
+ c.timezone 'Europe/Dublin', 160, 3, -25, 4
401
+ end
402
+ country 'IL', 'Israel' do |c|
403
+ c.timezone 'Asia/Jerusalem', 11441, 360, 63403, 1800
404
+ end
405
+ country 'IM', 'Isle of Man' do |c|
406
+ c.timezone 'Europe/London', 6181, 120, -451, 3600
407
+ end
408
+ country 'IN', 'India' do |c|
409
+ c.timezone 'Asia/Kolkata', 338, 15, 2651, 30
410
+ end
411
+ country 'IO', 'British Indian Ocean Territory' do |c|
412
+ c.timezone 'Indian/Chagos', -22, 3, 869, 12
413
+ end
414
+ country 'IQ', 'Iraq' do |c|
415
+ c.timezone 'Asia/Baghdad', 667, 20, 533, 12
416
+ end
417
+ country 'IR', 'Iran' do |c|
418
+ c.timezone 'Asia/Tehran', 107, 3, 1543, 30
419
+ end
420
+ country 'IS', 'Iceland' do |c|
421
+ c.timezone 'Atlantic/Reykjavik', 1283, 20, -437, 20
422
+ end
423
+ country 'IT', 'Italy' do |c|
424
+ c.timezone 'Europe/Rome', 419, 10, 749, 60
425
+ end
426
+ country 'JE', 'Jersey' do |c|
427
+ c.timezone 'Europe/London', 6181, 120, -451, 3600
428
+ end
429
+ country 'JM', 'Jamaica' do |c|
430
+ c.timezone 'America/Jamaica', 12937, 720, -11519, 150
431
+ end
432
+ country 'JO', 'Jordan' do |c|
433
+ c.timezone 'Asia/Amman', 639, 20, 539, 15
434
+ end
435
+ country 'JP', 'Japan' do |c|
436
+ c.timezone 'Asia/Tokyo', 32089, 900, 503081, 3600
437
+ end
438
+ country 'KE', 'Kenya' do |c|
439
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
440
+ end
441
+ country 'KG', 'Kyrgyzstan' do |c|
442
+ c.timezone 'Asia/Bishkek', 429, 10, 373, 5
443
+ end
444
+ country 'KH', 'Cambodia' do |c|
445
+ c.timezone 'Asia/Bangkok', 55, 4, 6031, 60
446
+ end
447
+ country 'KI', 'Kiribati' do |c|
448
+ c.timezone 'Pacific/Tarawa', 17, 12, 173, 1, 'Gilbert Islands'
449
+ c.timezone 'Pacific/Enderbury', -47, 15, -2053, 12, 'Phoenix Islands'
450
+ c.timezone 'Pacific/Kiritimati', 28, 15, -472, 3, 'Line Islands'
451
+ end
452
+ country 'KM', 'Comoros' do |c|
453
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
454
+ end
455
+ country 'KN', 'St Kitts & Nevis' do |c|
456
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
457
+ end
458
+ country 'KP', 'Korea (North)' do |c|
459
+ c.timezone 'Asia/Pyongyang', 2341, 60, 503, 4
460
+ end
461
+ country 'KR', 'Korea (South)' do |c|
462
+ c.timezone 'Asia/Seoul', 751, 20, 3809, 30
463
+ end
464
+ country 'KW', 'Kuwait' do |c|
465
+ c.timezone 'Asia/Riyadh', 739, 30, 2803, 60
466
+ end
467
+ country 'KY', 'Cayman Islands' do |c|
468
+ c.timezone 'America/Panama', 269, 30, -1193, 15
469
+ end
470
+ country 'KZ', 'Kazakhstan' do |c|
471
+ c.timezone 'Asia/Almaty', 173, 4, 1539, 20, 'most locations'
472
+ c.timezone 'Asia/Qyzylorda', 224, 5, 982, 15, 'Qyzylorda (Kyzylorda, Kzyl-Orda)'
473
+ c.timezone 'Asia/Aqtobe', 3017, 60, 343, 6, 'Aqtobe (Aktobe)'
474
+ c.timezone 'Asia/Aqtau', 2671, 60, 754, 15, 'Atyrau (Atirau, Gur\'yev), Mangghystau (Mankistau)'
475
+ c.timezone 'Asia/Oral', 3073, 60, 1027, 20, 'West Kazakhstan'
476
+ end
477
+ country 'LA', 'Laos' do |c|
478
+ c.timezone 'Asia/Bangkok', 55, 4, 6031, 60
479
+ end
480
+ country 'LB', 'Lebanon' do |c|
481
+ c.timezone 'Asia/Beirut', 2033, 60, 71, 2
482
+ end
483
+ country 'LC', 'St Lucia' do |c|
484
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
485
+ end
486
+ country 'LI', 'Liechtenstein' do |c|
487
+ c.timezone 'Europe/Zurich', 2843, 60, 128, 15, 'Swiss time'
488
+ end
489
+ country 'LK', 'Sri Lanka' do |c|
490
+ c.timezone 'Asia/Colombo', 104, 15, 1597, 20
491
+ end
492
+ country 'LR', 'Liberia' do |c|
493
+ c.timezone 'Africa/Monrovia', 63, 10, -647, 60
494
+ end
495
+ country 'LS', 'Lesotho' do |c|
496
+ c.timezone 'Africa/Johannesburg', -105, 4, 28, 1
497
+ end
498
+ country 'LT', 'Lithuania' do |c|
499
+ c.timezone 'Europe/Vilnius', 3281, 60, 1519, 60
500
+ end
501
+ country 'LU', 'Luxembourg' do |c|
502
+ c.timezone 'Europe/Luxembourg', 248, 5, 123, 20
503
+ end
504
+ country 'LV', 'Latvia' do |c|
505
+ c.timezone 'Europe/Riga', 1139, 20, 241, 10
506
+ end
507
+ country 'LY', 'Libya' do |c|
508
+ c.timezone 'Africa/Tripoli', 329, 10, 791, 60
509
+ end
510
+ country 'MA', 'Morocco' do |c|
511
+ c.timezone 'Africa/Casablanca', 673, 20, -91, 12
512
+ end
513
+ country 'MC', 'Monaco' do |c|
514
+ c.timezone 'Europe/Monaco', 437, 10, 443, 60
515
+ end
516
+ country 'MD', 'Moldova' do |c|
517
+ c.timezone 'Europe/Chisinau', 47, 1, 173, 6
518
+ end
519
+ country 'ME', 'Montenegro' do |c|
520
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
521
+ end
522
+ country 'MF', 'St Martin (French part)' do |c|
523
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
524
+ end
525
+ country 'MG', 'Madagascar' do |c|
526
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
527
+ end
528
+ country 'MH', 'Marshall Islands' do |c|
529
+ c.timezone 'Pacific/Majuro', 143, 20, 856, 5, 'most locations'
530
+ c.timezone 'Pacific/Kwajalein', 109, 12, 502, 3, 'Kwajalein'
531
+ end
532
+ country 'MK', 'Macedonia' do |c|
533
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
534
+ end
535
+ country 'ML', 'Mali' do |c|
536
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
537
+ end
538
+ country 'MM', 'Myanmar (Burma)' do |c|
539
+ c.timezone 'Asia/Rangoon', 1007, 60, 577, 6
540
+ end
541
+ country 'MN', 'Mongolia' do |c|
542
+ c.timezone 'Asia/Ulaanbaatar', 575, 12, 6413, 60, 'most locations'
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'
545
+ end
546
+ country 'MO', 'Macau' do |c|
547
+ c.timezone 'Asia/Macau', 667, 30, 1363, 12
548
+ end
549
+ country 'MP', 'Northern Mariana Islands' do |c|
550
+ c.timezone 'Pacific/Guam', 202, 15, 579, 4
551
+ end
552
+ country 'MQ', 'Martinique' do |c|
553
+ c.timezone 'America/Martinique', 73, 5, -733, 12
554
+ end
555
+ country 'MR', 'Mauritania' do |c|
556
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
557
+ end
558
+ country 'MS', 'Montserrat' do |c|
559
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
560
+ end
561
+ country 'MT', 'Malta' do |c|
562
+ c.timezone 'Europe/Malta', 359, 10, 871, 60
563
+ end
564
+ country 'MU', 'Mauritius' do |c|
565
+ c.timezone 'Indian/Mauritius', -121, 6, 115, 2
566
+ end
567
+ country 'MV', 'Maldives' do |c|
568
+ c.timezone 'Indian/Maldives', 25, 6, 147, 2
569
+ end
570
+ country 'MW', 'Malawi' do |c|
571
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
572
+ end
573
+ country 'MX', 'Mexico' do |c|
574
+ c.timezone 'America/Mexico_City', 97, 5, -1983, 20, 'Central Time - most locations'
575
+ c.timezone 'America/Cancun', 253, 12, -2603, 30, 'Central Time - Quintana Roo'
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'
579
+ c.timezone 'America/Mazatlan', 1393, 60, -1277, 12, 'Mountain Time - S Baja, Nayarit, Sinaloa'
580
+ c.timezone 'America/Chihuahua', 859, 30, -1273, 12, 'Mexican Mountain Time - Chihuahua away from US border'
581
+ c.timezone 'America/Ojinaga', 887, 30, -1253, 12, 'US Mountain Time - Chihuahua near US border'
582
+ c.timezone 'America/Hermosillo', 436, 15, -3329, 30, 'Mountain Standard Time - Sonora'
583
+ c.timezone 'America/Tijuana', 488, 15, -7021, 60, 'US Pacific Time - Baja California near US border'
584
+ c.timezone 'America/Santa_Isabel', 303, 10, -1723, 15, 'Mexican Pacific Time - Baja California away from US border'
585
+ c.timezone 'America/Bahia_Banderas', 104, 5, -421, 4, 'Mexican Central Time - Bahía de Banderas'
586
+ end
587
+ country 'MY', 'Malaysia' do |c|
588
+ c.timezone 'Asia/Kuala_Lumpur', 19, 6, 1017, 10, 'peninsular Malaysia'
589
+ c.timezone 'Asia/Kuching', 31, 20, 331, 3, 'Sabah & Sarawak'
590
+ end
591
+ country 'MZ', 'Mozambique' do |c|
592
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
593
+ end
594
+ country 'NA', 'Namibia' do |c|
595
+ c.timezone 'Africa/Windhoek', -677, 30, 171, 10
596
+ end
597
+ country 'NC', 'New Caledonia' do |c|
598
+ c.timezone 'Pacific/Noumea', -334, 15, 3329, 20
599
+ end
600
+ country 'NE', 'Niger' do |c|
601
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
602
+ end
603
+ country 'NF', 'Norfolk Island' do |c|
604
+ c.timezone 'Pacific/Norfolk', -581, 20, 5039, 30
605
+ end
606
+ country 'NG', 'Nigeria' do |c|
607
+ c.timezone 'Africa/Lagos', 129, 20, 17, 5, 'West Africa Time (UTC+1)'
608
+ end
609
+ country 'NI', 'Nicaragua' do |c|
610
+ c.timezone 'America/Managua', 243, 20, -5177, 60
611
+ end
612
+ country 'NL', 'Netherlands' do |c|
613
+ c.timezone 'Europe/Amsterdam', 1571, 30, 49, 10
614
+ end
615
+ country 'NO', 'Norway' do |c|
616
+ c.timezone 'Europe/Oslo', 719, 12, 43, 4
617
+ end
618
+ country 'NP', 'Nepal' do |c|
619
+ c.timezone 'Asia/Kathmandu', 1663, 60, 5119, 60
620
+ end
621
+ country 'NR', 'Nauru' do |c|
622
+ c.timezone 'Pacific/Nauru', -31, 60, 2003, 12
623
+ end
624
+ country 'NU', 'Niue' do |c|
625
+ c.timezone 'Pacific/Niue', -1141, 60, -2039, 12
626
+ end
627
+ country 'NZ', 'New Zealand' do |c|
628
+ c.timezone 'Pacific/Auckland', -553, 15, 5243, 30, 'New Zealand time'
629
+ c.timezone 'Pacific/Chatham', -879, 20, -3531, 20, 'Chatham Islands'
630
+ end
631
+ country 'OM', 'Oman' do |c|
632
+ c.timezone 'Asia/Dubai', 253, 10, 553, 10
633
+ end
634
+ country 'PA', 'Panama' do |c|
635
+ c.timezone 'America/Panama', 269, 30, -1193, 15
636
+ end
637
+ country 'PE', 'Peru' do |c|
638
+ c.timezone 'America/Lima', -241, 20, -1541, 20
639
+ end
640
+ country 'PF', 'French Polynesia' do |c|
641
+ c.timezone 'Pacific/Tahiti', -263, 15, -4487, 30, 'Society Islands'
642
+ c.timezone 'Pacific/Marquesas', -9, 1, -279, 2, 'Marquesas Islands'
643
+ c.timezone 'Pacific/Gambier', -347, 15, -2699, 20, 'Gambier Islands'
644
+ end
645
+ country 'PG', 'Papua New Guinea' do |c|
646
+ c.timezone 'Pacific/Port_Moresby', -19, 2, 883, 6
647
+ end
648
+ country 'PH', 'Philippines' do |c|
649
+ c.timezone 'Asia/Manila', 175, 12, 121, 1
650
+ end
651
+ country 'PK', 'Pakistan' do |c|
652
+ c.timezone 'Asia/Karachi', 373, 15, 1341, 20
653
+ end
654
+ country 'PL', 'Poland' do |c|
655
+ c.timezone 'Europe/Warsaw', 209, 4, 21, 1
656
+ end
657
+ country 'PM', 'St Pierre & Miquelon' do |c|
658
+ c.timezone 'America/Miquelon', 941, 20, -169, 3
659
+ end
660
+ country 'PN', 'Pitcairn' do |c|
661
+ c.timezone 'Pacific/Pitcairn', -376, 15, -1561, 12
662
+ end
663
+ country 'PR', 'Puerto Rico' do |c|
664
+ c.timezone 'America/Puerto_Rico', 11081, 600, -118991, 1800
665
+ end
666
+ country 'PS', 'Palestine' do |c|
667
+ c.timezone 'Asia/Gaza', 63, 2, 517, 15, 'Gaza Strip'
668
+ c.timezone 'Asia/Hebron', 473, 15, 7019, 200, 'West Bank'
669
+ end
670
+ country 'PT', 'Portugal' do |c|
671
+ c.timezone 'Europe/Lisbon', 2323, 60, -137, 15, 'mainland'
672
+ c.timezone 'Atlantic/Madeira', 979, 30, -169, 10, 'Madeira Islands'
673
+ c.timezone 'Atlantic/Azores', 566, 15, -77, 3, 'Azores'
674
+ end
675
+ country 'PW', 'Palau' do |c|
676
+ c.timezone 'Pacific/Palau', 22, 3, 8069, 60
677
+ end
678
+ country 'PY', 'Paraguay' do |c|
679
+ c.timezone 'America/Asuncion', -379, 15, -173, 3
680
+ end
681
+ country 'QA', 'Qatar' do |c|
682
+ c.timezone 'Asia/Qatar', 1517, 60, 773, 15
683
+ end
684
+ country 'RE', 'Reunion' do |c|
685
+ c.timezone 'Indian/Reunion', -313, 15, 832, 15, 'Réunion, Crozet Is, Scattered Is'
686
+ end
687
+ country 'RO', 'Romania' do |c|
688
+ c.timezone 'Europe/Bucharest', 1333, 30, 261, 10
689
+ end
690
+ country 'RS', 'Serbia' do |c|
691
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
692
+ end
693
+ country 'RU', 'Russia' do |c|
694
+ c.timezone 'Europe/Kaliningrad', 3283, 60, 41, 2, 'Moscow-01 - Kaliningrad'
695
+ c.timezone 'Europe/Moscow', 66907, 1200, 8464, 225, 'Moscow+00 - west Russia'
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'
699
+ c.timezone 'Asia/Yekaterinburg', 1137, 20, 303, 5, 'Moscow+02 - Urals'
700
+ c.timezone 'Asia/Omsk', 55, 1, 367, 5, 'Moscow+03 - west Siberia'
701
+ c.timezone 'Asia/Novosibirsk', 1651, 30, 995, 12, 'Moscow+03 - Novosibirsk'
702
+ c.timezone 'Asia/Novokuznetsk', 215, 4, 5227, 60, 'Moscow+03 (Moscow+04 after 2014-10-26) - Kemerovo'
703
+ c.timezone 'Asia/Krasnoyarsk', 3361, 60, 557, 6, 'Moscow+04 - Yenisei River'
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'
706
+ c.timezone 'Asia/Yakutsk', 62, 1, 389, 3, 'Moscow+06 - Lena River'
707
+ c.timezone 'Asia/Khandyga', 225563, 3600, 243997, 1800, 'Moscow+06 - Tomponsky, Ust-Maysky'
708
+ c.timezone 'Asia/Vladivostok', 259, 6, 1979, 15, 'Moscow+07 - Amur River'
709
+ c.timezone 'Asia/Sakhalin', 1409, 30, 1427, 10, 'Moscow+07 - Sakhalin Island'
710
+ c.timezone 'Asia/Ust-Nera', 232417, 3600, 10742, 75, 'Moscow+07 - Oymyakonsky'
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'
715
+ end
716
+ country 'RW', 'Rwanda' do |c|
717
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
718
+ end
719
+ country 'SA', 'Saudi Arabia' do |c|
720
+ c.timezone 'Asia/Riyadh', 739, 30, 2803, 60
721
+ end
722
+ country 'SB', 'Solomon Islands' do |c|
723
+ c.timezone 'Pacific/Guadalcanal', -143, 15, 801, 5
724
+ end
725
+ country 'SC', 'Seychelles' do |c|
726
+ c.timezone 'Indian/Mahe', -14, 3, 832, 15
727
+ end
728
+ country 'SD', 'Sudan' do |c|
729
+ c.timezone 'Africa/Khartoum', 78, 5, 488, 15
730
+ end
731
+ country 'SE', 'Sweden' do |c|
732
+ c.timezone 'Europe/Stockholm', 178, 3, 361, 20
733
+ end
734
+ country 'SG', 'Singapore' do |c|
735
+ c.timezone 'Asia/Singapore', 77, 60, 2077, 20
736
+ end
737
+ country 'SH', 'St Helena' do |c|
738
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
739
+ end
740
+ country 'SI', 'Slovenia' do |c|
741
+ c.timezone 'Europe/Belgrade', 269, 6, 41, 2
742
+ end
743
+ country 'SJ', 'Svalbard & Jan Mayen' do |c|
744
+ c.timezone 'Europe/Oslo', 719, 12, 43, 4
745
+ end
746
+ country 'SK', 'Slovakia' do |c|
747
+ c.timezone 'Europe/Prague', 601, 12, 433, 30
748
+ end
749
+ country 'SL', 'Sierra Leone' do |c|
750
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
751
+ end
752
+ country 'SM', 'San Marino' do |c|
753
+ c.timezone 'Europe/Rome', 419, 10, 749, 60
754
+ end
755
+ country 'SN', 'Senegal' do |c|
756
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
757
+ end
758
+ country 'SO', 'Somalia' do |c|
759
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
760
+ end
761
+ country 'SR', 'Suriname' do |c|
762
+ c.timezone 'America/Paramaribo', 35, 6, -331, 6
763
+ end
764
+ country 'SS', 'South Sudan' do |c|
765
+ c.timezone 'Africa/Khartoum', 78, 5, 488, 15
766
+ end
767
+ country 'ST', 'Sao Tome & Principe' do |c|
768
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
769
+ end
770
+ country 'SV', 'El Salvador' do |c|
771
+ c.timezone 'America/El_Salvador', 137, 10, -446, 5
772
+ end
773
+ country 'SX', 'St Maarten (Dutch part)' do |c|
774
+ c.timezone 'America/Curacao', 731, 60, -69, 1
775
+ end
776
+ country 'SY', 'Syria' do |c|
777
+ c.timezone 'Asia/Damascus', 67, 2, 363, 10
778
+ end
779
+ country 'SZ', 'Swaziland' do |c|
780
+ c.timezone 'Africa/Johannesburg', -105, 4, 28, 1
781
+ end
782
+ country 'TC', 'Turks & Caicos Is' do |c|
783
+ c.timezone 'America/Grand_Turk', 322, 15, -1067, 15
784
+ end
785
+ country 'TD', 'Chad' do |c|
786
+ c.timezone 'Africa/Ndjamena', 727, 60, 301, 20
787
+ end
788
+ country 'TF', 'French Southern & Antarctic Lands' do |c|
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
+ end
792
+ country 'TG', 'Togo' do |c|
793
+ c.timezone 'Africa/Abidjan', 319, 60, -121, 30
794
+ end
795
+ country 'TH', 'Thailand' do |c|
796
+ c.timezone 'Asia/Bangkok', 55, 4, 6031, 60
797
+ end
798
+ country 'TJ', 'Tajikistan' do |c|
799
+ c.timezone 'Asia/Dushanbe', 463, 12, 344, 5
800
+ end
801
+ country 'TK', 'Tokelau' do |c|
802
+ c.timezone 'Pacific/Fakaofo', -281, 30, -5137, 30
803
+ end
804
+ country 'TL', 'East Timor' do |c|
805
+ c.timezone 'Asia/Dili', -171, 20, 1507, 12
806
+ end
807
+ country 'TM', 'Turkmenistan' do |c|
808
+ c.timezone 'Asia/Ashgabat', 759, 20, 3503, 60
809
+ end
810
+ country 'TN', 'Tunisia' do |c|
811
+ c.timezone 'Africa/Tunis', 184, 5, 611, 60
812
+ end
813
+ country 'TO', 'Tonga' do |c|
814
+ c.timezone 'Pacific/Tongatapu', -127, 6, -1051, 6
815
+ end
816
+ country 'TR', 'Turkey' do |c|
817
+ c.timezone 'Europe/Istanbul', 2461, 60, 869, 30
818
+ end
819
+ country 'TT', 'Trinidad & Tobago' do |c|
820
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
821
+ end
822
+ country 'TV', 'Tuvalu' do |c|
823
+ c.timezone 'Pacific/Funafuti', -511, 60, 10753, 60
824
+ end
825
+ country 'TW', 'Taiwan' do |c|
826
+ c.timezone 'Asia/Taipei', 501, 20, 243, 2
827
+ end
828
+ country 'TZ', 'Tanzania' do |c|
829
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
830
+ end
831
+ country 'UA', 'Ukraine' do |c|
832
+ c.timezone 'Europe/Kiev', 1513, 30, 1831, 60, 'most locations'
833
+ c.timezone 'Europe/Uzhgorod', 2917, 60, 223, 10, 'Ruthenia'
834
+ c.timezone 'Europe/Zaporozhye', 287, 6, 211, 6, 'Zaporozh\'ye, E Lugansk / Zaporizhia, E Luhansk'
835
+ end
836
+ country 'UG', 'Uganda' do |c|
837
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
838
+ end
839
+ country 'UM', 'US minor outlying islands' do |c|
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
+ end
844
+ country 'US', 'United States' do |c|
845
+ c.timezone 'America/New_York', 48857, 1200, -266423, 3600, 'Eastern Time'
846
+ c.timezone 'America/Detroit', 152393, 3600, -19931, 240, 'Eastern Time - Michigan - most locations'
847
+ c.timezone 'America/Kentucky/Louisville', 9181, 240, -154367, 1800, 'Eastern Time - Kentucky - Louisville area'
848
+ c.timezone 'America/Kentucky/Monticello', 132587, 3600, -101819, 1200, 'Eastern Time - Kentucky - Wayne County'
849
+ c.timezone 'America/Indiana/Indianapolis', 23861, 600, -310169, 3600, 'Eastern Time - Indiana - most locations'
850
+ c.timezone 'America/Indiana/Vincennes', 69619, 1800, -315103, 3600, 'Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties'
851
+ c.timezone 'America/Indiana/Winamac', 29557, 720, -311771, 3600, 'Eastern Time - Indiana - Pulaski County'
852
+ c.timezone 'America/Indiana/Marengo', 17269, 450, -310841, 3600, 'Eastern Time - Indiana - Crawford County'
853
+ c.timezone 'America/Indiana/Petersburg', 138571, 3600, -314203, 3600, 'Eastern Time - Indiana - Pike County'
854
+ c.timezone 'America/Indiana/Vevay', 34873, 900, -153121, 1800, 'Eastern Time - Indiana - Switzerland County'
855
+ c.timezone 'America/Chicago', 837, 20, -1753, 20, 'Central Time'
856
+ c.timezone 'America/Indiana/Tell_City', 136631, 3600, -312341, 3600, 'Central Time - Indiana - Perry County'
857
+ c.timezone 'America/Indiana/Knox', 9911, 240, -693, 8, 'Central Time - Indiana - Starke County'
858
+ c.timezone 'America/Menominee', 40597, 900, -105137, 1200, 'Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties'
859
+ c.timezone 'America/North_Dakota/Center', 169619, 3600, -121559, 1200, 'Central Time - North Dakota - Oliver County'
860
+ c.timezone 'America/North_Dakota/New_Salem', 9369, 200, -121693, 1200, 'Central Time - North Dakota - Morton County (except Mandan area)'
861
+ c.timezone 'America/North_Dakota/Beulah', 56717, 1200, -916, 9, 'Central Time - North Dakota - Mercer County'
862
+ c.timezone 'America/Denver', 47687, 1200, -125981, 1200, 'Mountain Time'
863
+ c.timezone 'America/Boise', 157009, 3600, -46481, 400, 'Mountain Time - south Idaho & east Oregon'
864
+ c.timezone 'America/Phoenix', 20069, 600, -16811, 150, 'Mountain Standard Time - Arizona (except Navajo)'
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'
867
+ c.timezone 'America/Anchorage', 44077, 720, -539641, 3600, 'Alaska Time'
868
+ c.timezone 'America/Juneau', 209887, 3600, -483911, 3600, 'Alaska Time - Alaska panhandle'
869
+ c.timezone 'America/Sitka', 41167, 720, -487087, 3600, 'Alaska Time - southeast Alaska panhandle'
870
+ c.timezone 'America/Yakutat', 214369, 3600, -251509, 1800, 'Alaska Time - Alaska panhandle neck'
871
+ c.timezone 'America/Nome', 58051, 900, -595463, 3600, 'Alaska Time - west Alaska'
872
+ c.timezone 'America/Adak', 1297, 25, -635969, 3600, 'Aleutian Islands'
873
+ c.timezone 'Pacific/Honolulu', 15341, 720, -18943, 120, 'Hawaii time'
874
+ end
875
+ country 'UY', 'Uruguay' do |c|
876
+ c.timezone 'America/Montevideo', -2093, 60, -3371, 60
877
+ end
878
+ country 'UZ', 'Uzbekistan' do |c|
879
+ c.timezone 'Asia/Samarkand', 119, 3, 334, 5, 'west Uzbekistan'
880
+ c.timezone 'Asia/Tashkent', 124, 3, 693, 10, 'east Uzbekistan'
881
+ end
882
+ country 'VA', 'Vatican City' do |c|
883
+ c.timezone 'Europe/Rome', 419, 10, 749, 60
884
+ end
885
+ country 'VC', 'St Vincent' do |c|
886
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
887
+ end
888
+ country 'VE', 'Venezuela' do |c|
889
+ c.timezone 'America/Caracas', 21, 2, -1004, 15
890
+ end
891
+ country 'VG', 'Virgin Islands (UK)' do |c|
892
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
893
+ end
894
+ country 'VI', 'Virgin Islands (US)' do |c|
895
+ c.timezone 'America/Port_of_Spain', 213, 20, -3691, 60
896
+ end
897
+ country 'VN', 'Vietnam' do |c|
898
+ c.timezone 'Asia/Bangkok', 55, 4, 6031, 60
899
+ end
900
+ country 'VU', 'Vanuatu' do |c|
901
+ c.timezone 'Pacific/Efate', -53, 3, 2021, 12
902
+ end
903
+ country 'WF', 'Wallis & Futuna' do |c|
904
+ c.timezone 'Pacific/Wallis', -133, 10, -1057, 6
905
+ end
906
+ country 'WS', 'Samoa (western)' do |c|
907
+ c.timezone 'Pacific/Apia', -83, 6, -2576, 15
908
+ end
909
+ country 'YE', 'Yemen' do |c|
910
+ c.timezone 'Asia/Riyadh', 739, 30, 2803, 60
911
+ end
912
+ country 'YT', 'Mayotte' do |c|
913
+ c.timezone 'Africa/Nairobi', -77, 60, 2209, 60
914
+ end
915
+ country 'ZA', 'South Africa' do |c|
916
+ c.timezone 'Africa/Johannesburg', -105, 4, 28, 1
917
+ end
918
+ country 'ZM', 'Zambia' do |c|
919
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
920
+ end
921
+ country 'ZW', 'Zimbabwe' do |c|
922
+ c.timezone 'Africa/Maputo', -779, 30, 391, 12, 'Central Africa Time (UTC+2)'
923
+ end
924
+ end
925
+ end
926
+ end
927
+ end