Class: Time

Inherits:
Object show all
Defined in:
lib/couchrest/mixins/typecast.rb

Class Method Summary collapse

Class Method Details

.mktime_with_offset(string) ⇒ Object

returns a local time value much faster than Time.parse



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/couchrest/mixins/typecast.rb', line 7

def self.mktime_with_offset(string)
  string =~ /(\d{4})[\-|\/](\d{2})[\-|\/](\d{2})[T|\s](\d{2}):(\d{2}):(\d{2})([\+|\s|\-])*(\d{2}):?(\d{2})/
  # $1 = year
  # $2 = month
  # $3 = day
  # $4 = hours
  # $5 = minutes
  # $6 = seconds
  # $7 = time zone direction
  # $8 = tz difference
  # utc time with wrong TZ info: 
  time = mktime($1, RFC2822_MONTH_NAME[$2.to_i - 1], $3, $4, $5, $6, $7)
  tz_difference = ("#{$7 == '-' ? '+' : '-'}#{$8}".to_i * 3600)
  time + tz_difference + zone_offset(time.zone) 
end