class TZInfo::TimezoneOffset

Represents an offset from UTC observed by a time zone.

Attributes

The abbreviation that identifies this offset. For example GMT (Greenwich Mean Time) or BST (British Summer Time) for Europe/London.

@return [String] the abbreviation that identifies this offset.

The abbreviation that identifies this offset. For example GMT (Greenwich Mean Time) or BST (British Summer Time) for Europe/London.

@return [String] the abbreviation that identifies this offset.

Returns the base offset from UTC in seconds (‘observed_utc_offset - std_offset`). This does not include any adjustment made for daylight savings time and will typically remain constant throughout the year.

To obtain the currently observed offset from UTC, including the effect of daylight savings time, use {observed_utc_offset} instead.

If you require accurate {base_utc_offset} values, you should install the tzinfo-data gem and set {DataSources::RubyDataSource} as the {DataSource}. When using {DataSources::ZoneinfoDataSource}, the value of {base_utc_offset} has to be derived from changes to the observed UTC offset and DST status since it is not included in zoneinfo files.

@return [Integer] the base offset from UTC in seconds.

Returns the observed offset from UTC in seconds (‘base_utc_offset + std_offset`). This includes adjustments made for daylight savings time.

@return [Integer] the observed offset from UTC in seconds.

Returns the offset from the time zone’s standard time in seconds (‘observed_utc_offset - base_utc_offset`). Zero when daylight savings time is not in effect. Non-zero (usually 3600 = 1 hour) if daylight savings is being observed.

If you require accurate {std_offset} values, you should install the tzinfo-data gem and set {DataSources::RubyDataSource} as the {DataSource}. When using {DataSources::ZoneinfoDataSource}, the value of {std_offset} has to be derived from changes to the observed UTC offset and DST status since it is not included in zoneinfo files.

@return [Integer] the offset from the time zone’s standard time in

seconds.

Returns the base offset from UTC in seconds (‘observed_utc_offset - std_offset`). This does not include any adjustment made for daylight savings time and will typically remain constant throughout the year.

To obtain the currently observed offset from UTC, including the effect of daylight savings time, use {observed_utc_offset} instead.

If you require accurate {base_utc_offset} values, you should install the tzinfo-data gem and set {DataSources::RubyDataSource} as the {DataSource}. When using {DataSources::ZoneinfoDataSource}, the value of {base_utc_offset} has to be derived from changes to the observed UTC offset and DST status since it is not included in zoneinfo files.

@return [Integer] the base offset from UTC in seconds.

Returns the observed offset from UTC in seconds (‘base_utc_offset + std_offset`). This includes adjustments made for daylight savings time.

@return [Integer] the observed offset from UTC in seconds.

Public Class Methods

Initializes a new {TimezoneOffset}.

{TimezoneOffset} instances should not normally be constructed manually.

The passed in ‘abbreviation` instance will be frozen.

@param base_utc_offset [Integer] the base offset from UTC in seconds. @param std_offset [Integer] the offset from standard time in seconds. @param abbreviation [String] the abbreviation identifying the offset.

# File lib/tzinfo/timezone_offset.rb, line 62
def initialize(base_utc_offset, std_offset, abbreviation)
  @base_utc_offset = base_utc_offset
  @std_offset = std_offset
  @abbreviation = abbreviation.freeze

  @observed_utc_offset = @base_utc_offset + @std_offset
end

Public Instance Methods

Determines if this {TimezoneOffset} is equal to another instance.

@param toi [Object] the instance to test for equality. @return [Boolean] ‘true` if `toi` is a {TimezoneOffset} with the same

{utc_offset}, {std_offset} and {abbreviation} as this {TimezoneOffset},
otherwise `false`.
# File lib/tzinfo/timezone_offset.rb, line 84
def ==(toi)
  toi.kind_of?(TimezoneOffset) &&
    base_utc_offset == toi.base_utc_offset && std_offset == toi.std_offset && abbreviation == toi.abbreviation
end

Determines if daylight savings is in effect (i.e. if {std_offset} is non-zero).

@return [Boolean] ‘true` if {std_offset} is non-zero, otherwise `false`.

# File lib/tzinfo/timezone_offset.rb, line 74
def dst?
  @std_offset != 0
end

Determines if this {TimezoneOffset} is equal to another instance.

@param toi [Object] the instance to test for equality. @return [Boolean] ‘true` if `toi` is a {TimezoneOffset} with the same

{utc_offset}, {std_offset} and {abbreviation} as this {TimezoneOffset},
otherwise `false`.
# File lib/tzinfo/timezone_offset.rb, line 95
def eql?(toi)
  self == toi
end

@return [Integer] a hash based on {utc_offset}, {std_offset} and

{abbreviation}.
# File lib/tzinfo/timezone_offset.rb, line 101
def hash
  [@base_utc_offset, @std_offset, @abbreviation].hash
end

@return [String] the internal object state as a programmer-readable

`String`.
# File lib/tzinfo/timezone_offset.rb, line 107
def inspect
  "#<#{self.class}: @base_utc_offset=#{@base_utc_offset}, @std_offset=#{@std_offset}, @abbreviation=#{@abbreviation}>"
end