# `iso8601`

ISO 8601 (and European civil calendar) compliant library of date and time (clock) related predicates. That is, an ISO 8601 handler.

The library supports date representations plus ISO 8601 duration and interval string conversions using `duration_string/2` and `interval_string/2`.

An ISO 8601 duration string represents a time amount (e.g. `P3D` for three days or `P1Y2M3DT4H5M6S` for a mixed date/time duration).

An ISO 8601 interval string represents a time interval using two parts separated by `/`, where each part can be a date or a duration (e.g. `2026-02-25/2026-03-01` or `2026-02-25/P3D`).

Author: Daniel L. Dudley Created: 2004-02-18

Modified: 2014-09-26 (to use the `os` library object to get the current date)
Modified: 2026-02-25 (to add `duration_string/2` and `interval_string/2` predicates)

## API documentation

Open the ../../apis/library_index.html#iso8601 link in a web browser.

## Loading

To load all entities in this library, load the `loader.lgt` file:

    | ?- logtalk_load(iso8601(loader)).

## Testing

To test this library predicates, load the `tester.lgt` file:

    | ?- logtalk_load(iso8601(tester)).