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.



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)



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

def offset
  @offset
end

#previous_offsetTimezoneOffset (readonly)



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.



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.



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.



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

def at
  Timestamp.utc(@timestamp_value)
end

#hashInteger



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.



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.



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