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.
44 45 46 47 48 49 50 |
# File 'lib/tzinfo/timezone_offset.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.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.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.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.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 TimezoneOffset.
75 76 77 78 |
# File 'lib/tzinfo/timezone_offset.rb', line 75 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.
53 54 55 |
# File 'lib/tzinfo/timezone_offset.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 TimezoneOffset.
82 83 84 |
# File 'lib/tzinfo/timezone_offset.rb', line 82 def eql?(toi) self == toi end |
#hash ⇒ Object
Returns a hash of this TimezoneOffset.
87 88 89 |
# File 'lib/tzinfo/timezone_offset.rb', line 87 def hash utc_offset.hash ^ std_offset.hash ^ abbreviation.hash end |
#inspect ⇒ Object
Returns internal object state as a programmer-readable string.
92 93 94 |
# File 'lib/tzinfo/timezone_offset.rb', line 92 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.
59 60 61 62 63 |
# File 'lib/tzinfo/timezone_offset.rb', line 59 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.
67 68 69 70 71 |
# File 'lib/tzinfo/timezone_offset.rb', line 67 def to_utc(local) TimeOrDateTime.wrap(local) {|wrapped| wrapped - @utc_total_offset } end |