Skip to content

v4.0.0 - LocalXxx to PlainXxx; add 2025 versions of zonedb; replace 'fold'

Choose a tag to compare

@bxparks bxparks released this 21 Oct 21:53
· 5 commits to master since this release
9599d04
  • 4.0.0 (2025-10-21, TZDB version 2025b)
    • See MIGRATING.md on breaking API changes, and how to
      migrate.
    • Breaking Rename LocalXxx to PlainXxx, following the conventions
      used by more modern timezone libraries (JavaScript Temporal, Python
      whenever).
      • LocalDate -> PlainDate
      • LocalDateTime -> PlainDateTime
      • LocalTime -> PlainTime
      • Backwards compatibility macros and methods have been added:
        • #define LocalDate PlainDate
        • #define LocalDateTime PlainDateTime
        • #define LocalTime PlainTime
    • Breaking Rename various methods with 'Local' to 'Plain':
      • ZonedDateTime::localDateTime() -> plainDateTime()
      • ZonedDateTime::forLocalDateTime() -> forPlainDateTime()
      • ZonedExtra::forLocalDateTime() -> forPlainDateTime()
      • OffsetDateTime::localDateTime() -> plainDateTime()
      • OffsetDateTime::localDate() -> plainDate()
      • OffsetDateTime::localTime() -> plainTime()
      • PlainDateTime::localDate() -> plainDate()
      • PlainDateTime::localTime() -> plainTime()
      • The old methods are retained for backwards compatibility, but are
        marked as deprecated.
    • Breaking Replace output parameter fold with resolved:
      • ZonedDateTime::fold becomes ZonedDateTime::resolved
      • OffsetDateTime::fold becomes OffsetDateTime::resolved
      • PlainDateTime::fold becomes PlainDateTime::resolved
      • PlainTime::fold becomes PlainTime::resolved
    • Breaking Replace input parameter fold with disambiguate in the
      following methods:
      • ZonedDateTime::forComponents()
      • ZonedDateTime::forPlainDateTime()
      • ZonedDateTime::normalize()
      • ZonedExtra::forComponents()
      • ZonedExtra::forPlainDateTime()
    • Add 2 more zonedb databases
      • zonedb2025
        • same as zonedb, but using transition rules for 2025 and onwards
        • used with BasicZoneManager and `BasicZoneProcessor
        • larger than zonedb because it supports more zones than
          zonedb (almost all zones in the TZDB, except maybe 7 zones)
      • zonedbx2025
        • same as zonedbx, but using transition rules for 2025 and onwards
        • used with ExtendedZoneManager and `ExtendedZoneProcessor
        • smaller than zonedbx (by around 10 kB) because it only
          includes transitions after 2025