Class: TZInfo::TimezoneOffsetInfo
- Inherits:
-
Object
- Object
- TZInfo::TimezoneOffsetInfo
- Defined in:
- lib/tzinfo/timezone_offset_info.rb
Overview
Represents an offset defined in a Timezone data file.
Instance Attribute Summary collapse
-
#abbreviation ⇒ Object
readonly
The abbreviation that identifies this observance, e.g.
-
#std_offset ⇒ Object
readonly
The offset from standard time for the zone in seconds (i.e. non-zero if daylight savings is being observed).
-
#utc_offset ⇒ Object
readonly
The base offset of the timezone from UTC in seconds.
-
#utc_total_offset ⇒ Object
readonly
The total offset of this observance from UTC in seconds (utc_offset + std_offset).
Instance Method Summary collapse
-
#==(toi) ⇒ Object
Returns true if and only if toi has the same utc_offset, std_offset and abbreviation as this TimezoneOffsetInfo.
-
#dst? ⇒ Boolean
True if std_offset is non-zero.
-
#eql?(toi) ⇒ Boolean
Returns true if and only if toi has the same utc_offset, std_offset and abbreviation as this TimezoneOffsetInfo.
-
#hash ⇒ Object
Returns a hash of this TimezoneOffsetInfo.
-
#initialize(utc_offset, std_offset, abbreviation) ⇒ TimezoneOffsetInfo
constructor
Constructs a new TimezoneOffsetInfo.
-
#inspect ⇒ Object
Returns internal object state as a programmer-readable string.
-
#to_local(utc) ⇒ Object
Converts a UTC DateTime to local time based on the offset of this period.
-
#to_utc(local) ⇒ Object
Converts a local DateTime to UTC based on the offset of this period.
Constructor Details
#initialize(utc_offset, std_offset, abbreviation) ⇒ TimezoneOffsetInfo
Constructs a new TimezoneOffsetInfo. utc_offset and std_offset are specified in seconds.
44 45 46 47 48 49 50 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 44 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
#abbreviation ⇒ Object (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.
40 41 42 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 40 def abbreviation @abbreviation end |
#std_offset ⇒ Object (readonly)
The offset from standard time for the zone in seconds (i.e. non-zero if daylight savings is being observed).
31 32 33 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 31 def std_offset @std_offset end |
#utc_offset ⇒ Object (readonly)
The base offset of the timezone from UTC in seconds.
27 28 29 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 27 def utc_offset @utc_offset end |
#utc_total_offset ⇒ Object (readonly)
The total offset of this observance from UTC in seconds (utc_offset + std_offset).
35 36 37 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 35 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 TimezoneOffsetInfo.
73 74 75 76 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 73 def ==(toi) toi.respond_to?(:utc_offset) && toi.respond_to?(:std_offset) && toi.respond_to?(:abbreviation) && utc_offset == toi.utc_offset && std_offset == toi.std_offset && abbreviation == toi.abbreviation end |
#dst? ⇒ Boolean
True if std_offset is non-zero.
53 54 55 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 53 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 TimezoneOffsetInfo.
80 81 82 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 80 def eql?(toi) self == toi end |
#hash ⇒ Object
Returns a hash of this TimezoneOffsetInfo.
85 86 87 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 85 def hash utc_offset.hash ^ std_offset.hash ^ abbreviation.hash end |
#inspect ⇒ Object
Returns internal object state as a programmer-readable string.
90 91 92 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 90 def inspect "#<#{self.class}: #@utc_offset,#@std_offset,#@abbreviation>" end |
#to_local(utc) ⇒ Object
Converts a UTC DateTime to local time based on the offset of this period.
58 59 60 61 62 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 58 def to_local(utc) TimeOrDateTime.wrap(utc) {|wrapped| wrapped + @utc_total_offset } end |
#to_utc(local) ⇒ Object
Converts a local DateTime to UTC based on the offset of this period.
65 66 67 68 69 |
# File 'lib/tzinfo/timezone_offset_info.rb', line 65 def to_utc(local) TimeOrDateTime.wrap(local) {|wrapped| wrapped - @utc_total_offset } end |