ActiveSupport::TimeZone.all.map { |tz| [tz.tzinfo.base_utc_offset, tz.tzinfo.name] }.uniq.sort_by { |tz| [tz[0], tz[1]] }.map do |time_zone|
format("(GMT%+-02d:%02d)", (time_zone[0] / 3600), (time_zone[0] / 60) % 60) + time_zone[1]
end
時差順、タイムゾーン名順にsortしている。
するとこうなる
Discussion