method
zone_to_diff
v1_9_2_180 -
Show latest stable
- Class:
Date
zone_to_diff(zone)public
No documentation available.
# 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