All Versions
85
Latest Version
Avg Release Cycle
255 days
Latest Release
387 days ago

Changelog History
Page 1

  • v2.0.3 Changes

    November 08, 2020
    • โž• Added support for handling "slim" format zoneinfo files that are produced by default by zic version 2020b and later. The POSIX-style TZ string is now used calculate DST transition times after the final defined transition in the file. #120.
    • ๐Ÿ›  Fixed TimeWithOffset#getlocal returning a TimeWithOffset with the timezone_offset still assigned when called with an offset argument on JRuby 9.3.
    • ๐Ÿ‘ Rubinius is no longer supported.

    ๐Ÿ’Ž TZInfo v2.0.3 on RubyGems.org

  • v2.0.2 Changes

    April 02, 2020
    • ๐Ÿ›  Fixed 'wrong number of arguments' errors when running on JRuby 9.0. #114.
    • ๐Ÿ›  Fixed warnings when running on Ruby 2.8. #113.
  • v2.0.1 Changes

    December 24, 2019
    • ๐Ÿ›  Fixed "SecurityError: Insecure operation - require" exceptions when loading data with recent Ruby releases in safe mode. #100.
    • ๐Ÿ›  Fixed warnings when running on Ruby 2.7. #109.
    • โž• Add a TZInfo::Timezone#=~ method that performs a regex match on the time zone identifier. #99.
    • โž• Add a TZInfo::Country#=~ method that performs a regex match on the country code.

    ๐Ÿ’Ž TZInfo v2.0.1 on RubyGems.org

  • v2.0.0 Changes

    December 26, 2018

    โž• Added

    • to_local and period_for instance methods have been added to TZInfo::Timezone. These are similar to utc_to_local and period_for_utc, but take the UTC offset of the given time into account.
    • abbreviation, dst?, base_utc_offset and observed_utc_offset instance methods have been added to TZInfo::Timezone, returning the abbreviation, whether daylight savings time is in effect and the UTC offset of the time zone at a specified time.
    • A TZInfo::Timestamp class has been added. It can be used with TZInfo::Timezone in place of a Time or DateTime.
    • local_time, local_datetime and local_timestamp instance methods have been added to TZInfo::Timezone. These methods construct local Time, DateTime and TZInfo::Timestamp instances with the correct UTC offset and abbreviation for the time zone.
    • ๐Ÿ‘Œ Support for a (yet to be released) version 2 of tzinfo-data has been added, in addition to support for version 1. The new version will remove the (no longer needed) DateTime parameters from transition times, reduce memory consumption and improve the efficiency of loading timezone and country indexes.
    • A TZInfo::VERSION constant has been added, indicating the TZInfo version number.

    ๐Ÿ”„ Changed

    • ๐Ÿ’Ž The minimum supported Ruby versions are now Ruby MRI 1.9.3, JRuby 1.7 (in 1.9 or later mode) and Rubinius 3.
    • Local times are now returned using the correct UTC offset (instead of using UTC). #49 and #52.
    • Local times are returned as instances of TimeWithOffset, DateTimeWithOffset or TZInfo::TimestampWithOffset. These classes subclass Time, DateTime and TZInfo::Timestamp respectively. They override the default behaviour of the base classes to return information about the observed offset at the indicated time. For example, the zone abbreviation is returned when using the %Z directive with strftime.
    • The transitions_up_to, offsets_up_to and strftime instance methods of TZInfo::Timezone now take the UTC offsets of given times into account (instead of ignoring them as was previously the case).
    • The TZInfo::TimezonePeriod class has been split into two subclasses: TZInfo::OffsetTimezonePeriod and TZInfo::TransitionsTimezonePeriod. TZInfo::OffsetTimezonePeriod is returned for time zones that only have a single offset. TZInfo::TransitionsTimezonePeriod is returned for periods that start or end with a transition.
    • TZInfo::TimezoneOffset#abbreviation, TZInfo::TimezonePeriod#abbreviation and TZInfo::TimezonePeriod#zone_identifier now return frozen String instances instead of instances of Symbol.
    • The utc_offset and utc_total_offset attributes of TZInfo::TimezonePeriod and TZInfo::TimezoneOffset have been renamed base_utc_offset and observed_utc_offset respectively. The former names have been retained as aliases.
    • TZInfo::Timezone.get, TZInfo::Timezone.get_proxy and TZInfo::Country.get can now be used with strings having any encoding. Previously, only encodings that are directly comparable with UTF-8 were supported.
    • The requested identifier is included in TZInfo::InvalidTimezoneIdentifier exception messages.
    • The requested country code is included in TZInfo::InvalidCountryCode exception messages.
    • The full range of transitions is now loaded from zoneinfo files. Zoneinfo files produced with version 2014c of the zic tool contain an initial transition 2**63 seconds before the epoch. Zoneinfo files produced with version 2014d or later of zic contain an initial transition 2**59 seconds before the epoch. These transitions would previously have been ignored, but are now returned in methods such as TZInfo::Timezone#transitions_up_to.
    • ๐Ÿ’Ž The TZInfo::RubyDataSource and TZInfo::ZoneinfoDataSource classes have been moved into a new TZInfo::DataSources module. Code that is setting TZInfo::ZoneinfoDataSource.search_path or TZInfo::ZoneinfoDataSource.alternate_iso3166_tab_search_path will need to be updated accordingly.
    • The TZInfo::InvalidZoneinfoDirectory and TZInfo::ZoneinfoDirectoryNotFound exception classes raised by TZInfo::DataSources::ZoneinfoDataSource have been moved into the TZInfo::DataSources module.
    • ๐Ÿ’Ž Setting the data source to :ruby or instantiating TZInfo::DataSources::RubyDataSource will now immediately raise a TZInfo::DataSources::TZInfoDataNotFound exception if require 'tzinfo/data' fails. Previously, a failure would only occur later when accessing an index or loading a timezone or country.
    • The DEFAULT_SEARCH_PATH and DEFAULT_ALTERNATE_ISO3166_TAB_SEARCH_PATH constants of TZInfo::DataSources::ZoneinfoDataSource have been made private.
    • The TZInfo::Country.data_source, TZInfo::DataSource.create_default_data_source, TZInfo::DataSources::ZoneinfoDataSource.process_search_path, TZInfo::Timezone.get_proxies and TZInfo::Timezone.data_source methods have been made private.
    • ๐ŸŽ The performance of loading zoneinfo files and the associated indexes has been improved.
    • Memory use has been decreased by deduplicating String instances when loading country and time zone data.
    • ๐Ÿšš The dependency on the deprecated thread_safe gem as been removed and replaced by concurrent-ruby.
    • The Info classes used to return time zone and country information from TZInfo::DataSource implementations have been moved into the TZInfo::DataSources module.
    • ๐Ÿšš The TZInfo::TransitionDataTimezoneInfo class has been removed and replaced with TZInfo::DataSources::TransitionsDataTimezoneInfo and TZInfo::DataSources::ConstantOffsetDataTimezoneInfo. TZInfo::DataSources::TransitionsDataTimezoneInfo is constructed with an Array of TZInfo::TimezoneTransition instances representing times when the offset changes. TZInfo::DataSources::ConstantOffsetDataTimezoneInfo is constructed with a TZInfo::TimezoneOffset instance representing the offset constantly observed in a time zone.
    • The TZInfo::DataSource#timezone_identifiers method should no longer be overridden in custom data source implementations. The implementation in the base class now calculates a result from TZInfo::DataSource#data_timezone_identifiers and TZInfo::DataSource#linked_timezone_identifiers.
    • ๐Ÿ’Ž The results of the TZInfo::DataSources::RubyDataSource to_s and inspect methods now include the time zone database and tzinfo-data versions.

    โœ‚ Removed

    • Methods of TZInfo::Timezone that accept time arguments no longer allow Integer timestamp values. Time, DateTime or TZInfo::Timestamp values or objects that respond to to_i, subsec and optionally utc_offset must be used instead.
    • The %:::z format directive can now only be used with TZInfo::Timezone#strftime if it is supported by Time#strftime on the runtime platform.
    • Using TZInfo::Timezone.new(identifier) and TZInfo::Country.new(code) to obtain a specific TZInfo::Timezone or TZInfo::Country will no longer work. TZInfo::Timezone.get(identifier) and TZInfo::Country.get(code) should be used instead.
    • ๐Ÿšš The TZInfo::TimeOrDateTime class has been removed.
    • The valid_for_utc?, utc_after_start?, utc_before_end?, valid_for_local?, local_after_start? and local_before_end? instance methods of TZInfo::TimezonePeriod have been removed. Comparisons can be performed with the results of the starts_at, ends_at, local_starts_at and local_ends_at methods instead.
    • The to_local and to_utc instance methods of TZInfo::TimezonePeriod and TZInfo::TimezoneOffset have been removed. Conversions should be performed using the TZInfo::Timezone class instead.
    • The TZInfo::TimezonePeriod#utc_total_offset_rational method has been removed. Equivalent information can be obtained using the TZInfo::TimezonePeriod#observed_utc_offset method.
    • The datetime, time, local_end, local_end_time, local_start and local_start_time instance methods of TZInfo::TimezoneTransition have been removed. The at, local_end_at and local_start_at methods should be used instead and the result (a TZInfo::TimestampWithOffset) converted to either a DateTime or Time by calling to_datetime or to_time on the result.
    • The us_zones and us_zone_identifiers class methods of TZInfo::Timezone have been removed. TZInfo::Country.get('US').zones and TZInfo::Country.get('US').zone_identifiers should be used instead.
  • v1.2.8 Changes

    November 08, 2020
    • โž• Added support for handling "slim" format zoneinfo files that are produced by default by zic version 2020b and later. The POSIX-style TZ string is now used calculate DST transition times after the final defined transition in the file. The 64-bit section is now always used regardless of whether Time has support for 64-bit times. #120.
    • ๐Ÿ‘ Rubinius is no longer supported.

    ๐Ÿ’Ž TZInfo v1.2.8 on RubyGems.org

  • v1.2.7 Changes

    April 02, 2020
    • ๐Ÿ›  Fixed 'wrong number of arguments' errors when running on JRuby 9.0. #114.
    • ๐Ÿ›  Fixed warnings when running on Ruby 2.8. #112.
  • v1.2.6 Changes

    December 24, 2019
    • Timezone#strftime('%s', time) will now return the correct number of seconds since the epoch. #91.
    • โœ‚ Removed the unused TZInfo::RubyDataSource::REQUIRE_PATH constant.
    • ๐Ÿ›  Fixed "SecurityError: Insecure operation - require" exceptions when loading data with recent Ruby releases in safe mode.
    • ๐Ÿ›  Fixed warnings when running on Ruby 2.7. #106 and #111.

    ๐Ÿ’Ž TZInfo v1.2.6 on RubyGems.org

  • v1.2.5 Changes

    February 04, 2018
    • ๐Ÿ‘Œ Support recursively (deep) freezing Country and Timezone instances. #80.
    • Allow negative daylight savings time offsets to be derived when reading from zoneinfo files. The utc_offset and std_offset are now derived correctly for Europe/Dublin in the 2018a and 2018b releases of the Time Zone Database.

    ๐Ÿ’Ž TZInfo v1.2.5 on RubyGems.org

  • v1.2.4 Changes

    October 26, 2017
    • Ignore the leapseconds file that is included in zoneinfo directories installed with version 2017c and later of the Time Zone Database.

    ๐Ÿ’Ž TZInfo v1.2.4 on RubyGems.org

  • v1.2.3 Changes

    March 25, 2017
    • โฌ‡๏ธ Reduce the number of String objects allocated when loading zoneinfo files. #54.
    • ๐Ÿ‘‰ Make Timezone#friendly_identifier compatible with frozen string literals.
    • ๐Ÿ‘Œ Improve the algorithm for deriving the utc_offset from zoneinfo files. This now correctly handles Pacific/Apia switching from one side of the International Date Line to the other whilst observing daylight savings time. #66.
    • Fix an UnknownTimezone exception when calling transitions_up_to or offsets_up_to on a TimezoneProxy instance obtained from Timezone.get_proxy.
    • ๐Ÿ‘ Allow the Factory zone to be obtained from the Zoneinfo data source.
    • Ignore the /usr/share/zoneinfo/timeconfig symlink included in Slackware distributions. #64.
    • ๐Ÿ›  Fix Timezone#strftime handling of %Z expansion when %Z is prefixed with more than one percent. #31.
    • ๐Ÿ‘Œ Support expansion of %z, %:z, %::z and %:::z to the UTC offset of the time zone in Timezone#strftime. #31 and #67.

    ๐Ÿ’Ž TZInfo v1.2.3 on RubyGems.org