- 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
andlocal_end_time
instance methods toTimezonePeriod
. These return an identical value as the existingutc_start
,utc_end
,local_start
andlocal_end
methods, but returnTime
instances instead ofDateTime
. - Make the
start_transition
,end_transition
andoffset
properties ofTimezonePeriod
protected. To access properties of the period, callers should use otherTimezonePeriod
instance methods instead (issue #7655).