Class: Time

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

Class Method Summary collapse

Class Method Details

.mktime_with_offset(string) ⇒ Object

returns a local time value much faster than Time.parse



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

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
  # $8 = time zone direction
  # $9 = tz difference
  # utc time with wrong TZ info: 
  time = mktime($1, RFC2822_MONTH_NAME[$2.to_i - 1], $3, $4, $5, $6)
  if ($7)
    tz_difference = ("#{$8 == '-' ? '+' : '-'}#{$9}".to_i * 3600)
    time + tz_difference + zone_offset(time.zone) 
  else
    time
  end
end