Version 2.8.0 (2019-02-04)
Data updates
- Updated tzdata version to to 2018i.
Features
- Added support for EXDATE parameters when parsing rrule strings.
- Added support for sub-minute time zone offsets in Python 3.6+.
- Switched the tzoffset, tzstr and gettz caches over to using weak
references, so that the cache expires when no other references to the
original tzinfo objects exist. This cache-expiry behavior is not
guaranteed in the public interface and may change in the future. To improve
performance in the case where transient references to the same time zones
are repeatedly created but no strong reference is continuously held, a
smaller "strong value" cache was also added.
Bugfixes
- Added time zone inference when initializing an rrule with a specified
UNTIL but without an explicitly specified DTSTART; the time zone
of the generated DTSTART will now be taken from the UNTIL rule.
- Fixed an issue where parser.parse would raise Decimal-specific errors
instead of a standard ValueError if certain malformed values were parsed
(e.g. NaN or infinite values).
- Fixed issue in parser where a tzinfos call explicitly returning
None would throw a ValueError.
- Fixed incorrect parsing of certain dates earlier than 100 AD when repesented
in the form "%B.%Y.%d", e.g. "December.0031.30".
- Add support for ISO 8601 times with comma as the decimal separator in the
dateutil.parser.isoparse function.
- Changed handling of T24:00 to be compliant with the standard. T24:00
now represents midnight on the *following* day.
- Fixed an issue where isoparser.parse_isotime was unable to handle the
24:00 variant representation of midnight.
- Added support for more than 6 fractional digits in isoparse.
- Added 'z' (lower case Z) as valid UTC time zone in isoparser.
- Fixed a bug with base offset changes during DST in tzfile, and refactored
the way base offset changes are detected.
- Fixed error condition in tz.gettz when a non-ASCII timezone is passed on
Windows in Python 2.7.
- Improved performance and inspection properties of tzname methods.
- Removed unnecessary binary_type compatibility shims.
- Changed python setup.py test to print an error to stderr and exit
with 1 instead of 0.
- Added a pyproject.toml file with build requirements and an explicitly
specified build backend.
Documentation changes
- Added documentation for the rrule.rrulestr function.
- Added documentation for dateutil.tz.gettz.
- Add documentation for the dateutil.tz.win module and mocked out certain
Windows-specific modules so that autodoc can still be run on non-Windows
systems.
- Added changelog to documentation.
- Changed order of keywords in the rrule docstring.
- Improved documentation on the use of until and count parameters in
rrule.
- Added an example of how to use a custom parserinfo subclass to parse
non-standard datetime formats in the examples documentation for parser.
- Added doctest examples to tzfile documentation.
- Updated the documentation for relativedelta's weekday arguments.
- Improved explanation of the order that relativedelta components are
applied in.
- Expanded the description and examples in the relativedelta class.
- Improved the contributing documentation to clarify where to put new changelog
files.
- Fixed a broken doctest in the relativedelta module.
- Changed the default theme to sphinx_rtd_theme, and changed the sphinx
configuration accordingly.
- Reorganized dateutil.tz documentation and fixed issue with the
dateutil.tz docstring.
- Cleaned up malformed RST in the tz documentation.
- Corrected link syntax and updated URL to https for ISO year week number
notation in relativedelta examples.
2.0.0 (2018-12-26)
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.
Upstream changes:
0.13
* Use explicit 4 digit years when using localtime. This fixes
some test failures that started after 2018-12-31 because of
date math.
## Version 1.3.1 2019-01-18
* Update jruby extension to not use global runtime state (thanks @kares) (#70)
* Update travis CI config
* Update documentataion for Ruby 2.6
Upstream changes:
2.23 2018-12-30
- This release is based on version 2018i of the Olson database. This release
includes contemporary changes for São Tomé and Príncipe.
2.22 2018-12-29
- This release is based on version 2018h of the Olson database. This release
includes contemporary changes for Morocco, Kazakhstan, and Iran.
Changes:
Version 1.29 - released August 14, 2017
Update GPLv2 license text.
Update FSF address.
Remove trailing whitespace.
Use autotools for build.
Rename changelog to ChangeLog; clean up and split off TODO.
Correct bug report email address.
Remove unused variables.
Use unsigned char in mask bitmap to avoid overflow warnings.
Use correct includes for each file.
Add desktop entry file.
Version 1.28 - released September 20, 2011.
Debian patches added to the upstream version. These patches
are included:
01_all_previous_diff.diff, 02_update_time.diff,
03_add_southern_hemisphere_support.diff and
04_fix_hyphen_used_as_minus_sign.diff
BUGS file updated to report to wmaker-dev@lists.windowmaker.info
Source is now at http://repo.or.cz/w/dockapps.git
Updated by Rodolfo García Peñas (kix) <kix@kix.es>
Library for parsing ISO 8601 strings
Features
* Pure Python implementation
* Python 3 support
* Logical behavior
- Parse a time, get a datetime.time
- Parse a date, get a datetime.date
- Parse a datetime, get a datetime.datetime
- Parse a duration, get a datetime.timedelta
- Parse an interval, get a tuple of dates or datetimes
- Parse a repeating interval, get a date or datetime generator
* UTC offset represented as fixed-offset tzinfo
* Parser separate from representation, allowing parsing to different datetime
formats
* No regular expressions
2.0.4:
Fixed from_format() not recognizing input strings when the specified pattern had escaped elements.
Fixed missing x token for string formatting.
Fixed reading timezone files.
Added support for parsing padded 2-digit days of the month with from_format()
Fixed from_format() trying to parse escaped tokens.
Fixed the z token timezone parsing in from_format() to allow underscores.
Fixed C extensions build errors.
Fixed age calculation for future dates.
Upstream changes:
2.21 2018-10-27
- This release is based on version 2018f of the Olson database. This release
includes contemporary changes for Morocco.
2.20 2018-10-18
- Added more documentation on how local time zones work, and a warning to set
$ENV{TZ} if you're writing tests for code that tries to use the local time
zone.
- This release is based on version 2018f of the Olson database. This release
includes contemporary changes for Russia (Volograd), Fiji, and Chile.
Upstream changes:
1.06 2018-10-28 <schubiger@cpan.org>
- Merged development version to stable.
1.05_02 2018-10-27 <schubiger@cpan.org>
- Amend description of prefer_future option.
- Include the time zone when constructing DateTime objects
for the datetime option in dateparse.
- Minor tweaks to dateparse.
1.05_01 2018-10-25 <schubiger@cpan.org>
- Fix advancing to future when both datetime and prefer_future
options are provided.
Due to sysutils/ruby-chef's dependency, stop updating to latest version
0.12.0 for now.
## 0.11.0
* Add support for unary minus operator (thanks @walterbrebels).
## 0.10.1
* Fix `TimeInterval` size for non UTC timezones. (#41)
## 0.10.0
* Fix `TimeInterval` with `<duration>/<end>` patterns and leap years.
* Fix decimal fractions on date atoms. **WARNING** some duration patterns are
no longer valid.