Class: TZInfo::TimezoneOffset

Inherits:
Object
  • Object
show all
Defined in:
lib/tzinfo/timezone_offset.rb

Overview

Represents an offset defined in a Timezone data file.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(utc_offset, std_offset, abbreviation) ⇒ TimezoneOffset

Constructs a new TimezoneOffset. utc_offset and std_offset are specified in seconds.



22
23
24
25
26
27
28
# File 'lib/tzinfo/timezone_offset.rb', line 22

def initialize(utc_offset, std_offset, abbreviation)
  @utc_offset = utc_offset
  @std_offset = std_offset      
  @abbreviation = abbreviation
  
  @utc_total_offset = @utc_offset + @std_offset
end

Instance Attribute Details

#abbreviationObject (readonly)

The abbreviation that identifies this observance, e.g. “GMT” (Greenwich Mean Time) or “BST” (British Summer Time) for “Europe/London”. The returned identifier is a symbol.



18
19
20
# File 'lib/tzinfo/timezone_offset.rb', line 18

def abbreviation
  @abbreviation
end

#std_offsetObject (readonly)

The offset from standard time for the zone in seconds (i.e. non-zero if daylight savings is being observed).



9
10
11
# File 'lib/tzinfo/timezone_offset.rb', line 9

def std_offset
  @std_offset
end

#utc_offsetObject (readonly)

The base offset of the timezone from UTC in seconds.



5
6
7
# File 'lib/tzinfo/timezone_offset.rb', line 5

def utc_offset
  @utc_offset
end

#utc_total_offsetObject (readonly)

The total offset of this observance from UTC in seconds (utc_offset + std_offset).



13
14
15
# File 'lib/tzinfo/timezone_offset.rb', line 13

def utc_total_offset
  @utc_total_offset
end

Instance Method Details

#==(toi) ⇒ Object

Returns true if and only if toi has the same utc_offset, std_offset and abbreviation as this TimezoneOffset.



57
58
59
60
# File 'lib/tzinfo/timezone_offset.rb', line 57

def ==(toi)
  toi.kind_of?(TimezoneOffset) &&
    utc_offset == toi.utc_offset && std_offset == toi.std_offset && abbreviation == toi.abbreviation
end

#dst?Boolean

True if std_offset is non-zero.

Returns:

  • (Boolean)


31
32
33
# File 'lib/tzinfo/timezone_offset.rb', line 31

def dst?
  @std_offset != 0
end

#eql?(toi) ⇒ Boolean

Returns true if and only if toi has the same utc_offset, std_offset and abbreviation as this TimezoneOffset.

Returns:

  • (Boolean)


64
65
66
# File 'lib/tzinfo/timezone_offset.rb', line 64

def eql?(toi)
  self == toi
end

#hashObject

Returns a hash of this TimezoneOffset.



69
70
71
# File 'lib/tzinfo/timezone_offset.rb', line 69

def hash
  utc_offset.hash ^ std_offset.hash ^ abbreviation.hash
end

#inspectObject

Returns internal object state as a programmer-readable string.



74
75
76
# File 'lib/tzinfo/timezone_offset.rb', line 74

def inspect
  "#<#{self.class}: #@utc_offset,#@std_offset,#@abbreviation>"
end

#to_local(utc) ⇒ Object

Converts a UTC Time, DateTime or integer timestamp to local time, based on the offset of this period.

Deprecation warning: this method will be removed in TZInfo version 2.0.0.



39
40
41
42
43
# File 'lib/tzinfo/timezone_offset.rb', line 39

def to_local(utc)
  TimeOrDateTime.wrap(utc) {|wrapped|
    wrapped + @utc_total_offset
  }
end

#to_utc(local) ⇒ Object

Converts a local Time, DateTime or integer timestamp to UTC, based on the offset of this period.

Deprecation warning: this method will be removed in TZInfo version 2.0.0.



49
50
51
52
53
# File 'lib/tzinfo/timezone_offset.rb', line 49

def to_utc(local)
  TimeOrDateTime.wrap(local) {|wrapped|
    wrapped - @utc_total_offset
  }
end