class ActiveSupport::TimeZone

def <=>(zone)

their offsets, and then by name.
Compare this time zone to the parameter. The two are compared first on
def <=>(zone)
  return unless zone.respond_to? :utc_offset
  result = (utc_offset <=> zone.utc_offset)
  result = (name <=> zone.name) if result == 0
  result
end