Skip to content

Releases: ethlo/itu

v1.14.0

21 Feb 09:57
Compare
Choose a tag to compare

New Features

ISO 8601 Duration Parsing & Formatting

  • Added support for parsing and formatting ISO 8601 durations.
  • Supports full precision, including fractional seconds.
  • Allows days, weeks, hours, minutes, and seconds, while disallowing years and months.
  • Supports negative durations, which start with "-" (e.g., "-P1DT2H").
  • Enforces case sensitivity for units, strictly following ISO 8601 (e.g., P1D is valid, but P1d is not).
  • In the tradition of this library we are at least 5x faster than the JDK parsing and producing much less GC pressure.

v1.13.0

14 Feb 12:38
Compare
Choose a tag to compare

In version 1.12.0, the Java module name was changed from com.ethlo.time to com.ethlo.time.itu to better align with the ITU library name. However, this change caused unexpected disruptions for downstream projects. To restore compatibility and minimize friction, the module name is now being reverted to com.ethlo.time in version 1.13.0.

This adjustment follows the complete removal of module support in version 1.11.0, which was later reconsidered based on user feedback. I recognize the impact these changes have had on users and will take greater care to ensure stability in future releases.

Thank you for your patience and support. If you encounter any issues, please report them, and as always, contributions and feedback are welcome.

v1.12.0

13 Feb 11:11
Compare
Choose a tag to compare

Changes

  • Reinstated Java 8 support
  • Reinstated Java module support
  • Reinstated OSGi metadata

A large and warm thank you to @merks and @lscoughlin for their valuable feedback on this topic!

Release 1.11.0

11 Feb 08:17
Compare
Choose a tag to compare

Breaking Changes

  • Dropped Java 8 support – The minimum required Java version is now Java 11.
  • Removed multi-module support – The library is now a single-module project for simplicity.
  • Removed OSGi metadata – This library no longer includes OSGi-specific packaging.
    • OSGi users should create their own wrapper bundle if needed.

Improvements

  • Simplified project structure and build process.
  • Reduced maintenance overhead by removing legacy compatibility layers.

Migration Notes

  • Ensure your project runs on Java 11 or later before upgrading.
  • If you were relying on OSGi metadata, consider using a tool like bnd-maven-plugin to generate an OSGi bundle externally.

v1.10.3

09 Jan 14:59
Compare
Choose a tag to compare

Minor fixes to the POM to pass SBOM checks.

v1.10.2

17 Apr 07:11
Compare
Choose a tag to compare

Fixes issue #31 - A single trailing character after the end of a date-time parsed was not raised as an error.

Thanks a lot to @justin-tay for reporting it!

v1.10.1

11 Feb 15:45
Compare
Choose a tag to compare

Fix OSGI build to include ITU v1.10.0 custom parsers

v1.10.0

06 Feb 07:32
Compare
Choose a tag to compare

New features

  • Support for parsing non-standard formats using DateTimeParsers.of(...) builder. See sample section for more information.
  • Even more specific error messages when parsing.

v1.9.0

30 Jan 16:00
Compare
Choose a tag to compare

New features

  • Support for parseDateTime(...) with java.text.ParsePosition. This avoids the need to use substring for passing in the date-time string.
  • Support for parsing leniently with ParseConfig which allows the configuration of the date/time separator (typically T) and the fragment separator (typically .).
  • More expressive and better aligned error messages.

v1.8.0

23 Jan 14:18
Compare
Choose a tag to compare

New features
Parsing will now throw an DateTimeParseExceptioninstead of the parent DateTimeException. This gives access to the index of the error if any.

Bug-fixes

  • An ArrayIndexOutOfBoundsException would be thrown in case of a specific, erroneous date-time string.
  • Parsing a date-time with a leap-second, but without time-offset would throw a NullPointerException due to the missing ZoneOffset.

Remediation
There has now been added additional tests and even intelligent fuzzer tests through the use of Jazzer.