123456789_123456789_123456789_123456789_123456789_

Class: TZInfo::DataTimezone

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
self, InfoTimezone, Timezone, Comparable
Inherits: TZInfo::InfoTimezone
Defined in: lib/tzinfo/data_timezone.rb

Overview

Represents time zones that are defined by rules that set out when transitions occur.

Class Attribute Summary

Timezone - Inherited

.default_dst

Returns the default value of the optional dst parameter of the local_time, local_datetime and local_timestamp, local_to_utc and period_for_local methods (nil, true or false).

.default_dst=

Sets the default value of the optional dst parameter of the local_datetime, local_time, local_timestamp, local_to_utc and period_for_local methods.

Class Method Summary

InfoTimezone - Inherited

.new

Initializes a new InfoTimezone.

Timezone - Inherited

._load

Loads a Timezone from the serialized representation returned by _dump.

.all

Returns an Array of all the available time zones.

.all_country_zone_identifiers

Returns an Array of the identifiers of all the time zones that are observed by at least one Country.

.all_country_zones

Returns an Array of all the time zones that are observed by at least one Country.

.all_data_zone_identifiers

time zones that are defined by offsets and transitions.

.all_data_zones

Returns an Array of all the available time zones that are defined by offsets and transitions.

.all_identifiers,
.all_linked_zone_identifiers

time zones that are defined as links to / aliases for other time zones.

.all_linked_zones

Returns an Array of all the available time zones that are defined as links to / aliases for other time zones.

.get

Returns a time zone by its IANA Time Zone Database identifier (e.g. "Europe/London" or "America/Chicago").

.get_proxy

Returns a proxy for the time zone with the given identifier.

.data_source, .get_proxies

Instance Method Summary

InfoTimezone - Inherited

Timezone - Inherited

#<=>

Compares this Timezone with another based on the identifier.

#=~

Matches regexp against the identifier of this Timezone.

#_dump

Returns a serialized representation of this Timezone.

#abbr
#abbreviation,
#base_utc_offset

Returns the base offset from UTC in seconds at the given time.

#canonical_identifier

Returns the canonical identifier of this time zone.

#canonical_zone

Returns the canonical Timezone instance for this Timezone.

#current_period,
#current_period_and_time
#current_time_and_period

Returns the current local time and TimezonePeriod for the time zone as an Array.

#dst?, #eql?,
#friendly_identifier

Returns identifier, modified to make it more readable.

#hash, #identifier, #inspect,
#local_datetime

Creates a DateTime object based on the given (Gregorian calendar) date and time parameters.

#local_time

Creates a Time object based on the given (Gregorian calendar) date and time parameters.

#local_timestamp

Creates a Timestamp object based on the given (Gregorian calendar) date and time parameters.

#local_to_utc

Converts a local time for the time zone to UTC.

#name, #now,
#observed_utc_offset

Returns the observed offset from UTC in seconds at the given time.

#offsets_up_to

Returns the unique offsets used by the time zone up to a given time (to) as an Array of TimezoneOffset instances.

#period_for

Returns the TimezonePeriod that is valid at a given time.

#period_for_local

Returns the TimezonePeriod that is valid at the given local time.

#period_for_utc

Returns the TimezonePeriod that is valid at a given time.

#periods_for_local

Returns the set of TimezonePeriods that are valid for the given local time as an Array.

#strftime

Converts a time to local time for the time zone and returns a String representation of the local time according to the given format.

#to_local

Converts a time to the local time for the time zone.

#to_s,
#transitions_up_to

Returns an Array of TimezoneTransition instances representing the times where the UTC offset of the timezone changes.

#utc_offset
#utc_to_local

Converts a time in UTC to the local time for the time zone.

#raise_unknown_timezone

Raises an UnknownTimezone exception.

Constructor Details

This class inherits a constructor from TZInfo::InfoTimezone

Instance Method Details

#canonical_zoneTimezone

Returns the canonical Timezone instance for this DataTimezone.

For a DataTimezone, this is always self.

Returns:

[ GitHub ]

  
# File 'lib/tzinfo/data_timezone.rb', line 40

def canonical_zone
  self
end

#period_for(time) ⇒ TimezonePeriod

Returns the TimezonePeriod that is valid at a given time.

Unlike period_for_local and period_for_utc, the UTC offset of the time parameter is taken into consideration.

Parameters:

  • time (Object)

    a Time, DateTime or Timestamp.

Returns:

Raises:

  • (ArgumentError)

    if time is nil.

  • (ArgumentError)

    if time is a Timestamp with an unspecified offset.

[ GitHub ]

  
# File 'lib/tzinfo/data_timezone.rb', line 9

def period_for(time)
  raise ArgumentError, 'time must be specified' unless time
  timestamp = Timestamp.for(time)
  raise ArgumentError, 'time must have a specified utc_offset' unless timestamp.utc_offset
  info.period_for(timestamp)
end

#periods_for_local(local_time) ⇒ Array<TimezonePeriod>

Returns the set of TimezonePeriods that are valid for the given local time as an Array.

The UTC offset of the local_time parameter is ignored (it is treated as a time in the time zone represented by self).

This will typically return an Array containing a single TimezonePeriod. More than one TimezonePeriod will be returned when the local time is ambiguous (for example, when daylight savings time ends). An empty Array will be returned when the local time is not valid (for example, when daylight savings time begins).

To obtain just a single TimezonePeriod in all cases, use period_for_local instead and specify how ambiguities should be resolved.

Parameters:

  • local_time (Object)

    a Time, DateTime or Timestamp.

Returns:

Raises:

  • (ArgumentError)

    if local_time is nil.

[ GitHub ]

  
# File 'lib/tzinfo/data_timezone.rb', line 17

def periods_for_local(local_time)
  raise ArgumentError, 'local_time must be specified' unless local_time
  info.periods_for_local(Timestamp.for(local_time, :ignore))
end

#transitions_up_to(to, from = nil) ⇒ Array<TimezoneTransition>

Returns an Array of TimezoneTransition instances representing the times where the UTC offset of the timezone changes.

Transitions are returned up to a given time (to).

A from time may also be supplied using the from parameter. If from is not nil, only transitions from that time onwards will be returned.

Comparisons with to are exclusive. Comparisons with from are inclusive. If a transition falls precisely on to, it will be excluded. If a transition falls on from, it will be included.

Parameters:

  • to (Object)

    a Time, DateTime or Timestamp specifying the latest (exclusive) transition to return.

  • from (Object) (defaults to: nil)

    an optional Time, DateTime or Timestamp specifying the earliest (inclusive) transition to return.

Returns:

  • (Array<TimezoneTransition>)

    the transitions that are earlier than to and, if specified, at or later than from. Transitions are ordered by when they occur, from earliest to latest.

Raises:

  • (ArgumentError)

    if from is specified and to is not greater than from.

  • (ArgumentError)

    is raised if to is nil.

  • (ArgumentError)

    if either to or from is a Timestamp with an unspecified offset.

[ GitHub ]

  
# File 'lib/tzinfo/data_timezone.rb', line 23

def transitions_up_to(to, from = nil)
  raise ArgumentError, 'to must be specified' unless to
  to_timestamp = Timestamp.for(to)
  from_timestamp = from && Timestamp.for(from)

  begin
    info.transitions_up_to(to_timestamp, from_timestamp)
  rescue ArgumentError => e
    raise ArgumentError, e.message.gsub('_timestamp', '')
  end
end