Skip to content

TZDB 2.1.3.2026a

Latest

Choose a tag to compare

@pavkam pavkam released this 08 Mar 10:29
· 4 commits to master since this release
37bcf1f

What's New

IANA Timezone Database Update

  • Updated to IANA TZDB 2026a

Bug Fixes

  • Windows alias lookup performanceEurope/Kiev and other IANA aliases were triggering a full Windows Registry scan (140+ keys) on every cache miss because the alias lookup called GetNonLocalizedTZName before checking the in-memory CAliases array. The in-memory lookup now always runs first; the registry is only consulted as a fallback. This eliminates hundreds of expensive I/O operations per query when using timezone aliases on Windows. (#52)

  • %z abbreviation for negative fractional-hour offsets — Timezones like Pacific/Marquesas (UTC-09:30) were producing malformed abbreviations such as -09-30 instead of the correct -0930. Fixed by using Abs(LDelta) for both hours and minutes components when the offset is negative. (#53)

  • Alias cache miss in GetTimeZone — Calling GetTimeZone('Europe/Kiev') always missed the cache and triggered a full TBundledTimeZone.Create + Free cycle on every call, since the cache was keyed only by the canonical ID (Europe/Kyiv). The alias key is now also stored in the cache after resolution. FinalizeDict updated to deduplicate before freeing to prevent double-free when multiple cache keys reference the same instance. (#53)

New Tests

  • Europe/Kiev alias resolution and cache hit verification
  • Pacific/Marquesas %z abbreviation correctness
  • UTC and Asia/Kolkata (no-DST zones)
  • Year boundary (Dec 31 → Jan 1) in DST zones (America/New_York)