Class: TZInfo::TimezoneTransition
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/tzinfo/timezone_transition.rb |
Overview
Represents a transition from one observed UTC offset (TimezoneOffset
to
another for a time zone.
Class Method Summary
-
.new(offset, previous_offset, timestamp_value) ⇒ TimezoneTransition
constructor
Initializes a new
TimezoneTransition
.
Instance Attribute Summary
- #offset ⇒ TimezoneOffset readonly
- #previous_offset ⇒ TimezoneOffset readonly
-
#timestamp_value ⇒ Integer
readonly
When this transition occurs as an
Integer
number of seconds since 1970-01-01 00:00:00 UTC ignoring leap seconds (i.e. each day is treated as if it were 86,400 seconds long).
Instance Method Summary
-
#==(tti) ⇒ Boolean
(also: #eql?)
Determines if this
TimezoneTransition
is equal to another instance. -
#at ⇒ Timestamp
Returns a
Timestamp
instance representing the UTC time when this transition occurs. -
#eql?(tti)
Alias for #==.
- #hash ⇒ Integer
-
#local_end_at ⇒ TimestampWithOffset
Returns a
TimestampWithOffset
instance representing the local time when this transition causes the previous observance to end (calculated from #at using #previous_offset). -
#local_start_at ⇒ TimestampWithOffset
Returns a
TimestampWithOffset
instance representing the local time when this transition causes the next observance to start (calculated from #at using #offset).
Constructor Details
.new(offset, previous_offset, timestamp_value) ⇒ TimezoneTransition
Initializes a new TimezoneTransition
.
TimezoneTransition
instances should not normally be constructed
manually.
# File 'lib/tzinfo/timezone_transition.rb', line 34
def initialize(offset, previous_offset, ) @offset = offset @previous_offset = previous_offset @timestamp_value = end
Instance Attribute Details
#offset ⇒ TimezoneOffset (readonly)
# File 'lib/tzinfo/timezone_transition.rb', line 9
attr_reader :offset
#previous_offset ⇒ TimezoneOffset (readonly)
# File 'lib/tzinfo/timezone_transition.rb', line 12
attr_reader :previous_offset
#timestamp_value ⇒ Integer
(readonly)
# File 'lib/tzinfo/timezone_transition.rb', line 21
attr_reader :
Instance Method Details
#==(tti) ⇒ Boolean
Also known as: #eql?
Determines if this TimezoneTransition
is equal to another instance.
# File 'lib/tzinfo/timezone_transition.rb', line 86
def ==(tti) tti.kind_of?(TimezoneTransition) && offset == tti.offset && previous_offset == tti.previous_offset && == tti. end
#at ⇒ Timestamp
Returns a Timestamp
instance representing the UTC time when this
transition occurs.
To obtain the result as a Time
or DateTime
, call either
to_time or to_datetime on the
Timestamp
instance that is returned.
#eql?(tti)
Alias for #==.
# File 'lib/tzinfo/timezone_transition.rb', line 90
alias eql? ==
#hash ⇒ Integer
# File 'lib/tzinfo/timezone_transition.rb', line 94
def hash [@offset, @previous_offset, @timestamp_value].hash end
#local_end_at ⇒ TimestampWithOffset
Returns a TimestampWithOffset
instance representing the local time when
this transition causes the previous observance to end (calculated from
#at using #previous_offset).
To obtain the result as a Time
or DateTime
, call either
to_time or to_datetime on the TimestampWithOffset
instance that is returned.
# File 'lib/tzinfo/timezone_transition.rb', line 62
def local_end_at TimestampWithOffset.new(@timestamp_value, 0, @previous_offset.observed_utc_offset).set_timezone_offset(@previous_offset) end
#local_start_at ⇒ TimestampWithOffset
Returns a TimestampWithOffset
instance representing the local time when
this transition causes the next observance to start (calculated from #at
using #offset).
To obtain the result as a Time
or DateTime
, call either
to_time or to_datetime on the TimestampWithOffset
instance that is returned.
# File 'lib/tzinfo/timezone_transition.rb', line 76
def local_start_at TimestampWithOffset.new(@timestamp_value, 0, @offset.observed_utc_offset).set_timezone_offset(@offset) end