package timedesc
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=b2d4d60acef83edf9db7f4840b5abfb6acbf36b3c25fca528f05fb0e0b13e0b6
CHANGELOG.md.html
Changelog
Timere-parse 0.0.7
Added ISO week recognition rule with keyword
iso-week
Timere 0.9.0
Added ISO week pattern
iso_week_pattern
,iso_years
,iso_year_ranges
,iso_weeks
,iso_week_ranges
Timedesc 3.0.0
Added
timedesc-tzlocal.unix-or-utc
and made it the default backendUpdated documentation of
Time_zone_info
See issue 72
Replaced
local_dt_result
withlocal_date_time_result
for consistencyChanged signature of
equal_local_date_time_result
so the argument for the inner equality check function is no longer labelled
Timere 0.8.0
Pattern resolver optimization
Added branch skipping for year, month, day, hour levels
This starts the search closer to the first actual potential match
Fixed handling of
length
indeduce_child_result_space_bound_from_parent
Previously leads to incorrect result space computation, and may lead to time slots missing despite meeting criteria
Fixed handling of negative month day
Bug introduced in 84792815ccfa1f8ae4bd9c228e314491dc31456a during reintroduction of pattern resolver branch skipping optimization
The commit was made after relese of Timere 0.7.0, so the bug only affected users who were pinning the repo directly
Timedesc 2.0.0
Renamed
Zoneless.make
toZoneless.of_date_and_time
for consistencyAdjusted
Time_zone_info
APIRenamed
fixed_offset_from_utc
tooffset_from_utc
for consistency
Fixed tzdb compression/decompression code
See issue 74
Renamed
local_result
tolocal_dt_result
Timedesc 1.2.0
Added functions to reduce friction during construction of date time
of_date_and_time
of_date_and_time_exn
of_date_and_time_unambiguous
of_date_and_time_unambiguous_exn
Timedesc 1.1.1
Fixed format string parser for functions in
Span.For_human
to_string
pp
Timedesc 1.1.0
Exposed the following functions in
Utils
iso_week_date_of_jd
jd_of_iso_week_date
Made
ISO_week.make
slightly more lenient in the year range acceptedChanging range from
[0, 9999]
to[-1, 10000]
Previously,
Timedesc.iso_week
would sometimes fail in the edge cases year 0 and 9999
Timedesc 1.0.0
Fixed
get_local_tz_for_arg
error messageRefreshed tzdb
Added RFC9110 (HTTP Semantics) printers
pp_rfc9110
to_rfc9110
Timestamp.pp_rfc9110
Timestamp.to_rfc9110
Date.pp_rfc9110
Date.to_rfc9110
and parsers
of_rfc9110
of_rfc9110_exn
Timestamp.of_rfc9110
Timestamp.of_rfc9110_exn
Timedesc 0.9.1
Moved to using hand rolled parser for tzdb and related parsing
Previous version using Angstrom causes stack overflow in JS targets
Refreshed tzdb
Timedesc 0.9.0
Moved sexp code into
timedesc-sexp
to further reduce core dependenciesReplaced use of mparser with angstrom
Timedesc 0.8.0
Significantly reduced number of dependencies, and moved JS, JSON code into separate packages
Removed dependencies:
fmt
,containers
,oseq
Moved JSON code into
timedesc-json
package along with Yojson dependencyMoved
tzlocal
andtzdb
stuff into their own separate packages (timedesc-tzlocal
andtimedesc-tzdb
respectively)Moved JS tzlocal backend into
timedesc-tzlocal-js
package
Adjusted
Time_zone.Db.Compressed
API to remove use ofMarshal
This in turn allows
timedesc-tzdb.full
to not depend ontimedesc
as the compressed copy is stable and can be stored in repo directly
Timedesc 0.7.0 (not released on OPAM)
Added
tzlocal.js
backend forjs_of_ocaml
Added compressed binary encoding of time zone
tzdb-full
now only considers 1970 to 2040 to further cut down sizeUpdated string conversion functions based on pretty printers which raise
Date_time_cannot_deduce_offset_from_utc
to raise the exception instead of returningNone
This simplifies the handling as return type is now simply just
string
.And for serious stuff users are expected to use only unambiguous date times anyway, which would not trigger this exception
Added ISO8601 printing facilities to
Timestamp
module for consistencyThey are just aliases to the RFC3339 printers
Timere-parse 0.0.6
Bumped dependency of Timedesc to >= 0.6.0, Timere to >= 0.7.0
Timere 0.7.0
Replaced
CCOpt
withCCOption
(this bumps dependency of Containers to >= 3.6)Bumped dependency of Timedesc to >= 0.6.0
Timedesc 0.6.0
Main breaking changes:
Changes in ISO week date functions (shorting label for arguments, quality of life changes)
Removed
_date
suffix in names ofDate.Ymd_date
andDate.ISO_ord_date
Replaced
CCOpt
withCCOption
(this bumps dependency of Containers to >= 3.6)Added "partial date" modules with ISO8601 parsing and printing facilities
ISO_week
Ym
Added additional ISO8601 printing facilities for all three calendar systems
Date.Ymd.pp/to_iso8601
(these are just aliases to the RFC3339 printers)Date.ISO_week_date.pp/to_iso8601
Date.ISO_ord.pp/to_iso8601
Added additional ISO8601 parsing facilities for all three calendar systems
Date.Ymd.of_iso8601[_exn]
Date.ISO_week_date.of_iso8601[_exn]
Date.ISO_ord.of_iso8601[_exn]
Added additional comparison functions to
Date
lt
,le
,gt
,ge
,compare
Added arithemtic functions to
Date
Added
pp/to_iso8601
functions as aliases to the rfc3339 functions toTimedesc
Patched ISO8601 parsers and RFC3339/ISO8601 printers to handle second level time zone offset
Rare occurrence in tzdb but picked up by some new tests
Added additional date conversion functions to
Utils
ymd_of_jd
weekday_of_jd
doy_of_ymd
jd_of_ydoy
Added
Time_zone.recorded_offsets
Tzdb refresh
Timere-parse 0.0.5
Updated use of Timedesc, Timere API
Added support for parsing "24:00" and "24:00:00"
Added exception raising version of functions
Upgraded ruleset
Renamed
Timere_parse.duration
toTimere_parse.span
Timedesc 0.5.1
Added ISO week date and ISO ordinal date parsing support in ISO8601 date and date time parsers
Added
Timedesc.Date.of_iso8601
Added
Timedesc.Time.of_iso8601
Added
_exn
variants of ISO8601 parsing functionsSmall tuning of ISO8601 parsing behaviour
Added
pp_rfc3339
andto_rfc3339
toTimedesc.Date
andTimedesc.Time
modulesAdded sexp serialisation/deserialisation functions to
Timedesc.Date
andTimedesc.Time
Timere 0.6.0
Added
inc_exc
argument tobounded_intervals
This fixes expressiveness issues caused by lack of an inclusive version
Renamed
bounded_intervals
topattern_intervals
Swapped to using
inc_exc
forhms_intervals
APIAdded nanosecond support for
pattern
andPoints.t
Added
Timere.resolve_exn
Minor fixes of
resolve
for edge casesUpgraded
Timere.Points.make
to do a lot more deduction of missing argumentsRenamed
&
to&&&
Removed
Timere.Hms
module, replaced use ofTimere.Hms.t
withTimedesc.Time.t
Timedesc 0.5.0
Made
Timedesc.Span.t
abstractAdded accessors
get_s
,get_ns_offset
and conversion functionto_s_ns
toTimedesc.Span
moduleMade
Timedesc.Time_zone_info.t
abstractAdded accessors
tz
andfixed_offset_from_utc
toTimedesc.Time_zone_info
moduleAdded format string system to
Timedesc.Span.For_human.pp
andto_string
Timedesc 0.4.0
Added following to
Timedesc.Utils
jd_of_ymd
jd_of_date
jd_of_unix_epoch
jd_span_of_unix_epoch
Added
Zoneless
moduleMoved "date and time" API into
Zoneless
moduleZoneless
also includes extra ISO8601 parsing functions for handling ISO8601 strings with no time zone designators
Updated definition of
Time_zone.equal
andTime_zone.utc
Added comparison functions
compare_chrono_min
compare_chrono_max
compare_struct
Timedesc 0.3.1
Fixed
Timedesc.Span.make
handling ofns
whenns = Int.min_int
Added
Timedesc.Span.Out_of_range
exception for when it is not possible represent the value even after normalization
Timere 0.5.0
Fixed unhandled exception/crash due to trying to construct invalid date times when resolving patterns
Fixed lossy behaviour in
Pattern_resolver.Branch.to_date_time
Fixed incorrect resolution due to incorrect definition of
Resolver.timestamp_safe_sub
General fixes in
pattern_resolver
andresolver
for edge cases nearingTimedesc.Timestamp.min_val
andTimedesc.Timestamp.max_val
Bumped Timedesc dep to
0.3.0
for easier to handle time zone transitions (due to the updated definition ofTimedesc.Timestamp.max_val
)This makes resolver code simpler
Fixed crash due to
Points.to_date_time
by changing to simply returnNone
if date time conversion failsAdded automatic bound deduction by default for
bounded_intervals
Overhaul of search space optimization code in
resolver
Timedesc 0.3.0
Added
ceil
,floor
andround
toTimedesc.Span
(and also re-exported them inTimedesc.Timestamp
)Rounded down
Timedesc.Timestamp.max_val
to closest integerAdded automatic second fraction precision support for non-RFC3339 pretty printers
Updated default format string for pretty printers to include second fraction
Updated format string system to better support second fraction
Timere 0.4.0
Migration of date time components to Timedesc
Changed
inter []
to meanalways
instead ofempty
Fixed
overapproximate_search_space_bottom_up
handling of bounded intervalsPreviously the default search time zone was used during points to date time conversion instead of the time zone passed during execution
Timedesc 0.2.0
Added ISO int conversion functions for
weekday
Fixed
Timedesc.Date.day
accessor, which is used byTimedesc.day
Renamed
week
toiso_week
for ISO week date APIReplaced use of
CCOpt.get_exn
withCCOpt.get_exn_or
Made
Timedesc.Time.t
abstractModified
Timedesc.Time.t
underlying representationFixed
Timedesc.Time.make
to handle24:00:00
"properly" by rewriting it to23:59:59.999_999_999
Timedesc 0.1.0
Migration of date time components from Timere
Changes to date time components
Added recognition of "UTC+/-offset", e.g. "UTC+7", "UTC-07:00", to
Timere.Time_zone.make
Tuning behaviour of
Timere.Time_zone.make
for handling time zones withUTC
prefixUpdated ISO8601 parser to tolerate separator other than
T
Updated ISO8601 parser to tolerate numbers expressed in only one digit
Added size checking to
Timere.Time_zone.make_offset_only*
Removed raising of
Invalid_argument
outside of Timere combinators,pp*
and some*_exn
functionsFixed
Points.make
error checkingMoved hms into
Hms
moduleImproved hms error returning
Added
Timere.Week_date_time
module for handling ISO week date timeRemoved type
month
, replaced use of it with justint
Documentation overhaul with readability improvement and introduction to date time handling added
Renamed
Timere.Date_time.to_weekday
toTimere.Date_time.weekday
Unified
Duration
andSpan
module. Now there is onlySpan
module with human friendly constructors andview
type inTimere.Span.For_human
See issue #27 for discussion
Many changes and restructuring for better usability...
Timere 0.3.1
Minor refactoring on use of pattern resolver to simplify reasoning about undefined/uncertain behaviour
Added
Timere.Span.make_small
Timere 0.3.0 (unreleased)
Added support for parsing "24:00" and "24:00:00" in
Timere.Date_time.of_iso8601
Changed
make_hms
to replace second with 59 when 60 is providedRenamed
Date_time.make_precise
toDate_time.make_unambiguous
Added leap second handling to
Date_time
Fixed crash in
Timere.Date_time.of_iso8601
due to failed date time constructionUpgraded
Time_zone.make_offset_only
APIUpdated
tz_info
andTime_zone.t
definition to remove overlap of functionality for representing time zone with only constant offsetRenamed constants
min
andmax
tomin_val
andmax_val
forTimere.Timestamp
andTimere.Date_time
Added
since
andsince_timestamp
Pattern resolver overhaul
Resolver search space slicing fix in
slice_search_space
overapproximate_search_space_bottom_up
restrict_search_space_top_down
Changed
{mday:...}
to{day:...}
in format string systemBetter error messages when local time zone cannot be determined (PR #23)
Timere 0.2.2
Moved timestamp functions into
Timere.Timestamp
moduleAdded fractional second support to ISO8601 parsing
Fixed
Span.of_float
handling of negative floatsRenamed label argument
precision
tofrac_s
for RFC3339 related functionsRemoved rounding behaviour of fractional digits for RFC3339 related functions
Changed
make_hms
to accept second field to be 60
Timere 0.2.1
Fixed OCaml 4.06.1 compatibility
Timere 0.2.0 (unreleased)
Added support for nanosecond precision for date times and timestamps
Updated tzdb
Fixed
Timere.Date_time.make
andTimere.Date_time.make_exn
typesTimere.Date_time
API tuningExtended format string to support number form of month
Extended format string to support fractional seconds
Formatted date time string construction now fails explicitly when tz offset is required but cannot be deduced
Timere-parse 0.0.4
Replaced
Int
module withCCInt
for building in version 4.06.1
Timere-parse 0.0.3
Ruleset update
Added time zone support
Improved bounded interval bound choosing (e.g. "10am to 2pm" would use a bound of 2 days now instead of 366 days)
Fixed parsing of hmss
Timere 0.1.5
Fixed following functions which may exception when
tzlocal.none
backend is usedTimere.intervals
Timere.resolve
Added
tzlocal.utc
backendFixed slowdowns in
inter
resolution caused by incorrect batch and search space slicing logicFixed
sexp_of_timestamp
which previously did not specify time zone explicitly as UTC after the default time zone parameter change in APIFixed use of
Date_time'.of_timestamp
at places by specifying the time zone explicitly as UTCUpdated
bounded_intervals
to try to avoid constructing terms that result in (almost) non-termination
Timere-parse 0.0.2
Added corpus
General parser upgrade
Added parser for
hms
Timere 0.1.4
Added missing exception handling in
Time.pattern
forRange.Range_is_invalid
Added local time zone detection (
Timere.Time_zone.local
)Swapped to using local time zone by default in
Timere.Date_time
APIAdded missing to/of sexp functions for
Date_time
andDuration
modulesAdded pretty printers for
Timere.hms
Timere-parse 0.0.1
Base version
Timere 0.1.3
Base version