Parent

Files

TZInfo::TimezonePeriod

A period of time in a timezone where the same offset from UTC applies.

All the methods that take times accept instances of Time, DateTime or integer timestamps.

Attributes

start_transition[R]

The TimezoneTransitionInfo that defines the start of this TimezonePeriod (may be nil if unbounded).

end_transition[R]

The TimezoneTransitionInfo that defines the end of this TimezonePeriod (may be nil if unbounded).

offset[R]

The TimezoneOffsetInfo for this period.

Public Class Methods

new(start_transition, end_transition, offset = nil) click to toggle source

Initializes a new TimezonePeriod.

    # File lib/tzinfo/timezone_period.rb, line 41
41:     def initialize(start_transition, end_transition, offset = nil)
42:       @start_transition = start_transition
43:       @end_transition = end_transition
44:       
45:       if offset
46:         raise ArgumentError, 'Offset specified with transitions' if @start_transition || @end_transition
47:         @offset = offset
48:       else
49:         if @start_transition 
50:           @offset = @start_transition.offset
51:         elsif @end_transition
52:           @offset = @end_transition.previous_offset
53:         else
54:           raise ArgumentError, 'No offset specified and no transitions to determine it from'
55:         end
56:       end
57:       
58:       @utc_total_offset_rational = nil      
59:     end

Public Instance Methods

==(p) click to toggle source

Returns true if this TimezonePeriod is equal to p. This compares the start_transition, end_transition and offset using ==.

     # File lib/tzinfo/timezone_period.rb, line 167
167:     def ==(p)
168:       p.respond_to?(:start_transition) && p.respond_to?(:end_transition) &&
169:         p.respond_to?(:offset) && start_transition == p.start_transition &&
170:         end_transition == p.end_transition && offset == p.offset
171:     end
abbreviation() click to toggle source

The identifier of this period, e.g. “GMT” (Greenwich Mean Time) or “BST” (British Summer Time) for “Europe/London“. The returned identifier is a symbol.

    # File lib/tzinfo/timezone_period.rb, line 76
76:     def abbreviation
77:       @offset.abbreviation
78:     end
Also aliased as: zone_identifier
dst?() click to toggle source

true if daylight savings is in effect for this period; otherwise false.

     # File lib/tzinfo/timezone_period.rb, line 117
117:     def dst?
118:       @offset.dst?
119:     end
eql?(p) click to toggle source

Returns true if this TimezonePeriods is equal to p. This compares the start_transition, end_transition and offset using eql?

     # File lib/tzinfo/timezone_period.rb, line 175
175:     def eql?(p)
176:       p.respond_to?(:start_transition) && p.respond_to?(:end_transition) &&
177:         p.respond_to?(:offset) && start_transition.eql?(p.start_transition) &&
178:         end_transition.eql?(p.end_transition) && offset.eql?(p.offset)
179:     end
hash() click to toggle source

Returns a hash of this TimezonePeriod.

     # File lib/tzinfo/timezone_period.rb, line 182
182:     def hash
183:       result = @start_transition.hash ^ @end_transition.hash
184:       result ^= @offset.hash unless @start_transition || @end_transition
185:       result       
186:     end
inspect() click to toggle source

Returns internal object state as a programmer-readable string.

     # File lib/tzinfo/timezone_period.rb, line 189
189:     def inspect
190:       result = "#<#{self.class}: #{@start_transition.inspect},#{@end_transition.inspect}"
191:       result << ",#{@offset.inspect}>" unless @start_transition || @end_transition
192:       result + '>'
193:     end
local_after_start?(local) click to toggle source

true if the given local DateTime is after the start of the period (inclusive); otherwise false.

     # File lib/tzinfo/timezone_period.rb, line 145
145:     def local_after_start?(local)
146:       !@start_transition || @start_transition.local_start <= local
147:     end
local_before_end?(local) click to toggle source

true if the given local DateTime is before the end of the period (exclusive); otherwise false.

     # File lib/tzinfo/timezone_period.rb, line 151
151:     def local_before_end?(local)
152:       !@end_transition || @end_transition.local_end > local
153:     end
local_end() click to toggle source

The end time of the period in local time as a DateTime. May be nil if unbounded.

     # File lib/tzinfo/timezone_period.rb, line 112
112:     def local_end
113:       @end_transition ? @end_transition.local_end.to_datetime : nil
114:     end
local_start() click to toggle source

The start time of the period in local time as a DateTime. May be nil if unbounded.

     # File lib/tzinfo/timezone_period.rb, line 106
106:     def local_start
107:       @start_transition ? @start_transition.local_start.to_datetime : nil
108:     end
std_offset() click to toggle source

Offset from the local time where daylight savings is in effect (seconds). E.g.: utc_offset could be -5 hours. Normally, std_offset would be 0. During daylight savings, std_offset would typically become +1 hours.

    # File lib/tzinfo/timezone_period.rb, line 69
69:     def std_offset
70:       @offset.std_offset
71:     end
to_local(utc) click to toggle source

Converts a UTC DateTime to local time based on the offset of this period.

     # File lib/tzinfo/timezone_period.rb, line 156
156:     def to_local(utc)
157:       @offset.to_local(utc)
158:     end
to_utc(local) click to toggle source

Converts a local DateTime to UTC based on the offset of this period.

     # File lib/tzinfo/timezone_period.rb, line 161
161:     def to_utc(local)
162:       @offset.to_utc(local)
163:     end
utc_after_start?(utc) click to toggle source

true if the given UTC DateTime is after the start of the period (inclusive); otherwise false.

     # File lib/tzinfo/timezone_period.rb, line 128
128:     def utc_after_start?(utc)
129:       !@start_transition || @start_transition.at <= utc
130:     end
utc_before_end?(utc) click to toggle source

true if the given UTC DateTime is before the end of the period (exclusive); otherwise false.

     # File lib/tzinfo/timezone_period.rb, line 134
134:     def utc_before_end?(utc)
135:       !@end_transition || @end_transition.at > utc
136:     end
utc_end() click to toggle source

The end time of the period in UTC as a DateTime. May be nil if unbounded.

     # File lib/tzinfo/timezone_period.rb, line 100
100:     def utc_end
101:       @end_transition ? @end_transition.at.to_datetime : nil
102:     end
utc_offset() click to toggle source

Base offset of the timezone from UTC (seconds).

    # File lib/tzinfo/timezone_period.rb, line 62
62:     def utc_offset
63:       @offset.utc_offset
64:     end
utc_start() click to toggle source

The start time of the period in UTC as a DateTime. May be nil if unbounded.

    # File lib/tzinfo/timezone_period.rb, line 95
95:     def utc_start
96:       @start_transition ? @start_transition.at.to_datetime : nil
97:     end
utc_total_offset() click to toggle source

Total offset from UTC (seconds). Equal to utc_offset + std_offset.

    # File lib/tzinfo/timezone_period.rb, line 82
82:     def utc_total_offset
83:       @offset.utc_total_offset
84:     end
utc_total_offset_rational() click to toggle source

Total offset from UTC (days). Result is a Rational.

    # File lib/tzinfo/timezone_period.rb, line 87
87:     def utc_total_offset_rational
88:       unless @utc_total_offset_rational
89:         @utc_total_offset_rational = OffsetRationals.rational_for_offset(utc_total_offset) 
90:       end
91:       @utc_total_offset_rational
92:     end
valid_for_local?(local) click to toggle source

true if this period is valid for the given local DateTime; otherwise false.

     # File lib/tzinfo/timezone_period.rb, line 139
139:     def valid_for_local?(local)      
140:       local_after_start?(local) && local_before_end?(local) 
141:     end
valid_for_utc?(utc) click to toggle source

true if this period is valid for the given UTC DateTime; otherwise false.

     # File lib/tzinfo/timezone_period.rb, line 122
122:     def valid_for_utc?(utc)
123:       utc_after_start?(utc) && utc_before_end?(utc) 
124:     end
zone_identifier() click to toggle source
Alias for: abbreviation

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.