Class: TZInfo::TimezoneTransition

Inherits:
Object
  • Object
show all
Defined in:
lib/tzinfo/timezone_transition.rb

Overview

Represents a transition from one observed UTC offset (TimezoneOffset to another for a time zone.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(offset, previous_offset, timestamp_value) ⇒ TimezoneTransition

Initializes a new TZInfo::TimezoneTransition.

TZInfo::TimezoneTransition instances should not normally be constructed manually.

Parameters:

  • offset (TimezoneOffset)

    the offset the transition changes to.

  • previous_offset (TimezoneOffset)

    the offset the transition changes from.

  • 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).



34
35
36
37
38
# 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

Instance Attribute Details

#offsetTimezoneOffset (readonly)

Returns the offset this transition changes to.

Returns:



9
10
11
# File 'lib/tzinfo/timezone_transition.rb', line 9

def offset
  @offset
end

#previous_offsetTimezoneOffset (readonly)

Returns the offset this transition changes from.

Returns:



12
13
14
# File 'lib/tzinfo/timezone_transition.rb', line 12

def previous_offset
  @previous_offset
end

#timestamp_valueInteger (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). Equivalent to the result of calling the value method on the TZInfo::Timestamp returned by #at.

Returns:

  • (Integer)

    when this transition occurs as a number of seconds since 1970-01-01 00:00:00 UTC ignoring leap seconds.



21
22
23
# File 'lib/tzinfo/timezone_transition.rb', line 21

def timestamp_value
  @timestamp_value
end

Instance Method Details

#==(tti) ⇒ Boolean Also known as: eql?

Determines if this TZInfo::TimezoneTransition is equal to another instance.

Parameters:

  • tti (Object)

    the instance to test for equality.

Returns:



86
87
88
89
# 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

#atTimestamp

Returns a TZInfo::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 TZInfo::Timestamp instance that is returned.

Returns:

  • (Timestamp)

    the UTC time when this transition occurs.



48
49
50
# File 'lib/tzinfo/timezone_transition.rb', line 48

def at
  Timestamp.utc(@timestamp_value)
end

#hashInteger

Returns a hash based on #offset, #previous_offset and #timestamp_value.

Returns:



94
95
96
# File 'lib/tzinfo/timezone_transition.rb', line 94

def hash
  [@offset, @previous_offset, @timestamp_value].hash
end

#local_end_atTimestampWithOffset

Returns a TZInfo::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 TZInfo::TimestampWithOffset instance that is returned.

Returns:

  • (TimestampWithOffset)

    the local time when this transition causes the previous observance to end.



62
63
64
# 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_atTimestampWithOffset

Returns a TZInfo::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 TZInfo::TimestampWithOffset instance that is returned.

Returns:

  • (TimestampWithOffset)

    the local time when this transition causes the next observance to start.



76
77
78
# 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