temporal-core
Canonical Import
(local temporal-core (require :temporal-core))Source Files
src/lua_temporal_core.cppsrc/temporal.h
What It Provides
temporal-core exposes the native temporal object bindings used by the higher-level temporal module: durations, instants, plain date-times, zoned date-times, clocks, and tzdb metadata.
API Summary
duration.from-nanoseconds(nanoseconds),duration.from-seconds(seconds),duration.from-parts(parts)createTemporalDurationvalues.instant.parse(text)andinstant.from-unix(epoch-seconds [nanosecond])createTemporalInstantvalues.plain-date-time.parse(text)andplain-date-time.from-fields(fields)createTemporalPlainDateTimevalues.zoned-date-time.from-plain(plain zone-id [disambiguation])andzoned-date-time.from-instant(instant zone-id)createTemporalZonedDateTimevalues.clock.system()andclock.fixed(instant)create clock objects; clock objects provide:now().tzdb.version()returns the native time-zone database version string.TemporalDurationmethods/properties::nanoseconds(),:compare(other),:to-string().TemporalInstantmethods/properties::epoch-seconds(),:nanosecond(),:to-string(),:compare(other),:add(duration),:since(earlier).TemporalPlainDateTimemethods::fields(),:to-string(),:compare(other),:add(duration),:since(earlier),:add-days(days),:add-calendar(fields),:iso-weekday().TemporalZonedDateTimemethods/properties::instant(),:zone-id(),:fields(),:offset-string(),:to-string().
Examples
(local temporal-core (require :temporal-core))
(local instant (temporal-core.instant.parse "2026-09-28T12:00:00Z"))
(local duration (temporal-core.duration.from-parts {:seconds 30}))
(local later (instant:add duration))
(print (later:to-string))
(print (temporal-core.tzdb.version))Errors and Platform Notes
Factory functions and methods raise errors for invalid field types, missing required fields, unsupported disambiguation values, parse failures, and invalid calendar arithmetic. plain-date-time.from-fields requires year, month, and day; time fields default to zero. Calendar additions accept only years, months, weeks, and days, require finite safe integer values, and reject mixed signs. zoned-date-time.from-plain disambiguation is a string at the core layer ("reject", "earliest", or "latest").
Related Modules
temporalfor higher-level Fennel helpers and keyword-friendly wrappers.
Aliases and Search Terms
Search terms: native temporal, TemporalDuration, TemporalInstant, TemporalPlainDateTime, TemporalZonedDateTime, clock, tzdb.
