class TZInfo::TimezonePeriod - tzinfo-0.3.42 Documentation

# class 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

end_transition[R]

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

offset[R]

The TimezoneOffsetInfo for this period.

start_transition[R]

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

### 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
    def initialize(start_transition, end_transition, offset = nil)
      @start_transition = start_transition
      @end_transition = end_transition

      if offset
        raise ArgumentError, 'Offset specified with transitions' if @start_transition || @end_transition
        @offset = offset
      else
        if @start_transition
          @offset = @start_transition.offset
        elsif @end_transition
          @offset = @end_transition.previous_offset
        else
          raise ArgumentError, 'No offset specified and no transitions to determine it from'
        end
      end

      @utc_total_offset_rational = nil
    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
    def ==(p)
      p.kind_of?(TimezonePeriod) &&
        start_transition == p.start_transition &&
        end_transition == p.end_transition &&
        offset == p.offset
    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
    def abbreviation
      @offset.abbreviation
    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
    def dst?
      @offset.dst?
    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 176
    def eql?(p)
      p.kind_of?(TimezonePeriod) &&
        start_transition.eql?(p.start_transition) &&
        end_transition.eql?(p.end_transition) &&
        offset.eql?(p.offset)
    end

hash() click to toggle source

Returns a hash of this TimezonePeriod.

    # File lib/tzinfo/timezone_period.rb, line 184
    def hash
      result = @start_transition.hash ^ @end_transition.hash
      result ^= @offset.hash unless @start_transition || @end_transition
      result
    end

inspect() click to toggle source

Returns internal object state as a programmer-readable string.

    # File lib/tzinfo/timezone_period.rb, line 191
    def inspect
      result = "#<#{self.class}: #{@start_transition.inspect},#{@end_transition.inspect}"
      result << ",#{@offset.inspect}>" unless @start_transition || @end_transition
      result + '>'
    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
    def local_after_start?(local)
      !@start_transition || @start_transition.local_start <= local
    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
    def local_before_end?(local)
      !@end_transition || @end_transition.local_end > local
    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
    def local_end
      @end_transition ? @end_transition.local_end.to_datetime : nil
    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
    def local_start
      @start_transition ? @start_transition.local_start.to_datetime : nil
    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
    def std_offset
      @offset.std_offset
    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
    def to_local(utc)
      @offset.to_local(utc)
    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
    def to_utc(local)
      @offset.to_utc(local)
    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
    def utc_after_start?(utc)
      !@start_transition || @start_transition.at <= utc
    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
    def utc_before_end?(utc)
      !@end_transition || @end_transition.at > utc
    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
    def utc_end
      @end_transition ? @end_transition.at.to_datetime : nil
    end

utc_offset() click to toggle source

Base offset of the timezone from UTC (seconds).

    # File lib/tzinfo/timezone_period.rb, line 62
    def utc_offset
      @offset.utc_offset
    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
    def utc_start
      @start_transition ? @start_transition.at.to_datetime : nil
    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
    def utc_total_offset
      @offset.utc_total_offset
    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
    def utc_total_offset_rational
      unless @utc_total_offset_rational
        @utc_total_offset_rational = OffsetRationals.rational_for_offset(utc_total_offset)
      end
      @utc_total_offset_rational
    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
    def valid_for_local?(local)
      local_after_start?(local) && local_before_end?(local)
    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
    def valid_for_utc?(utc)
      utc_after_start?(utc) && utc_before_end?(utc)
    end

zone_identifier()
Alias for: abbreviation