static public Method

TimeZone.all

Return an array of all TimeZone objects. There are multiple TimeZone objects per time zone, in many cases, to make it easier for users to find their own time zone.

Source Code

# File active_support/values/time_zone.rb, line 251
def all
  unless @@zones
    @@zones = []
    @@zones_map = {}
    [[-39_600, "International Date Line West", "Midway Island", "Samoa" ],
     [-36_000, "Hawaii" ],
     [-32_400, "Alaska" ],
     [-28_800, "Pacific Time (US & Canada)", "Tijuana" ],
     [-25_200, "Mountain Time (US & Canada)", "Chihuahua", "Mazatlan",
               "Arizona" ],
     [-21_600, "Central Time (US & Canada)", "Saskatchewan", "Guadalajara",
               "Mexico City", "Monterrey", "Central America" ],
     [-18_000, "Eastern Time (US & Canada)", "Indiana (East)", "Bogota",
               "Lima", "Quito" ],
     [-14_400, "Atlantic Time (Canada)", "Caracas", "La Paz", "Santiago" ],
     [-12_600, "Newfoundland" ],
     [-10_800, "Brasilia", "Buenos Aires", "Georgetown", "Greenland" ],
     [ -7_200, "Mid-Atlantic" ],
     [ -3_600, "Azores", "Cape Verde Is." ],
     [      0, "Dublin", "Edinburgh", "Lisbon", "London", "Casablanca",
               "Monrovia", "UTC" ],
     [  3_600, "Belgrade", "Bratislava", "Budapest", "Ljubljana", "Prague",
               "Sarajevo", "Skopje", "Warsaw", "Zagreb", "Brussels",
               "Copenhagen", "Madrid", "Paris", "Amsterdam", "Berlin",
               "Bern", "Rome", "Stockholm", "Vienna",
               "West Central Africa" ],
     [  7_200, "Bucharest", "Cairo", "Helsinki", "Kyev", "Riga", "Sofia",
               "Tallinn", "Vilnius", "Athens", "Istanbul", "Minsk",
               "Jerusalem", "Harare", "Pretoria" ],
     [ 10_800, "Moscow", "St. Petersburg", "Volgograd", "Kuwait", "Riyadh",
               "Nairobi", "Baghdad" ],
     [ 12_600, "Tehran" ],
     [ 14_400, "Abu Dhabi", "Muscat", "Baku", "Tbilisi", "Yerevan" ],
     [ 16_200, "Kabul" ],
     [ 18_000, "Ekaterinburg", "Islamabad", "Karachi", "Tashkent" ],
     [ 19_800, "Chennai", "Kolkata", "Mumbai", "New Delhi" ],
     [ 20_700, "Kathmandu" ],
     [ 21_600, "Astana", "Dhaka", "Sri Jayawardenepura", "Almaty",
               "Novosibirsk" ],
     [ 23_400, "Rangoon" ],
     [ 25_200, "Bangkok", "Hanoi", "Jakarta", "Krasnoyarsk" ],
     [ 28_800, "Beijing", "Chongqing", "Hong Kong", "Urumqi",
               "Kuala Lumpur", "Singapore", "Taipei", "Perth", "Irkutsk",
               "Ulaan Bataar" ],
     [ 32_400, "Seoul", "Osaka", "Sapporo", "Tokyo", "Yakutsk" ],
     [ 34_200, "Darwin", "Adelaide" ],
     [ 36_000, "Canberra", "Melbourne", "Sydney", "Brisbane", "Hobart",
               "Vladivostok", "Guam", "Port Moresby" ],
     [ 39_600, "Magadan", "Solomon Is.", "New Caledonia" ],
     [ 43_200, "Fiji", "Kamchatka", "Marshall Is.", "Auckland",
               "Wellington" ],
     [ 46_800, "Nuku'alofa" ]].
    each do |offset, *places|
      places.each do |place|
        zone = create(place, offset)
        @@zones << zone
        @@zones_map[place] = zone
      end
    end
    @@zones.sort!
  end
  @@zones
end
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.