You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
974 lines
40 KiB
974 lines
40 KiB
2 years ago
|
# Changes
|
||
|
|
||
|
## Version 2.0.4 - 16-Dec-2020
|
||
|
|
||
|
* Fixed an incorrect InvalidTimezoneIdentifier exception raised when loading a
|
||
|
zoneinfo file that includes rules specifying an additional transition to the
|
||
|
final defined offset (for example, Africa/Casablanca in version 2018e of the
|
||
|
Time Zone Database). #123.
|
||
|
|
||
|
|
||
|
## Version 2.0.3 - 8-Nov-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.
|
||
|
|
||
|
|
||
|
## Version 2.0.2 - 2-Apr-2020
|
||
|
|
||
|
* Fixed 'wrong number of arguments' errors when running on JRuby 9.0. #114.
|
||
|
* Fixed warnings when running on Ruby 2.8. #113.
|
||
|
|
||
|
|
||
|
## Version 2.0.1 - 24-Dec-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.
|
||
|
* Added a `TZInfo::Timezone#=~` method that performs a regex match on the time
|
||
|
zone identifier. #99.
|
||
|
* Added a `TZInfo::Country#=~` method that performs a regex match on the country
|
||
|
code.
|
||
|
|
||
|
|
||
|
## Version 2.0.0 - 26-Dec-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.
|
||
|
|
||
|
|
||
|
## Version 1.2.9 - 16-Dec-2020
|
||
|
|
||
|
* Fixed an incorrect InvalidTimezoneIdentifier exception raised when loading a
|
||
|
zoneinfo file that includes rules specifying an additional transition to the
|
||
|
final defined offset (for example, Africa/Casablanca in version 2018e of the
|
||
|
Time Zone Database). #123.
|
||
|
|
||
|
|
||
|
## Version 1.2.8 - 8-Nov-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.
|
||
|
|
||
|
|
||
|
## Version 1.2.7 - 2-Apr-2020
|
||
|
|
||
|
* Fixed 'wrong number of arguments' errors when running on JRuby 9.0. #114.
|
||
|
* Fixed warnings when running on Ruby 2.8. #112.
|
||
|
|
||
|
|
||
|
## Version 1.2.6 - 24-Dec-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.
|
||
|
|
||
|
|
||
|
## Version 1.2.5 - 4-Feb-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.
|
||
|
|
||
|
|
||
|
## Version 1.2.4 - 26-Oct-2017
|
||
|
|
||
|
* Ignore the leapseconds file that is included in zoneinfo directories installed
|
||
|
with version 2017c and later of the Time Zone Database.
|
||
|
|
||
|
|
||
|
## Version 1.2.3 - 25-Mar-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.
|
||
|
|
||
|
|
||
|
## Version 1.2.2 - 8-Aug-2014
|
||
|
|
||
|
* Fix an error with duplicates being returned by `Timezone#all_country_zones`
|
||
|
and `Timezone#all_country_zone_identifiers` when used with tzinfo-data
|
||
|
v1.2014.6 or later.
|
||
|
* Use the zone1970.tab file for country timezone data if it is found in the
|
||
|
zoneinfo directory (and fallback to zone.tab if not). zone1970.tab was added
|
||
|
in tzdata 2014f. zone.tab is now deprecated.
|
||
|
|
||
|
|
||
|
## Version 1.2.1 - 1-Jun-2014
|
||
|
|
||
|
* Support zoneinfo files generated with zic version 2014c and later.
|
||
|
* On platforms that only support positive 32-bit timestamps, ensure that
|
||
|
conversions are accurate from the epoch instead of just from the first
|
||
|
transition after the epoch.
|
||
|
* Minor documentation improvements.
|
||
|
|
||
|
|
||
|
## Version 1.2.0 - 26-May-2014
|
||
|
|
||
|
* Raise the minimum supported Ruby version to 1.8.7.
|
||
|
* Support loading system zoneinfo data on FreeBSD, OpenBSD and Solaris.
|
||
|
Resolves #15.
|
||
|
* Add `canonical_identifier` and `canonical_zone` methods to `Timezone`.
|
||
|
Resolves #16.
|
||
|
* Add a link to a `DataSourceNotFound` help page in the
|
||
|
`TZInfo::DataSourceNotFound` exception message.
|
||
|
* Load iso3166.tab and zone.tab files as UTF-8.
|
||
|
* Fix `Timezone#local_to_utc` returning local `Time` instances on systems using
|
||
|
UTC as the local time zone. Resolves #13.
|
||
|
* Fix `==` methods raising an exception when passed an instance of a different
|
||
|
class by making `<=>` return `nil` if passed a non-comparable argument.
|
||
|
* Eliminate `require 'rational'` warnings. Resolves #10.
|
||
|
* Eliminate "assigned but unused variable - info" warnings. Resolves #11.
|
||
|
* Switch to minitest v5 for unit tests. Resolves #18.
|
||
|
|
||
|
|
||
|
## Version 1.1.0 - 25-Sep-2013
|
||
|
|
||
|
* TZInfo is now thread safe. `ThreadSafe::Cache` is now used instead of `Hash`
|
||
|
to cache `Timezone` and `Country` instances returned by `Timezone.get` and
|
||
|
`Country.get`. The tzinfo gem now depends on thread_safe ~> 0.1.
|
||
|
* Added a `transitions_up_to` method to `Timezone` that returns a list of the
|
||
|
times where the UTC offset of the timezone changes.
|
||
|
* Added an `offsets_up_to` method to `Timezone` that returns the set of offsets
|
||
|
that have been observed in a defined timezone.
|
||
|
* Fixed a "can't modify frozen String" error when loading a `Timezone` from a
|
||
|
zoneinfo file using an identifier `String` that is both tainted and frozen.
|
||
|
Resolves #3.
|
||
|
* Support TZif3 format zoneinfo files (now produced by zic from tzcode version
|
||
|
2013e onwards).
|
||
|
* Support using YARD to generate documentation (added a .yardopts file).
|
||
|
* Ignore the +VERSION file included in the zoneinfo directory on Mac OS X.
|
||
|
* Added a note to the documentation concerning 32-bit zoneinfo files (as
|
||
|
included with Mac OS X).
|
||
|
|
||
|
|
||
|
## Version 1.0.1 - 22-Jun-2013
|
||
|
|
||
|
* Fix a test case failure when tests are run from a directory that contains a
|
||
|
dot in the path (issue #29751).
|
||
|
|
||
|
|
||
|
## Version 1.0.0 - 2-Jun-2013
|
||
|
|
||
|
* Allow TZInfo to be used with different data sources instead of just the
|
||
|
built-in Ruby module data files.
|
||
|
* Include a data source that allows TZInfo to load data from the binary
|
||
|
zoneinfo files produced by zic and included with many Linux and Unix-like
|
||
|
distributions.
|
||
|
* Remove the definition and index Ruby modules from TZInfo and move them into
|
||
|
a separate TZInfo::Data library (available as the tzinfo-data gem).
|
||
|
* Default to using the TZInfo::Data library as the data source if it is
|
||
|
installed, otherwise use zoneinfo files instead.
|
||
|
* Preserve the nanoseconds of local timezone Time objects when performing
|
||
|
conversions (issue #29705).
|
||
|
* Don't add the tzinfo lib directory to the search path when requiring 'tzinfo'.
|
||
|
The tzinfo lib directory must now be in the search path before 'tzinfo' is
|
||
|
required.
|
||
|
* Add `utc_start_time`, `utc_end_time`, `local_start_time` and `local_end_time`
|
||
|
instance methods to `TimezonePeriod`. These return an identical value as the
|
||
|
existing `utc_start`, `utc_end`, `local_start` and `local_end` methods, but
|
||
|
return `Time` instances instead of `DateTime`.
|
||
|
* Make the `start_transition`, `end_transition` and `offset` properties of
|
||
|
`TimezonePeriod` protected. To access properties of the period, callers should
|
||
|
use other `TimezonePeriod` instance methods instead (issue #7655).
|
||
|
|
||
|
|
||
|
## Version 0.3.58 (tzdata v2020d) - 8-Nov-2020
|
||
|
|
||
|
* Updated to tzdata version 2020d
|
||
|
(https://mm.icann.org/pipermail/tz-announce/2020-October/000062.html).
|
||
|
|
||
|
|
||
|
## Version 0.3.57 (tzdata v2020a) - 17-May-2020
|
||
|
|
||
|
* Updated to tzdata version 2020a
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2020-April/000058.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.56 (tzdata v2019c) - 1-Nov-2019
|
||
|
|
||
|
* Updated to tzdata version 2019c
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2019-September/000057.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.55 (tzdata v2018g) - 27-Oct-2018
|
||
|
|
||
|
* Updated to tzdata version 2018g
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2018-October/000052.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.54 (tzdata v2018d) - 25-Mar-2018
|
||
|
|
||
|
* Updated to tzdata version 2018d
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2018-March/000049.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.53 (tzdata v2017b) - 23-Mar-2017
|
||
|
|
||
|
* Updated to tzdata version 2017b
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2017-March/000046.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.52 (tzdata v2016h) - 28-Oct-2016
|
||
|
|
||
|
* Updated to tzdata version 2016h
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2016-October/000042.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.51 (tzdata v2016f) - 5-Jul-2016
|
||
|
|
||
|
* Updated to tzdata version 2016f
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2016-July/000040.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.50 (tzdata v2016e) - 14-Jun-2016
|
||
|
|
||
|
* Updated to tzdata version 2016e
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2016-June/000039.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.49 (tzdata v2016d) - 18-Apr-2016
|
||
|
|
||
|
* Updated to tzdata version 2016d
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2016-April/000038.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.48 (tzdata v2016c) - 23-Mar-2016
|
||
|
|
||
|
* Updated to tzdata version 2016c
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2016-March/000037.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.47 (tzdata v2016b) - 15-Mar-2016
|
||
|
|
||
|
* Updated to tzdata version 2016b
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2016-March/000036.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.46 (tzdata v2015g) - 2-Dec-2015
|
||
|
|
||
|
* From version 2015e, the IANA time zone database uses non-ASCII characters in
|
||
|
country names. Backport the encoding handling from TZInfo::Data to allow
|
||
|
TZInfo 0.3.x to support Ruby 1.9 (which would otherwise fail with an invalid
|
||
|
byte sequence error when loading the countries index). Resolves #41.
|
||
|
|
||
|
|
||
|
## Version 0.3.45 (tzdata v2015g) - 3-Oct-2015
|
||
|
|
||
|
* Updated to tzdata version 2015g
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2015-October/000034.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.44 (tzdata v2015d) - 24-Apr-2015
|
||
|
|
||
|
* Updated to tzdata version 2015d
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2015-April/000031.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.43 (tzdata v2015a) - 31-Jan-2015
|
||
|
|
||
|
* Updated to tzdata version 2015a
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2015-January/000028.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.42 (tzdata v2014i) - 23-Oct-2014
|
||
|
|
||
|
* Updated to tzdata version 2014i
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2014-October/000026.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.41 (tzdata v2014f) - 8-Aug-2014
|
||
|
|
||
|
* Updated to tzdata version 2014f
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2014-August/000023.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.40 (tzdata v2014e) - 10-Jul-2014
|
||
|
|
||
|
* Updated to tzdata version 2014e
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2014-June/000022.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.39 (tzdata v2014a) - 9-Mar-2014
|
||
|
|
||
|
* Updated to tzdata version 2014a
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2014-March/000018.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.38 (tzdata v2013g) - 8-Oct-2013
|
||
|
|
||
|
* Updated to tzdata version 2013g
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2013-October/000015.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.37 (tzdata v2013b) - 11-Mar-2013
|
||
|
|
||
|
* Updated to tzdata version 2013b
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2013-March/000010.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.36 (tzdata v2013a) - 3-Mar-2013
|
||
|
|
||
|
* Updated to tzdata version 2013a
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2013-March/000009.html>).
|
||
|
* Fix `TimezoneTransitionInfo#eql?` incorrectly returning false when running on
|
||
|
Ruby 2.0.
|
||
|
* Change `eql?` and `==` implementations to test the class of the passed in
|
||
|
object instead of checking individual properties with `respond_to?`.
|
||
|
|
||
|
|
||
|
## Version 0.3.35 (tzdata v2012i) - 4-Nov-2012
|
||
|
|
||
|
* Updated to tzdata version 2012i
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2012-November/000007.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.34 (tzdata v2012h) - 27-Oct-2012
|
||
|
|
||
|
* Updated to tzdata version 2012h
|
||
|
(<https://mm.icann.org/pipermail/tz-announce/2012-October/000006.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.33 (tzdata v2012c) - 8-Apr-2012
|
||
|
|
||
|
* Updated to tzdata version 2012c
|
||
|
(<https://mm.icann.org/pipermail/tz/2012-April/017627.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.32 (tzdata v2012b) - 4-Mar-2012
|
||
|
|
||
|
* Updated to tzdata version 2012b
|
||
|
(<https://mm.icann.org/pipermail/tz/2012-March/017524.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.31 (tzdata v2011n) - 6-Nov-2011
|
||
|
|
||
|
* Updated to tzdata version 2011n
|
||
|
(<https://mm.icann.org/pipermail/tz/2011-October/017201.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.30 (tzdata v2011k) - 29-Sep-2011
|
||
|
|
||
|
* Updated to tzdata version 2011k
|
||
|
(<https://mm.icann.org/pipermail/tz/2011-September/008889.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.29 (tzdata v2011h) - 27-Jun-2011
|
||
|
|
||
|
* Updated to tzdata version 2011h
|
||
|
(<https://mm.icann.org/pipermail/tz/2011-June/008576.html>).
|
||
|
* Allow the default value of the `local_to_utc` and `period_for_local` `dst`
|
||
|
parameter to be specified globally with a `Timezone.default_dst` attribute.
|
||
|
Thanks to Kurt Werle for the suggestion and patch.
|
||
|
|
||
|
|
||
|
## Version 0.3.28 (tzdata v2011g) - 13-Jun-2011
|
||
|
|
||
|
* Add support for Ruby 1.9.3 (trunk revision 31668 and later). Thanks to
|
||
|
Aaron Patterson for reporting the problems running on the new version.
|
||
|
Closes #29233.
|
||
|
|
||
|
|
||
|
## Version 0.3.27 (tzdata v2011g) - 26-Apr-2011
|
||
|
|
||
|
* Updated to tzdata version 2011g
|
||
|
(<https://mm.icann.org/pipermail/tz/2011-April/016875.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.26 (tzdata v2011e) - 2-Apr-2011
|
||
|
|
||
|
* Updated to tzdata version 2011e
|
||
|
(<https://mm.icann.org/pipermail/tz/2011-April/016809.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.25 (tzdata v2011d) - 14-Mar-2011
|
||
|
|
||
|
* Updated to tzdata version 2011d
|
||
|
(<https://mm.icann.org/pipermail/tz/2011-March/016746.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.24 (tzdata v2010o) - 15-Jan-2011
|
||
|
|
||
|
* Updated to tzdata version 2010o
|
||
|
(<https://mm.icann.org/pipermail/tz/2010-November/016517.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.23 (tzdata v2010l) - 19-Aug-2010
|
||
|
|
||
|
* Updated to tzdata version 2010l
|
||
|
(<https://mm.icann.org/pipermail/tz/2010-August/016360.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.22 (tzdata v2010j) - 29-May-2010
|
||
|
|
||
|
* Corrected file permissions issue with 0.3.21 release.
|
||
|
|
||
|
|
||
|
## Version 0.3.21 (tzdata v2010j) - 28-May-2010
|
||
|
|
||
|
* Updated to tzdata version 2010j
|
||
|
(<https://mm.icann.org/pipermail/tz/2010-May/016211.html>).
|
||
|
* Change invalid timezone check to exclude characters not used in timezone
|
||
|
identifiers and avoid 'character class has duplicated range' warnings with
|
||
|
Ruby 1.9.2.
|
||
|
* Ruby 1.9.2 has deprecated `require 'rational'`, but older versions of
|
||
|
Ruby need rational to be required. Require rational only when the Rational
|
||
|
module has not already been loaded.
|
||
|
* Remove circular requires (now a warning in Ruby 1.9.2). Instead of using
|
||
|
requires in each file for dependencies, `tzinfo.rb` now requires all tzinfo
|
||
|
files. If you were previously requiring files within the tzinfo directory
|
||
|
(e.g. `require 'tzinfo/timezone'`), then you will now have to
|
||
|
`require 'tzinfo'` instead.
|
||
|
|
||
|
|
||
|
## Version 0.3.20 (tzdata v2010i) - 19-Apr-2010
|
||
|
|
||
|
* Updated to tzdata version 2010i
|
||
|
(<https://mm.icann.org/pipermail/tz/2010-April/016184.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.19 (tzdata v2010h) - 5-Apr-2010
|
||
|
|
||
|
* Updated to tzdata version 2010h
|
||
|
(<https://mm.icann.org/pipermail/tz/2010-April/016161.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.18 (tzdata v2010g) - 29-Mar-2010
|
||
|
|
||
|
* Updated to tzdata version 2010g
|
||
|
(<https://mm.icann.org/pipermail/tz/2010-March/016140.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.17 (tzdata v2010e) - 8-Mar-2010
|
||
|
|
||
|
* Updated to tzdata version 2010e
|
||
|
(<https://mm.icann.org/pipermail/tz/2010-March/016088.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.16 (tzdata v2009u) - 5-Jan-2010
|
||
|
|
||
|
* Support the use of '-' to denote '0' as an offset in the tz data files.
|
||
|
Used for the first time in the SAVE field in tzdata v2009u.
|
||
|
* Updated to tzdata version 2009u
|
||
|
(<https://mm.icann.org/pipermail/tz/2009-December/016001.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.15 (tzdata v2009p) - 26-Oct-2009
|
||
|
|
||
|
* Updated to tzdata version 2009p
|
||
|
(<https://mm.icann.org/pipermail/tz/2009-October/015889.html>).
|
||
|
* Added a description to the gem spec.
|
||
|
* List test files in test_files instead of files in the gem spec.
|
||
|
|
||
|
|
||
|
## Version 0.3.14 (tzdata v2009l) - 19-Aug-2009
|
||
|
|
||
|
* Updated to tzdata version 2009l
|
||
|
(<https://mm.icann.org/pipermail/tz/2009-August/015729.html>).
|
||
|
* Include current directory in load path to allow running tests on
|
||
|
Ruby 1.9.2, which doesn't include it by default any more.
|
||
|
|
||
|
|
||
|
## Version 0.3.13 (tzdata v2009f) - 15-Apr-2009
|
||
|
|
||
|
* Updated to tzdata version 2009f
|
||
|
(<https://mm.icann.org/pipermail/tz/2009-April/015544.html>).
|
||
|
* Untaint the timezone module filename after validation to allow use
|
||
|
with `$SAFE == 1` (e.g. under mod_ruby). Thanks to Dmitry Borodaenko for
|
||
|
the suggestion. Closes #25349.
|
||
|
|
||
|
|
||
|
## Version 0.3.12 (tzdata v2008i) - 12-Nov-2008
|
||
|
|
||
|
* Updated to tzdata version 2008i
|
||
|
(<https://mm.icann.org/pipermail/tz/2008-October/015260.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.11 (tzdata v2008g) - 7-Oct-2008
|
||
|
|
||
|
* Updated to tzdata version 2008g
|
||
|
(<https://mm.icann.org/pipermail/tz/2008-October/015139.html>).
|
||
|
* Support Ruby 1.9.0-5. `Rational.new!` has now been removed in Ruby 1.9.
|
||
|
Only use `Rational.new!` if it is available (it is preferable in Ruby 1.8
|
||
|
for performance reasons). Thanks to Jeremy Kemper and Pratik Naik for
|
||
|
reporting this. Closes #22312.
|
||
|
* Apply a patch from Pratik Naik to replace assert calls that have been
|
||
|
deprecated in the Ruby svn trunk. Closes #22308.
|
||
|
|
||
|
|
||
|
## Version 0.3.10 (tzdata v2008f) - 16-Sep-2008
|
||
|
|
||
|
* Updated to tzdata version 2008f
|
||
|
(<https://mm.icann.org/pipermail/tz/2008-September/015090.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.9 (tzdata v2008c) - 27-May-2008
|
||
|
|
||
|
* Updated to tzdata version 2008c
|
||
|
(<https://mm.icann.org/pipermail/tz/2008-May/014956.html>).
|
||
|
* Support loading timezone data in the latest trunk versions of Ruby 1.9.
|
||
|
`Rational.new!` is now private, so call it using `Rational.send :new!`
|
||
|
instead. Thanks to Jeremy Kemper and Pratik Naik for spotting this. Closes
|
||
|
#19184.
|
||
|
* Prevent warnings from being output when running Ruby with the -v or -w
|
||
|
command line options. Thanks to Paul McMahon for the patch. Closes #19719.
|
||
|
|
||
|
|
||
|
## Version 0.3.8 (tzdata v2008b) - 24-Mar-2008
|
||
|
|
||
|
* Updated to tzdata version 2008b
|
||
|
(<https://mm.icann.org/pipermail/tz/2008-March/014910.html>).
|
||
|
* Support loading timezone data in Ruby 1.9.0. Use `DateTime.new!` if it is
|
||
|
available instead of `DateTime.new0` when constructing transition times.
|
||
|
`DateTime.new!` was added in Ruby 1.8.6. `DateTime.new0` was removed in
|
||
|
Ruby 1.9.0. Thanks to Joshua Peek for reporting this. Closes #17606.
|
||
|
* Modify some of the equality test cases to cope with the differences
|
||
|
between Ruby 1.8.6 and Ruby 1.9.0.
|
||
|
|
||
|
|
||
|
## Version 0.3.7 (tzdata v2008a) - 10-Mar-2008
|
||
|
|
||
|
* Updated to tzdata version 2008a
|
||
|
(<https://mm.icann.org/pipermail/tz/2008-March/014851.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.6 (tzdata v2007k) - 1-Jan-2008
|
||
|
|
||
|
* Updated to tzdata version 2007k
|
||
|
(<https://mm.icann.org/pipermail/tz/2007-December/014765.html>).
|
||
|
* Removed deprecated RubyGems autorequire option.
|
||
|
|
||
|
|
||
|
## Version 0.3.5 (tzdata v2007h) - 1-Oct-2007
|
||
|
|
||
|
* Updated to tzdata version 2007h
|
||
|
(<https://mm.icann.org/pipermail/tz/2007-October/014585.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.4 (tzdata v2007g) - 21-Aug-2007
|
||
|
|
||
|
* Updated to tzdata version 2007g
|
||
|
(<https://mm.icann.org/pipermail/tz/2007-August/014499.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.3 (tzdata v2006p) - 27-Nov-2006
|
||
|
|
||
|
* Updated to tzdata version 2006p
|
||
|
(<https://mm.icann.org/pipermail/tz/2006-November/013999.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.2 (tzdata v2006n) - 11-Oct-2006
|
||
|
|
||
|
* Updated to tzdata version 2006n
|
||
|
(<https://mm.icann.org/pipermail/tz/2006-October/013911.html>). Note that this
|
||
|
release of tzdata removes the country Serbia and Montenegro (CS) and replaces
|
||
|
it with separate Serbia (RS) and Montenegro (ME) entries.
|
||
|
|
||
|
|
||
|
## Version 0.3.1 (tzdata v2006j) - 21-Aug-2006
|
||
|
|
||
|
* Remove colon from case statements to avoid warning in Ruby 1.8.5. #5198.
|
||
|
* Use temporary variable to avoid dynamic string warning from rdoc.
|
||
|
* Updated to tzdata version 2006j
|
||
|
(<https://mm.icann.org/pipermail/tz/2006-August/013767.html>).
|
||
|
|
||
|
|
||
|
## Version 0.3.0 (tzdata v2006g) - 17-Jul-2006
|
||
|
|
||
|
* New timezone data format. Timezone data now occupies less space on disk and
|
||
|
takes less memory once loaded. #4142, #4144.
|
||
|
* Timezone data is defined in modules rather than classes. `Timezone` instances
|
||
|
returned by `Timezone.get` are no longer instances of data classes, but are
|
||
|
instead instances of new `DataTimezone` and `LinkedTimezone` classes.
|
||
|
* `Timezone` instances can now be used with `Marshal.dump` and `Marshal.load`.
|
||
|
#4240.
|
||
|
* Added a `Timezone.get_proxy` method that returns a `TimezoneProxy` object for
|
||
|
a given identifier.
|
||
|
* Country index data is now defined in a single module that is independent
|
||
|
of the `Country` class implementation.
|
||
|
* `Country` instances can now be used with `Marshal.dump` and `Marshal.load`.
|
||
|
#4240.
|
||
|
* `Country` has a new `zone_info` method that returns `CountryTimezone` objects
|
||
|
containing additional information (latitude, longitude and a description)
|
||
|
relating to each `Timezone`. #4140.
|
||
|
* Time zones within a `Country` are now returned in an order that makes
|
||
|
geographic sense.
|
||
|
* The zdumptest utility now checks local to utc conversions in addition to
|
||
|
utc to local conversions.
|
||
|
* `eql?` method defined on `Country` and `Timezone` that is equivalent to `==`.
|
||
|
* The `==` method of `Timezone` no longer raises an exception when passed an
|
||
|
object with no identifier method.
|
||
|
* The `==` method of `Country` no longer raises an exception when passed an
|
||
|
object with no code method.
|
||
|
* `hash` method defined on `Country` that returns the hash of the code.
|
||
|
* `hash` method defined on `Timezone` that returns the hash of the identifier.
|
||
|
* Miscellaneous API documentation corrections and improvements.
|
||
|
* Timezone definition and indexes are now excluded from rdoc (the contents were
|
||
|
previously ignored with `#:nodoc:` anyway).
|
||
|
* Removed no longer needed `#:nodoc:` directives from timezone data files (which
|
||
|
are now excluded from the rdoc build).
|
||
|
* Installation of the gem now causes rdoc API documentation to be generated.
|
||
|
#4905.
|
||
|
* When optimizing transitions to generate zone definitions, check the
|
||
|
UTC and standard offsets separately rather than just the total offset to UTC.
|
||
|
Fixes an incorrect abbreviation issue with Europe/London, Europe/Dublin and
|
||
|
Pacific/Auckland.
|
||
|
* Eliminated unnecessary `.nil?` calls to give a minor performance gain.
|
||
|
* `Timezone.all` and `Timezone.all_identifiers` now return all the
|
||
|
`Timezone` instances/identifiers rather than just those associated with
|
||
|
countries. #4146.
|
||
|
* Added `all_data_zones`, `all_data_zone_identifiers`, `all_linked_zones` and
|
||
|
`all_linked_zone_identifiers` class methods to `Timezone`.
|
||
|
* Added a `strftime` method to `Timezone` that converts a time in UTC to local
|
||
|
time and then returns it formatted. `%Z` is replaced with the timezone
|
||
|
abbreviation for the given time (for example, EST or EDT). #4143.
|
||
|
* Fix escaping of quotes in `TZDataParser`. This affected country names and
|
||
|
descriptions of time zones within countries.
|
||
|
|
||
|
|
||
|
## Version 0.2.2 (tzdata v2006g) - 17-May-2006
|
||
|
|
||
|
* Use class-scoped instance variables to store the Timezone identifier and
|
||
|
singleton instance. Loading a linked zone no longer causes the parent
|
||
|
zone's identifier to be changed. The instance method of a linked zone class
|
||
|
also now returns an instance of the linked zone class rather than the parent
|
||
|
class. #4502.
|
||
|
* The zdumptest utility now compares the TZInfo zone identifier with the zdump
|
||
|
zone identifier.
|
||
|
* The zdumptestall utility now exits if not supplied with enough parameters.
|
||
|
* Updated to tzdata version 2006g
|
||
|
(<https://mm.icann.org/pipermail/tz/2006-May/013590.html>).
|
||
|
|
||
|
|
||
|
## Version 0.2.1 (tzdata v2006d) - 17-Apr-2006
|
||
|
|
||
|
* Fix a performance issue caused in 0.2.0 with `Timezone.local_to_utc`.
|
||
|
Conversions performed on `TimeOrDateTime` instances passed to `<=>` are now
|
||
|
cached as originally intended. Thanks to Michael Smedberg for spotting this.
|
||
|
* Fix a performance issue with the `local_to_utc` period search algorithm
|
||
|
originally implemented in 0.1.0. The condition that was supposed to cause
|
||
|
the search to terminate when enough periods had been found was only being
|
||
|
evaluated in a small subset of cases. Thanks to Michael Smedberg and
|
||
|
Jamis Buck for reporting this.
|
||
|
* Added abbreviation as an alias for `TimezonePeriod.zone_identifier`.
|
||
|
* Updated to tzdata version 2006d
|
||
|
(<https://mm.icann.org/pipermail/tz/2006-April/013517.html>).
|
||
|
* Ignore any offset in `DateTime` instances passed in (as is already done for
|
||
|
`Time` instances). All of the following now refer to the same UTC time (15:40 on 17 April 2006). Previously, the `DateTime` in the second line would have been interpreted as 20:40.
|
||
|
|
||
|
```ruby
|
||
|
tz.utc_to_local(DateTime.new(2006, 4, 17, 15, 40, 0))
|
||
|
tz.utc_to_local(DateTime.new(2006, 4, 17, 15, 40, 0).new_offset(Rational(5, 24)))
|
||
|
tz.utc_to_local(Time.utc(2006, 4, 17, 15, 40, 0))
|
||
|
tz.utc_to_local(Time.local(2006, 4, 17, 15, 40, 0))
|
||
|
```
|
||
|
|
||
|
|
||
|
## Version 0.2.0 (tzdata v2006c) - 3-Apr-2006
|
||
|
|
||
|
* Use timestamps rather than `DateTime` objects in zone files for times between
|
||
|
1970 and 2037 (the range of `Time`).
|
||
|
* Don't convert passed in `Time` objects to `DateTime` in most cases (provides
|
||
|
a substantial performance improvement).
|
||
|
* Allow integer timestamps (time in seconds since 1970-1-1) to be used as well
|
||
|
as `Time` and `DateTime` objects in all public methods that take times as
|
||
|
parameters.
|
||
|
* Tool to compare TZInfo conversions with output from zdump.
|
||
|
* `TZDataParser` zone generation algorithm rewritten. Now based on the zic code.
|
||
|
TZInfo is now 100% compatible with zic/zdump output.
|
||
|
* Riyadh Solar Time zones now included again (generation time has been reduced
|
||
|
with `TZDataParser` changes).
|
||
|
* Use binary mode when writing zone and country files to get Unix (\n) new
|
||
|
lines.
|
||
|
* Omit unnecessary quotes in zone identifier symbols.
|
||
|
* Omit the final transition to DST if there is a prior transition in the last
|
||
|
year processed to standard time.
|
||
|
* Updated to tzdata version 2006c
|
||
|
(<https://mm.icann.org/pipermail/tz/2006-April/013500.html>).
|
||
|
|
||
|
|
||
|
## Version 0.1.2 (tzdata v2006a) - 5-Feb-2006
|
||
|
|
||
|
* Add lib directory to the load path when tzinfo is required. Makes it easier
|
||
|
to use tzinfo gem when unpacked to vendor directory in rails.
|
||
|
* Updated to tzdata version 2006a
|
||
|
(<https://mm.icann.org/pipermail/tz/2006-January/013311.html>).
|
||
|
* `build_tz_classes` rake task now handles running svn add and svn delete as new
|
||
|
time zones and countries are added and old ones are removed.
|
||
|
* Return a better error when attempting to use a `Timezone` instance that was
|
||
|
constructed with `Timezone.new(nil)`. This will occur when using Rails'
|
||
|
`composed_of`. When the timezone identifier in the database is null,
|
||
|
attempting to use the `Timezone` will now result in an `UnknownTimezone`
|
||
|
exception rather than a `NameError`.
|
||
|
|
||
|
|
||
|
## Version 0.1.1 (tzdata v2005q) - 18-Dec-2005
|
||
|
|
||
|
* Time zones that are defined by a single unbounded period (e.g. UTC) now
|
||
|
work again.
|
||
|
* Updated to tzdata version 2005q.
|
||
|
|
||
|
|
||
|
## Version 0.1.0 (tzdata v2005n) - 27-Nov-2005
|
||
|
|
||
|
* `period_for_local` and `local_to_utc` now allow resolution of ambiguous
|
||
|
times (e.g. when switching from daylight savings to standard time).
|
||
|
The behaviour of these methods when faced with an ambiguous local time
|
||
|
has now changed. If you are using these methods you should check
|
||
|
the documentation. Thanks to Cliff Matthews for suggesting this change.
|
||
|
* Added `require 'date'` to `timezone.rb` (date isn't loaded by default in all
|
||
|
environments).
|
||
|
* Use rake to build packages and documentation.
|
||
|
* License file is now included in gem distribution.
|
||
|
* Dates in definitions stored as Astronomical Julian Day numbers rather than
|
||
|
as civil dates (improves performance creating `DateTime` instances).
|
||
|
* Added options to `TZDataParser` to allow generation of specific zones and
|
||
|
countries.
|
||
|
* Moved `TimezonePeriod` class to `timezone_period.rb`.
|
||
|
* New `TimezonePeriodList` class to store `TimezonePeriod` instances for a
|
||
|
timezone and perform searches for periods.
|
||
|
* Time zones are now defined using blocks. `TimezonePeriod` instances are only
|
||
|
created when they are needed. Thanks to Jamis Buck for the suggestion.
|
||
|
* Add options to `TZDataParser` to allow exclusion of specific zones and
|
||
|
countries.
|
||
|
* Exclude the Riyadh Solar Time zones. The rules are only for 1987 to 1989 and
|
||
|
take a long time to generate and process. Riyadh Solar Time is no longer
|
||
|
observed.
|
||
|
* The last `TimezonePeriod` for each `Timezone` is now written out with an
|
||
|
unbounded rather than arbitrary end time.
|
||
|
* Construct the `Rational` offset in `TimezonePeriod` once when the
|
||
|
`TimezonePeriod` is constructed rather than each time it is needed.
|
||
|
* `Timezone` and `Country` now keep a cache of loaded instances to avoid running
|
||
|
`require` which can be slow on some platforms.
|
||
|
* Updated to tzdata version 2005n.
|
||
|
|
||
|
|
||
|
## Version 0.0.4 (tzdata v2005m) - 18-Sep-2005
|
||
|
|
||
|
* Removed debug output accidentally included in the previous release.
|
||
|
* Fixed a bug in the generation of friendly zone identifiers (was inserting
|
||
|
apostrophes into UTC, GMT, etc).
|
||
|
* Fixed `Country` `<=>` operator (was comparing non-existent attribute)
|
||
|
* Fixed `Timezone.period_for_local` error when period not found.
|
||
|
* Added test cases for `Timezone`, `TimezoneProxy`, `TimezonePeriod`, `Country`
|
||
|
and some selected time zones.
|
||
|
|
||
|
|
||
|
## Version 0.0.3 (tzdata v2005m) - 17-Sep-2005
|
||
|
|
||
|
* Reduced visibility of some methods added in `Timezone#setup` and
|
||
|
`Country#setup`.
|
||
|
* Added `name` method to `Timezone` (returns the identifier).
|
||
|
* Added `friendly_identifier` method to `Timezone`. Returns a more friendly
|
||
|
version of the identifier.
|
||
|
* Added `to_s` method to `Timezone`. Returns the friendly identifier.
|
||
|
* Added `==` and `<=>` operators to `Timezone` (compares identifiers).
|
||
|
* `Timezone` now includes `Comparable`.
|
||
|
* Added `to_s` method to `Country`.
|
||
|
* Added `==` and `<=>` operators to `Country` (compares ISO 3166 country codes).
|
||
|
* `Country` now includes `Comparable`.
|
||
|
* New `TimezoneProxy` class that behaves the same as a `Timezone` but doesn't
|
||
|
actually load in its definition until it is actually required.
|
||
|
* Modified `Timezone` and `Country` methods that return `Timezone` instances to
|
||
|
return `TimezoneProxy` instances instead. This makes these methods much
|
||
|
quicker.
|
||
|
|
||
|
In Ruby on Rails, you can now show a drop-down list of all time zones using the
|
||
|
Rails `time_zone_select` helper method:
|
||
|
|
||
|
```ruby
|
||
|
<%= time_zone_select 'user', 'time_zone', TZInfo::Timezone.all.sort, :model => TZInfo::Timezone %>
|
||
|
```
|
||
|
|
||
|
|
||
|
## Version 0.0.2 (tzdata v2005m) - 13-Sep-2005
|
||
|
|
||
|
* `Country` and `Timezone` data is now loaded into class rather than instance
|
||
|
variables. This makes `Timezone` links more efficient and saves memory if
|
||
|
creating specific `Timezone` and `Country` classes directly.
|
||
|
* `TimezonePeriod` `zone_identifier` is now defined as a symbol to save memory
|
||
|
(was previously a string).
|
||
|
* `TimezonePeriod` `zone_identifier`s that were previously `''` are now
|
||
|
`:Unknown`.
|
||
|
* `Timezone` and `Country` instances can now be returned using
|
||
|
`Timezone.new(identifier)` and `Country.new(identifier)`. When passed an
|
||
|
identifier, the `new` method calls `get` to return an instance of the
|
||
|
specified timezone or country.
|
||
|
* Added new class methods to `Timezone` to return sets of zones and identifiers.
|
||
|
|
||
|
Thanks to Scott Barron of Lunchbox Software for the suggestions in his
|
||
|
article about using TZInfo with Rails
|
||
|
(<https://web.archive.org/web/20060425190845/http://lunchroom.lunchboxsoftware.com/pages/tzinfo_rails>)
|
||
|
|
||
|
|
||
|
## Version 0.0.1 (tzdata v2005m) - 29-Aug-2005
|
||
|
|
||
|
* First release.
|