timezone 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -1,4 +1,6 @@
1
1
  language: ruby
2
+ script: "bundle exec rake test"
2
3
  rvm:
3
4
  - 1.9.2
4
5
  - 1.9.3
6
+ - 2.0.0
data/CHANGES.markdown CHANGED
@@ -1,6 +1,6 @@
1
- # 0.2.0
1
+ # 0.2.1
2
2
 
3
- * Update JSON data from the tzdata repository. (panthomakos)
3
+ * Update JSON data from the tzdata repository. (panthomakos, petergoldstein)
4
4
 
5
5
  # 0.1.6
6
6
 
@@ -2,6 +2,10 @@
2
2
 
3
3
  * Bundler is used to manage dependencies.
4
4
  * Tests can be run with the `rake` command.
5
- * Updated JSON data is imported from the
6
- [tzdata](https://gitorious.org/tz/tzdata) repository.
7
5
  * Write tests and create pull requests.
6
+
7
+ # How to Acquire New TZData Information
8
+
9
+ * Download `tzdataXYZ.tar.gz` from [IANA](http://www.iana.org/time-zones).
10
+ * Extract using `tar -xvzf tzdataXYZ.tar.gz -C path`.
11
+ * Convert the timezone text files to JSON.
data/README.markdown CHANGED
@@ -42,13 +42,19 @@ Finally, pass the coordinates to your timezone initialization function.
42
42
  timezone.time Time.now
43
43
  => 2011-02-12 12:02:13 UTC
44
44
 
45
+ ## Displaying a timezone's name in a Rails/ActiveSupport compatible format
46
+
47
+ timezone = Timezone::Zone.new :latlon => [-34.92771808058, 138.477041423321]
48
+ timezone.active_support_time_zone
49
+ => "Eastern Time (US & Canada)"
50
+
45
51
  ## Getting the complete list of timezones.
46
52
 
47
53
  Retrieving the complete list of timezones is quite simple:
48
54
 
49
55
  timezones = Timezone::Zone.names
50
56
  => ["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", ...]
51
-
57
+
52
58
  ## Listing current information from specific timezones
53
59
 
54
60
  If you need information from a specific set of timezones rather than a complete list or one at a time, this can be accomplished with the following:
@@ -62,19 +68,19 @@ If you need information from a specific set of timezones rather than a complete
62
68
  # :utc_offset => -5, # UTC offset in hours
63
69
  # :dst => false
64
70
  # }
65
-
71
+
66
72
  You can customize what is placed in the `:title` key in the configuration block. This would be useful in the case of an HTML select list that you would like to display different values than the default name. For example, the following configuration will set the `:title` key in the list hash to "Chicago" rather than "America/Chicago".
67
73
 
68
74
  Timezone::Configure.build do |c|
69
75
  c.replace "America/Chicago", with: "Chicago"
70
76
  end
71
-
77
+
72
78
  Also, if you make numerous calls to the **Zone#list** method in your software, but you would like to avoid duplicating which timezones to retrieve, you can set a default in the configuration:
73
79
 
74
80
  Timezone::Configure.begin do |c|
75
81
  c.default_for_list = "America/Chicago", "America/New_York", "Australia/Sydney"
76
82
  end
77
-
83
+
78
84
  Finally, by default the **Zone#list** method will order the results by the timezone's UTC offset. You can customize this behavior this way:
79
85
 
80
86
  Timezone::Configure.begin do |c|
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake/testtask'
5
5
 
6
6
  Rake::TestTask.new do |t|
7
7
  t.libs << "test"
8
- t.test_files = FileList['test/*_test.rb']
8
+ t.test_files = FileList['test/**/*_test.rb']
9
9
  t.verbose = true
10
10
  end
11
11
 
@@ -1386,4 +1386,4 @@
1386
1386
  "offset": 7200,
1387
1387
  "name": "EET"
1388
1388
  }
1389
- ]}
1389
+ ]}
data/lib/timezone.rb CHANGED
@@ -1,3 +1,3 @@
1
- require File.expand_path('../timezone/zone', __FILE__)
1
+ require 'timezone/zone'
2
2
 
3
- module Timezone; end
3
+ module Timezone; end
@@ -0,0 +1,410 @@
1
+ module Timezone
2
+ # ActiveSupport class for mapping tz info identifiers to rails identifiers
3
+ class ActiveSupport
4
+ TIMEZONE_MAPPING = {
5
+ "Australia/Adelaide" => "Adelaide",
6
+ "Australia/Broken_Hill" => "Adelaide",
7
+ "America/Anchorage" => "Alaska",
8
+ "America/Juneau" => "Alaska",
9
+ "America/Nome" => "Alaska",
10
+ "America/Yakutat" => "Alaska",
11
+ "Pacific/Gambier" => "Alaska",
12
+ "Asia/Almaty" => "Almaty",
13
+ "Europe/Amsterdam" => "Amsterdam",
14
+ "Europe/Athens" => "Athens",
15
+ "America/Anguilla" => "Atlantic Time (Canada)",
16
+ "America/Antigua" => "Atlantic Time (Canada)",
17
+ "America/Argentina/San_Luis" => "Atlantic Time (Canada)",
18
+ "America/Aruba" => "Atlantic Time (Canada)",
19
+ "America/Asuncion" => "Atlantic Time (Canada)",
20
+ "America/Barbados" => "Atlantic Time (Canada)",
21
+ "America/Blanc-Sablon" => "Atlantic Time (Canada)",
22
+ "America/Boa_Vista" => "Atlantic Time (Canada)",
23
+ "America/Campo_Grande" => "Atlantic Time (Canada)",
24
+ "America/Cuiaba" => "Atlantic Time (Canada)",
25
+ "America/Curacao" => "Atlantic Time (Canada)",
26
+ "America/Dominica" => "Atlantic Time (Canada)",
27
+ "America/Eirunepe" => "Atlantic Time (Canada)",
28
+ "America/Glace_Bay" => "Atlantic Time (Canada)",
29
+ "America/Goose_Bay" => "Atlantic Time (Canada)",
30
+ "America/Grenada" => "Atlantic Time (Canada)",
31
+ "America/Guadeloupe" => "Atlantic Time (Canada)",
32
+ "America/Guyana" => "Atlantic Time (Canada)",
33
+ "America/Halifax" => "Atlantic Time (Canada)",
34
+ "America/Manaus" => "Atlantic Time (Canada)",
35
+ "America/Marigot" => "Atlantic Time (Canada)",
36
+ "America/Martinique" => "Atlantic Time (Canada)",
37
+ "America/Moncton" => "Atlantic Time (Canada)",
38
+ "America/Montserrat" => "Atlantic Time (Canada)",
39
+ "America/Porto_Velho" => "Atlantic Time (Canada)",
40
+ "America/Port_of_Spain" => "Atlantic Time (Canada)",
41
+ "America/Puerto_Rico" => "Atlantic Time (Canada)",
42
+ "America/Rio_Branco" => "Atlantic Time (Canada)",
43
+ "America/Santo_Domingo" => "Atlantic Time (Canada)",
44
+ "America/St_Barthelemy" => "Atlantic Time (Canada)",
45
+ "America/St_Kitts" => "Atlantic Time (Canada)",
46
+ "America/St_Lucia" => "Atlantic Time (Canada)",
47
+ "America/St_Thomas" => "Atlantic Time (Canada)",
48
+ "America/St_Vincent" => "Atlantic Time (Canada)",
49
+ "America/Thule" => "Atlantic Time (Canada)",
50
+ "America/Tortola" => "Atlantic Time (Canada)",
51
+ "Antarctica/Palmer" => "Atlantic Time (Canada)",
52
+ "Atlantic/Bermuda" => "Atlantic Time (Canada)",
53
+ "Atlantic/Stanley" => "Atlantic Time (Canada)",
54
+ "Antarctica/McMurdo" => "Auckland",
55
+ "Antarctica/South_Pole" => "Auckland",
56
+ "Pacific/Auckland" => "Auckland",
57
+ "Pacific/Funafuti" => "Auckland",
58
+ "Pacific/Kwajalein" => "Auckland",
59
+ "Pacific/Majuro" => "Auckland",
60
+ "Pacific/Nauru" => "Auckland",
61
+ "Pacific/Tarawa" => "Auckland",
62
+ "Pacific/Wake" => "Auckland",
63
+ "Pacific/Wallis" => "Auckland",
64
+ "Atlantic/Azores" => "Azores",
65
+ "Asia/Baghdad" => "Baghdad",
66
+ "Asia/Baku" => "Baku",
67
+ "Asia/Dubai" => "Baku",
68
+ "Indian/Mahe" => "Baku",
69
+ "Indian/Mauritius" => "Baku",
70
+ "Indian/Reunion" => "Baku",
71
+ "Asia/Bangkok" => "Bangkok",
72
+ "Europe/Belgrade" => "Belgrade",
73
+ "Europe/Berlin" => "Berlin",
74
+ "America/Bogota" => "Bogota",
75
+ "Europe/Bratislava" => "Bratislava",
76
+ "Australia/Brisbane" => "Brisbane",
77
+ "Europe/Brussels" => "Brussels",
78
+ "Europe/Bucharest" => "Bucharest",
79
+ "Europe/Budapest" => "Budapest",
80
+ "America/Araguaina" => "Buenos Aires",
81
+ "America/Argentina/Buenos_Aires" => "Buenos Aires",
82
+ "America/Argentina/Catamarca" => "Buenos Aires",
83
+ "America/Argentina/Cordoba" => "Buenos Aires",
84
+ "America/Argentina/Jujuy" => "Buenos Aires",
85
+ "America/Argentina/La_Rioja" => "Buenos Aires",
86
+ "America/Argentina/Mendoza" => "Buenos Aires",
87
+ "America/Argentina/Rio_Gallegos" => "Buenos Aires",
88
+ "America/Argentina/Salta" => "Buenos Aires",
89
+ "America/Argentina/San_Juan" => "Buenos Aires",
90
+ "America/Argentina/Tucuman" => "Buenos Aires",
91
+ "America/Argentina/Ushuaia" => "Buenos Aires",
92
+ "America/Bahia" => "Buenos Aires",
93
+ "America/Belem" => "Buenos Aires",
94
+ "America/Cayenne" => "Buenos Aires",
95
+ "America/Fortaleza" => "Buenos Aires",
96
+ "America/Godthab" => "Buenos Aires",
97
+ "America/Maceio" => "Buenos Aires",
98
+ "America/Miquelon" => "Buenos Aires",
99
+ "America/Montevideo" => "Buenos Aires",
100
+ "America/Paramaribo" => "Buenos Aires",
101
+ "America/Recife" => "Buenos Aires",
102
+ "America/Santarem" => "Buenos Aires",
103
+ "America/Sao_Paulo" => "Buenos Aires",
104
+ "Antarctica/Rothera" => "Buenos Aires",
105
+ "Africa/Blantyre" => "Cairo",
106
+ "Africa/Bujumbura" => "Cairo",
107
+ "Africa/Cairo" => "Cairo",
108
+ "Africa/Gaborone" => "Cairo",
109
+ "Africa/Johannesburg" => "Cairo",
110
+ "Africa/Kigali" => "Cairo",
111
+ "Africa/Lubumbashi" => "Cairo",
112
+ "Africa/Lusaka" => "Cairo",
113
+ "Africa/Maputo" => "Cairo",
114
+ "Africa/Maseru" => "Cairo",
115
+ "Africa/Mbabane" => "Cairo",
116
+ "Africa/Tripoli" => "Cairo",
117
+ "Asia/Amman" => "Cairo",
118
+ "Asia/Beirut" => "Cairo",
119
+ "Asia/Damascus" => "Cairo",
120
+ "Asia/Gaza" => "Cairo",
121
+ "Asia/Nicosia" => "Cairo",
122
+ "Europe/Chisinau" => "Cairo",
123
+ "Europe/Kaliningrad" => "Cairo",
124
+ "Europe/Kiev" => "Cairo",
125
+ "Europe/Mariehamn" => "Cairo",
126
+ "Europe/Simferopol" => "Cairo",
127
+ "Europe/Uzhgorod" => "Cairo",
128
+ "Europe/Zaporozhye" => "Cairo",
129
+ "America/Scoresbysund" => "Cape Verde Is.",
130
+ "Atlantic/Cape_Verde" => "Cape Verde Is.",
131
+ "America/Caracas" => "Caracas",
132
+ "Africa/Casablanca" => "Casablanca",
133
+ "America/Belize" => "Central Time (US & Canada)",
134
+ "America/Cancun" => "Central Time (US & Canada)",
135
+ "America/Chicago" => "Central Time (US & Canada)",
136
+ "America/Costa_Rica" => "Central Time (US & Canada)",
137
+ "America/El_Salvador" => "Central Time (US & Canada)",
138
+ "America/Guatemala" => "Central Time (US & Canada)",
139
+ "America/Indiana/Knox" => "Central Time (US & Canada)",
140
+ "America/Indiana/Tell_City" => "Central Time (US & Canada)",
141
+ "America/Managua" => "Central Time (US & Canada)",
142
+ "America/Matamoros" => "Central Time (US & Canada)",
143
+ "America/Menominee" => "Central Time (US & Canada)",
144
+ "America/Merida" => "Central Time (US & Canada)",
145
+ "America/North_Dakota/Center" => "Central Time (US & Canada)",
146
+ "America/North_Dakota/New_Salem" => "Central Time (US & Canada)",
147
+ "America/Rainy_River" => "Central Time (US & Canada)",
148
+ "America/Rankin_Inlet" => "Central Time (US & Canada)",
149
+ "America/Regina" => "Central Time (US & Canada)",
150
+ "America/Swift_Current" => "Central Time (US & Canada)",
151
+ "America/Tegucigalpa" => "Central Time (US & Canada)",
152
+ "America/Winnipeg" => "Central Time (US & Canada)",
153
+ "Pacific/Easter" => "Central Time (US & Canada)",
154
+ "Pacific/Galapagos" => "Central Time (US & Canada)",
155
+ "America/Chihuahua" => "Chihuahua",
156
+ "Asia/Chongqing" => "Chongqing",
157
+ "Europe/Copenhagen" => "Copenhagen",
158
+ "Australia/Darwin" => "Darwin",
159
+ "Antarctica/Mawson" => "Dhaka",
160
+ "Asia/Bishkek" => "Dhaka",
161
+ "Asia/Dhaka" => "Dhaka",
162
+ "Asia/Karachi" => "Dhaka",
163
+ "Asia/Novokuznetsk" => "Dhaka",
164
+ "Asia/Omsk" => "Dhaka",
165
+ "Asia/Qyzylorda" => "Dhaka",
166
+ "Asia/Thimphu" => "Dhaka",
167
+ "Indian/Chagos" => "Dhaka",
168
+ "Europe/Dublin" => "Dublin",
169
+ "America/Atikokan" => "Eastern Time (US & Canada)",
170
+ "America/Cayman" => "Eastern Time (US & Canada)",
171
+ "America/Detroit" => "Eastern Time (US & Canada)",
172
+ "America/Grand_Turk" => "Eastern Time (US & Canada)",
173
+ "America/Guayaquil" => "Eastern Time (US & Canada)",
174
+ "America/Havana" => "Eastern Time (US & Canada)",
175
+ "America/Indiana/Indianapolis" => "Eastern Time (US & Canada)",
176
+ "America/Indiana/Marengo" => "Eastern Time (US & Canada)",
177
+ "America/Indiana/Petersburg" => "Eastern Time (US & Canada)",
178
+ "America/Indiana/Vevay" => "Eastern Time (US & Canada)",
179
+ "America/Indiana/Vincennes" => "Eastern Time (US & Canada)",
180
+ "America/Indiana/Winamac" => "Eastern Time (US & Canada)",
181
+ "America/Iqaluit" => "Eastern Time (US & Canada)",
182
+ "America/Jamaica" => "Eastern Time (US & Canada)",
183
+ "America/Kentucky/Louisville" => "Eastern Time (US & Canada)",
184
+ "America/Kentucky/Monticello" => "Eastern Time (US & Canada)",
185
+ "America/Montreal" => "Eastern Time (US & Canada)",
186
+ "America/Nassau" => "Eastern Time (US & Canada)",
187
+ "America/New_York" => "Eastern Time (US & Canada)",
188
+ "America/Nipigon" => "Eastern Time (US & Canada)",
189
+ "America/Panama" => "Eastern Time (US & Canada)",
190
+ "America/Pangnirtung" => "Eastern Time (US & Canada)",
191
+ "America/Port-au-Prince" => "Eastern Time (US & Canada)",
192
+ "America/Resolute" => "Eastern Time (US & Canada)",
193
+ "America/Thunder_Bay" => "Eastern Time (US & Canada)",
194
+ "America/Toronto" => "Eastern Time (US & Canada)",
195
+ "Pacific/Fiji" => "Fiji",
196
+ "Pacific/Guam" => "Guam",
197
+ "Africa/Harare" => "Harare",
198
+ "America/Adak" => "Hawaii",
199
+ "Pacific/Fakaofo" => "Hawaii",
200
+ "Pacific/Honolulu" => "Hawaii",
201
+ "Pacific/Johnston" => "Hawaii",
202
+ "Pacific/Rarotonga" => "Hawaii",
203
+ "Pacific/Tahiti" => "Hawaii",
204
+ "Europe/Helsinki" => "Helsinki",
205
+ "Australia/Hobart" => "Hobart",
206
+ "Antarctica/Casey" => "Hong Kong",
207
+ "Asia/Brunei" => "Hong Kong",
208
+ "Asia/Choibalsan" => "Hong Kong",
209
+ "Asia/Harbin" => "Hong Kong",
210
+ "Asia/Hong_Kong" => "Hong Kong",
211
+ "Asia/Kashgar" => "Hong Kong",
212
+ "Asia/Kuching" => "Hong Kong",
213
+ "Asia/Macau" => "Hong Kong",
214
+ "Asia/Makassar" => "Hong Kong",
215
+ "Asia/Manila" => "Hong Kong",
216
+ "Asia/Shanghai" => "Hong Kong",
217
+ "Asia/Ulaanbaatar" => "Hong Kong",
218
+ "Asia/Irkutsk" => "Irkutsk",
219
+ "Europe/Istanbul" => "Istanbul",
220
+ "Antarctica/Davis" => "Jakarta",
221
+ "Asia/Hovd" => "Jakarta",
222
+ "Asia/Ho_Chi_Minh" => "Jakarta",
223
+ "Asia/Jakarta" => "Jakarta",
224
+ "Asia/Phnom_Penh" => "Jakarta",
225
+ "Asia/Pontianak" => "Jakarta",
226
+ "Asia/Vientiane" => "Jakarta",
227
+ "Indian/Christmas" => "Jakarta",
228
+ "Asia/Jerusalem" => "Jerusalem",
229
+ "Asia/Kabul" => "Kabul",
230
+ "Asia/Kamchatka" => "Kamchatka",
231
+ "Asia/Aqtau" => "Karachi",
232
+ "Asia/Aqtobe" => "Karachi",
233
+ "Asia/Ashgabat" => "Karachi",
234
+ "Asia/Dushanbe" => "Karachi",
235
+ "Asia/Oral" => "Karachi",
236
+ "Asia/Samarkand" => "Karachi",
237
+ "Asia/Yekaterinburg" => "Karachi",
238
+ "Indian/Kerguelen" => "Karachi",
239
+ "Indian/Maldives" => "Karachi",
240
+ "Asia/Kathmandu" => "Kathmandu",
241
+ "Asia/Kolkata" => "Kolkata",
242
+ "Asia/Krasnoyarsk" => "Krasnoyarsk",
243
+ "Asia/Kuala_Lumpur" => "Kuala Lumpur",
244
+ "Asia/Kuwait" => "Kuwait",
245
+ "America/La_Paz" => "La Paz",
246
+ "America/Lima" => "Lima",
247
+ "Europe/Lisbon" => "Lisbon",
248
+ "Europe/Ljubljana" => "Ljubljana",
249
+ "Africa/Abidjan" => "London",
250
+ "Africa/Accra" => "London",
251
+ "Africa/Bamako" => "London",
252
+ "Africa/Banjul" => "London",
253
+ "Africa/Bissau" => "London",
254
+ "Africa/Conakry" => "London",
255
+ "Africa/Dakar" => "London",
256
+ "Africa/El_Aaiun" => "London",
257
+ "Africa/Freetown" => "London",
258
+ "Africa/Lome" => "London",
259
+ "Africa/Nouakchott" => "London",
260
+ "Africa/Ouagadougou" => "London",
261
+ "Africa/Sao_Tome" => "London",
262
+ "America/Danmarkshavn" => "London",
263
+ "Antarctica/Vostok" => "London",
264
+ "Atlantic/Canary" => "London",
265
+ "Atlantic/Faroe" => "London",
266
+ "Atlantic/Madeira" => "London",
267
+ "Atlantic/Reykjavik" => "London",
268
+ "Atlantic/St_Helena" => "London",
269
+ "Europe/Guernsey" => "London",
270
+ "Europe/Isle_of_Man" => "London",
271
+ "Europe/Jersey" => "London",
272
+ "Europe/London" => "London",
273
+ "Europe/Madrid" => "Madrid",
274
+ "Asia/Magadan" => "Magadan",
275
+ "America/Mazatlan" => "Mazatlan",
276
+ "Australia/Melbourne" => "Melbourne",
277
+ "America/Mexico_City" => "Mexico City",
278
+ "America/Noronha" => "Mid-Atlantic",
279
+ "Atlantic/South_Georgia" => "Mid-Atlantic",
280
+ "Europe/Minsk" => "Minsk",
281
+ "Africa/Monrovia" => "Monrovia",
282
+ "America/Monterrey" => "Monterrey",
283
+ "Africa/Addis_Ababa" => "Moscow",
284
+ "Africa/Asmara" => "Moscow",
285
+ "Africa/Dar_es_Salaam" => "Moscow",
286
+ "Africa/Djibouti" => "Moscow",
287
+ "Africa/Kampala" => "Moscow",
288
+ "Africa/Khartoum" => "Moscow",
289
+ "Africa/Mogadishu" => "Moscow",
290
+ "Antarctica/Syowa" => "Moscow",
291
+ "Asia/Aden" => "Moscow",
292
+ "Asia/Bahrain" => "Moscow",
293
+ "Asia/Qatar" => "Moscow",
294
+ "Europe/Moscow" => "Moscow",
295
+ "Europe/Samara" => "Moscow",
296
+ "Indian/Antananarivo" => "Moscow",
297
+ "Indian/Comoro" => "Moscow",
298
+ "Indian/Mayotte" => "Moscow",
299
+ "America/Boise" => "Mountain Time (US & Canada)",
300
+ "America/Cambridge_Bay" => "Mountain Time (US & Canada)",
301
+ "America/Dawson_Creek" => "Mountain Time (US & Canada)",
302
+ "America/Denver" => "Mountain Time (US & Canada)",
303
+ "America/Edmonton" => "Mountain Time (US & Canada)",
304
+ "America/Hermosillo" => "Mountain Time (US & Canada)",
305
+ "America/Inuvik" => "Mountain Time (US & Canada)",
306
+ "America/Ojinaga" => "Mountain Time (US & Canada)",
307
+ "America/Phoenix" => "Mountain Time (US & Canada)",
308
+ "America/Shiprock" => "Mountain Time (US & Canada)",
309
+ "America/Yellowknife" => "Mountain Time (US & Canada)",
310
+ "Asia/Colombo" => "Mumbai",
311
+ "Asia/Muscat" => "Muscat",
312
+ "Africa/Nairobi" => "Nairobi",
313
+ "America/St_Johns" => "Newfoundland",
314
+ "Asia/Novosibirsk" => "Novosibirsk",
315
+ "Pacific/Enderbury" => "Nuku'alofa",
316
+ "Pacific/Tongatapu" => "Nuku'alofa",
317
+ "America/Dawson" => "Pacific Time (US & Canada)",
318
+ "America/Los_Angeles" => "Pacific Time (US & Canada)",
319
+ "America/Santa_Isabel" => "Pacific Time (US & Canada)",
320
+ "America/Vancouver" => "Pacific Time (US & Canada)",
321
+ "America/Whitehorse" => "Pacific Time (US & Canada)",
322
+ "Pacific/Pitcairn" => "Pacific Time (US & Canada)",
323
+ "Africa/Algiers" => "Paris",
324
+ "Africa/Bangui" => "Paris",
325
+ "Africa/Brazzaville" => "Paris",
326
+ "Africa/Ceuta" => "Paris",
327
+ "Africa/Douala" => "Paris",
328
+ "Africa/Kinshasa" => "Paris",
329
+ "Africa/Lagos" => "Paris",
330
+ "Africa/Libreville" => "Paris",
331
+ "Africa/Luanda" => "Paris",
332
+ "Africa/Malabo" => "Paris",
333
+ "Africa/Ndjamena" => "Paris",
334
+ "Africa/Niamey" => "Paris",
335
+ "Africa/Porto-Novo" => "Paris",
336
+ "Africa/Tunis" => "Paris",
337
+ "Africa/Windhoek" => "Paris",
338
+ "Arctic/Longyearbyen" => "Paris",
339
+ "Europe/Andorra" => "Paris",
340
+ "Europe/Gibraltar" => "Paris",
341
+ "Europe/Luxembourg" => "Paris",
342
+ "Europe/Malta" => "Paris",
343
+ "Europe/Monaco" => "Paris",
344
+ "Europe/Oslo" => "Paris",
345
+ "Europe/Paris" => "Paris",
346
+ "Europe/Podgorica" => "Paris",
347
+ "Europe/San_Marino" => "Paris",
348
+ "Europe/Tirane" => "Paris",
349
+ "Europe/Vaduz" => "Paris",
350
+ "Europe/Vatican" => "Paris",
351
+ "Europe/Zurich" => "Paris",
352
+ "Australia/Perth" => "Perth",
353
+ "Pacific/Port_Moresby" => "Port Moresby",
354
+ "Europe/Prague" => "Prague",
355
+ "Asia/Rangoon" => "Rangoon",
356
+ "Indian/Cocos" => "Rangoon",
357
+ "Europe/Riga" => "Riga",
358
+ "Asia/Riyadh" => "Riyadh",
359
+ "Europe/Rome" => "Rome",
360
+ "Pacific/Apia" => "Samoa",
361
+ "Pacific/Midway" => "Samoa",
362
+ "Pacific/Niue" => "Samoa",
363
+ "Pacific/Pago_Pago" => "Samoa",
364
+ "America/Santiago" => "Santiago",
365
+ "Europe/Sarajevo" => "Sarajevo",
366
+ "Asia/Seoul" => "Seoul",
367
+ "Asia/Singapore" => "Singapore",
368
+ "Europe/Skopje" => "Skopje",
369
+ "Europe/Sofia" => "Sofia",
370
+ "Asia/Anadyr" => "Solomon Is.",
371
+ "Pacific/Efate" => "Solomon Is.",
372
+ "Pacific/Guadalcanal" => "Solomon Is.",
373
+ "Pacific/Kosrae" => "Solomon Is.",
374
+ "Pacific/Noumea" => "Solomon Is.",
375
+ "Pacific/Ponape" => "Solomon Is.",
376
+ "Europe/Stockholm" => "Stockholm",
377
+ "Antarctica/DumontDUrville" => "Sydney",
378
+ "Asia/Sakhalin" => "Sydney",
379
+ "Australia/Currie" => "Sydney",
380
+ "Australia/Lindeman" => "Sydney",
381
+ "Australia/Sydney" => "Sydney",
382
+ "Pacific/Saipan" => "Sydney",
383
+ "Pacific/Truk" => "Sydney",
384
+ "Asia/Taipei" => "Taipei",
385
+ "Europe/Tallinn" => "Tallinn",
386
+ "Asia/Tashkent" => "Tashkent",
387
+ "Asia/Tbilisi" => "Tbilisi",
388
+ "Asia/Tehran" => "Tehran",
389
+ "America/Tijuana" => "Tijuana",
390
+ "Asia/Dili" => "Tokyo",
391
+ "Asia/Jayapura" => "Tokyo",
392
+ "Asia/Pyongyang" => "Tokyo",
393
+ "Asia/Tokyo" => "Tokyo",
394
+ "Pacific/Palau" => "Tokyo",
395
+ "Asia/Urumqi" => "Urumqi",
396
+ "Europe/Vienna" => "Vienna",
397
+ "Europe/Vilnius" => "Vilnius",
398
+ "Asia/Vladivostok" => "Vladivostok",
399
+ "Europe/Volgograd" => "Volgograd",
400
+ "Europe/Warsaw" => "Warsaw",
401
+ "Asia/Yakutsk" => "Yakutsk",
402
+ "Asia/Yerevan" => "Yerevan",
403
+ "Europe/Zagreb" => "Zagreb",
404
+ }
405
+
406
+ def self.format(zone)
407
+ TIMEZONE_MAPPING[zone]
408
+ end
409
+ end
410
+ end