Skip to content

Releases: chronotope/chrono-tz

chrono-tz v0.10.0: 2024b

09 Sep 12:55
Compare
Choose a tag to compare

TZDB version 2024b (2024-09-05).

Changes

  • Make OffsetName::abbreviation return an Option.
    This reflects that numeric values such as +11 are no longer encoded in the upstream TZDB as abbreviations (#185).

TZDB 2024b

The 2024b release of the tz code and data is available.

This release is prompted by the accumulated weight of many non-urgent changes to both code and data. It changes one timestamp abbreviation, for the long-obsolete System V setting TZ='MET'; see below. Otherwise, the timestamps affected by this release all predate April 2008, so you can skip this release if your application uses only tzdata and does not use older timestamps.

This release contains the following changes:

Briefly:

Improve historical data for Mexico, Mongolia, and Portugal.
System V names are now obsolescent.
The main data form now uses %z.
The code now conforms to RFC 8536 for early timestamps.
Support POSIX.1-2024, which removes asctime_r and ctime_r.
Assume POSIX.2-1992 or later for shell scripts.
SUPPORT_C89 now defaults to 1.

Changes to past timestamps

Asia/Choibalsan is now an alias for Asia/Ulaanbaatar rather than being a separate Zone with differing behavior before April 2008. This seems better given our wildly conflicting information about Mongolia's time zone history. (Thanks to Heitor David Pinto.)

Historical transitions for Mexico have been updated based on official Mexican decrees. The affected timestamps occur during the years 1921-1927, 1931, 1945, 1949-1970, and 1981-1997. The affected zones are America/Bahia_Banderas, America/Cancun, America/Chihuahua, America/Ciudad_Juarez, America/Hermosillo, America/Mazatlan, America/Merida, America/Mexico_City, America/Monterrey, America/Ojinaga, and America/Tijuana. (Thanks to Heitor David Pinto.)

Historical transitions for Portugal, represented by Europe/Lisbon, Atlantic/Azores, and Atlantic/Madeira, have been updated based on a close reading of old Portuguese legislation, replacing previous data mainly originating from Whitman and Shanks & Pottenger. These changes affect a few transitions in 1917-1921, 1924, and 1940 throughout these regions by a few hours or days, and various timestamps between 1977 and 1993 depending on the region. In particular, the Azores and Madeira did not observe DST from 1977 to 1981. Additionally, the adoption of standard zonal time in former Portuguese colonies have been adjusted: Africa/Maputo in 1909, and Asia/Dili by 22 minutes at the start of 1912. (Thanks to Tim Parenti.)

Changes to past tm_isdst flags

The period from 1966-04-03 through 1966-10-02 in Portugal is now modeled as DST, to more closely reflect how contemporaneous changes in law entered into force.

Changes to data

Names present only for compatibility with UNIX System V (last released in the 1990s) have been moved to 'backward'. These names, which for post-1970 timestamps mostly just duplicate data of geographical names, were confusing downstream uses. Names moved to 'backward' are now links to geographical names. This affects behavior for TZ='EET' for some pre-1981 timestamps, for TZ='CET' for some pre-1947 timestamps, and for TZ='WET' for some pre-1996 timestamps. Also, TZ='MET' now behaves like TZ='CET' and so uses the abbreviation "CET" rather than "MET". Those needing the previous TZDB behavior, which does not match any real-world clocks, can find the old entries in 'backzone'. (Problem reported by Justin Grant.)

The main source files' time zone abbreviations now use %z, supported by zic since release 2015f and used in vanguard form since release 2022b. For example, America/Sao_Paulo now contains the zone continuation line "-3:00 Brazil %z", which is less error prone than the old "-3:00 Brazil -03/-02". This does not change the represented data: the generated TZif files are unchanged. Rearguard form still avoids %z, to support obsolescent parsers.

Asia/Almaty has been removed from zonenow.tab as it now agrees with Asia/Tashkent for future timestamps, due to Kazakhstan's 2024-02-29 time zone change. Similarly, America/Scoresbysund has been removed, as it now agrees with America/Nuuk due to its 2024-03-31 time zone change.

parse-zoneinfo v0.3.1

02 May 16:11
Compare
Choose a tag to compare

With parse-zoneinfo 0.3.1 we merged in the history of zoneinfo-parse from before the library was forked. The crate has now also moved into the git repository and workspace of chrono-tz.

Additions

  • Implement Default for LineParser
  • Implement std::error::Error for error types

Fixes

  • Make regex for UNTIL column more precise to parse comments correctly

Changes

  • Update to Rust 2021 edition

Documentation

  • Merge readme and API documentation from zoneinfo-parse 0.5.0
  • Remove incomplete changelog (see GitHub releases instead)
  • Update readme
  • Add badges to readme

Internal

  • Move parse-zoneinfo into chrono-tz workspace
  • Fix Rust and Clippy warnings
  • Revert to default rustfmt style

parse-zoneinfo v0.3.0

16 Apr 05:25
95f4885
Compare
Choose a tag to compare

Support the ">= includes next month" (and <= prev) semantics from zic.

Commit in tz c86b7fb7b0 changed the tz database to use >= to mean "overflow days into the next month, if necessary".

This is unfortunately a breaking change, because the month might change and we need to communicate that back out of .to_concrete_day().

parse-zoneinfo v0.2.1

16 Apr 05:28
Compare
Choose a tag to compare
  • Improve build time by turning off regex cargo features (thanks @bluetech)
  • Configure GitHub Actions to test on push
  • Add a changelog
  • Silence a warning about bare trait objects
  • Run cargo fmt, check format in PRs

parse-zoneinfo v0.2.0

16 Apr 05:34
Compare
Choose a tag to compare
  • Optimizations: The leap year checking and duplicate rule start calculations were found from profiling the chrono-tz build script. These optimizations reduce the script's execution time in debug mode by 30%.
  • Bump regex version from 0.2 to 1.0.
  • Don't warn when importing AsciiExt

parse-zoneinfo v0.1.1

16 Apr 05:45
Compare
Choose a tag to compare
  • Bump regex version from 0.1 to 0.2
  • Remove warning about unnecessary mut

parse-zoneinfo v0.1.0

16 Apr 05:49
Compare
Choose a tag to compare

Forked from zoneinfo-parse 0.1.4.

  • Made independent of datetime dependency
  • Removed dependency on lazy-static
  • Various breaking changes and renames

chrono-tz v0.5.0: 2017b

03 Apr 17:59
Compare
Choose a tag to compare

TZDB version 2017b (2017-03-23).

Additions

Documentation

  • Fix Utc example in README (#20, thanks @23ua).

Internal

  • Update parse-zoneinfo dependency to 0.2.

chrono-tz v0.9.0: 2024a

05 Apr 11:08
Compare
Choose a tag to compare

TZDB version 2024a (2024-02-01).

Changes

Internal

  • Remove update-tz GitHub Action (#159).
  • Don't set no_std for tests (#160).
  • CI: verify cargo publish includes all files needed to build (#158, #161).

chrono-tz v0.8.6: 2024a

03 Apr 19:49
Compare
Choose a tag to compare

TZDB version 2024a (2024-02-01).