Class: TZInfo::TimezoneOffset
- Inherits:
-
Object
- Object
- TZInfo::TimezoneOffset
- Defined in:
- lib/tzinfo/timezone_offset.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 TimezoneOffset.
-
#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 TimezoneOffset.
-
#hash ⇒ Object
Returns a hash of this TimezoneOffset.
-
#initialize(utc_offset, std_offset, abbreviation) ⇒ TimezoneOffset
constructor
Constructs a new TimezoneOffset.
-
#inspect ⇒ Object
Returns internal object state as a programmer-readable string.
-
#to_local(utc) ⇒ Object
Converts a UTC Time, DateTime or integer timestamp to local time, based on the offset of this period.
-
#to_utc(local) ⇒ Object
Converts a local Time, DateTime or integer timestamp to UTC, based on the offset of this period.
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
#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.
18 19 20 |
# File 'lib/tzinfo/timezone_offset.rb', line 18 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).
9 10 11 |
# File 'lib/tzinfo/timezone_offset.rb', line 9 def std_offset @std_offset end |
#utc_offset ⇒ Object (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_offset ⇒ Object (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.
53 54 55 56 |
# File 'lib/tzinfo/timezone_offset.rb', line 53 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.
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.
60 61 62 |
# File 'lib/tzinfo/timezone_offset.rb', line 60 def eql?(toi) self == toi end |
#hash ⇒ Object
Returns a hash of this TimezoneOffset.
65 66 67 |
# File 'lib/tzinfo/timezone_offset.rb', line 65 def hash utc_offset.hash ^ std_offset.hash ^ abbreviation.hash end |
#inspect ⇒ Object
Returns internal object state as a programmer-readable string.
70 71 72 |
# File 'lib/tzinfo/timezone_offset.rb', line 70 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.
37 38 39 40 41 |
# File 'lib/tzinfo/timezone_offset.rb', line 37 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.
45 46 47 48 49 |
# File 'lib/tzinfo/timezone_offset.rb', line 45 def to_utc(local) TimeOrDateTime.wrap(local) {|wrapped| wrapped - @utc_total_offset } end |