Skip to content

Releases: ethlo/itu

v1.14.0

Choose a tag to compare

@ethlo ethlo released this 21 Feb 09:57

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

Choose a tag to compare

@ethlo ethlo released this 14 Feb 12:38

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

Choose a tag to compare

@ethlo ethlo released this 13 Feb 11:11

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

Choose a tag to compare

@ethlo ethlo released this 11 Feb 08:17

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

Choose a tag to compare

@ethlo ethlo released this 09 Jan 14:59

Minor fixes to the POM to pass SBOM checks.

v1.10.2

Choose a tag to compare

@ethlo ethlo released this 17 Apr 07:11

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

Choose a tag to compare

@ethlo ethlo released this 11 Feb 15:45

Fix OSGI build to include ITU v1.10.0 custom parsers

v1.10.0

Choose a tag to compare

@ethlo ethlo released this 06 Feb 07:32

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

Choose a tag to compare

@ethlo ethlo released this 30 Jan 16:00

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

Choose a tag to compare

@ethlo ethlo released this 23 Jan 14:18

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.