Flowdock
method

zone_to_diff

Importance_0
v1_9_2_180 - Show latest stable - 0 notes - Class: Date
zone_to_diff(zone) public

No documentation

This method has no description. You can help the Ruby community by adding new notes.

Hide source
# File lib/date/format.rb, line 1238
    def zone_to_diff(zone) # :nodoc:
      zone = zone.downcase
      if zone.sub!(/\s+(standard|daylight)\s+time\z/, '')
        dst = $1 == 'daylight'
      else
        dst = zone.sub!(/\s+dst\z/, '')
      end
      if Format::ZONES.include?(zone)
        offset = Format::ZONES[zone]
        offset += 3600 if dst
      elsif zone.sub!(/\A(?:gmt|utc?)?([-+])/, '')
        sign = $1
        if zone.include?(':')
          hour, min, sec, = zone.split(':')
        elsif zone.include?(',') || zone.include?('.')
          hour, fr, = zone.split(/[,.]/)
          min = Rational(fr.to_i, 10**fr.size) * 60
        else
          case zone.size
          when 3
            hour = zone[0,1]
            min = zone[1,2]
          else
            hour = zone[0,2]
            min = zone[2,2]
            sec = zone[4,2]
          end
        end
        offset = hour.to_i * 3600 + min.to_i * 60 + sec.to_i
        offset *= -1 if sign == '-'
      end
      offset
    end
Register or log in to add new notes.