class TZInfo::TimezoneTransition
Represents a transition from one observed UTC offset ({TimezoneOffset} to another for a time zone.
Attributes
@return [TimezoneOffset] the offset this transition changes to.
@return [TimezoneOffset] the offset this transition changes from.
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). Equivalent to the result of calling the {Timestamp#value value} method on the {Timestamp} returned by {at}.
@return [Integer] when this transition occurs as a number of seconds since
1970-01-01 00:00:00 UTC ignoring leap seconds.
Public Class Methods
Initializes a new {TimezoneTransition}.
{TimezoneTransition} instances should not normally be constructed manually.
@param offset [TimezoneOffset] the offset the transition changes to. @param previous_offset
[TimezoneOffset] the offset the transition changes
from.
@param timestamp_value
[Integer] when the transition occurs as a
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).
# File lib/tzinfo/timezone_transition.rb, line 34 def initialize(offset, previous_offset, timestamp_value) @offset = offset @previous_offset = previous_offset @timestamp_value = timestamp_value end
Public Instance Methods
Determines if this {TimezoneTransition} is equal to another instance.
@param tti [Object] the instance to test for equality. @return [Boolean] ‘true` if `tti` is a {TimezoneTransition} with the same
{offset}, {previous_offset} and {timestamp_value} as this {TimezoneTransition}, otherwise `false`.
# File lib/tzinfo/timezone_transition.rb, line 86 def ==(tti) tti.kind_of?(TimezoneTransition) && offset == tti.offset && previous_offset == tti.previous_offset && timestamp_value == tti.timestamp_value end
Returns a {Timestamp} instance representing the UTC time when this transition occurs.
To obtain the result as a ‘Time` or `DateTime`, call either {Timestamp#to_time to_time} or {Timestamp#to_datetime to_datetime} on the {Timestamp} instance that is returned.
@return [Timestamp] the UTC time when this transition occurs.
# File lib/tzinfo/timezone_transition.rb, line 48 def at Timestamp.utc(@timestamp_value) end
@return [Integer] a hash based on {offset}, {previous_offset} and
{timestamp_value}.
# File lib/tzinfo/timezone_transition.rb, line 94 def hash [@offset, @previous_offset, @timestamp_value].hash end
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 {TimestampWithOffset#to_time to_time} or {TimestampWithOffset#to_datetime to_datetime} on the {TimestampWithOffset} instance that is returned.
@return [TimestampWithOffset] the local time when this transition causes
the previous observance to end.
# 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
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 {TimestampWithOffset#to_time to_time} or {TimestampWithOffset#to_datetime to_datetime} on the {TimestampWithOffset} instance that is returned.
@return [TimestampWithOffset] the local time when this transition causes
the next observance to start.
# 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