Revision history for Perl module DateTime::Format::Lite
v0.1.3 2026-04-23T16:03:24+0900
[Bug Fixes]
- %Z parsing failed for timezone abbreviations such as JST, CET, or EST that are
present in the extended_aliases table but not in the IANA types table.
resolve_abbreviation() is now called with the option 'extended' set to true so
that these abbreviations are resolved correctly.
- timezone abbreviations such as JST passed via the %O token or the time_zone()
setter were not resolved because DateTime::Lite::TimeZone->new() was called
without the option extended set to true.
Both call sites now pass extended => 1, allowing abbreviations present in the
extended_aliases table to be resolved to their canonical IANA zone name.
v0.1.2 2026-04-21T10:05:01+0900
- on_error now also accepts 'die' as a synonym of 'croak', in addition to
'croak', 'undef', and a code reference.
- Fixed POD in DateTime::Format::Lite::PP which referenced the wrong environment
variable name (PERL_DATETIME_LITE_PP instead of PERL_DATETIME_FORMAT_LITE_PP).
v0.1.1 2026-04-19T16:25:51+0900
[Bug Fixes]
- %Z matching a canonical IANA zone name (UTC, GMT, Z, floating, or any string
containing '/') is now handled directly via DateTime::Lite::TimeZone->new
instead of going through resolve_abbreviation.
This fixes CPAN Testers failures on Solaris, OpenBSD, and FreeBSD where
t/10.basic.t tests 28 and 30 ('epoch with timezone' and 'negative epoch with
timezone') were failing with "No timezone found for abbreviation 'UTC'".
- Updated minimum DateTime::Lite prereq to v0.6.2 for the bundled bug fixes in
DateTime::Lite::TimeZone (class-method safety, strict/warnings scope,
_get_zone_info argument handling).
v0.1.0 2026-04-16T13:32:10+0900
- Initial version
- Parses and formats datetime strings using strptime-style patterns.
- XS-accelerated _match_and_extract() and format_datetime() with automatic
pure-Perl fallback (DateTime::Format::Lite::PP) when no compiler is available.
- Supports all standard strptime tokens including %N (nanoseconds), %O
(Olson/IANA timezone name), %s (epoch), %z (numeric offset), and %Z
(timezone abbreviation).
- Timezone abbreviation resolution via the IANA SQLite database bundled with
DateTime::Lite::TimeZone, with zone_map override for ambiguous abbreviations
such as IST or EST.
- When both %Z and %z are parsed, the explicit numeric offset (%z) takes precedence
and the abbreviation is treated as informational.
- Locale-aware day and month name parsing and formatting via DateTime::Locale::FromCLDR.
- Three error-handling modes:
- on_error => 'undef' (default);
- on_error => coderef; and
- on_error => die
- DateTime::Format::Lite::NullObject returned on error in object context for safe
method chaining.
- Exportable strptime() and strftime() convenience functions.
- Full serialisation support: FREEZE/THAW (Sereal/CBOR), STORABLE_freeze/STORABLE_thaw
(Storable), and TO_JSON.
- Comprehensive cross-field validation: 24-hour vs 12-hour, epoch vs date components,
year vs century, day name vs date, and more.