Skip to content

Time Types

The time module defines data types for representing time and dates in the Arda system. These types complement the bitemporal concepts described in Journaled Entities and the time-related primitives in Value Types.

A TimeCoordinates value captures both dimensions of bitemporal time for a change in the system:

PropertyTypeMultiplicityDescription
effectiveTimestamp[1..1]When the change happens in the real world (business effective time)
recordedTimestamp[1..1]When the change is recorded by the system (technical recorded time)

TimeCoordinates is used as the time metadata for every entity record in the system. See Journaled Entities for the full explanation of why both dimensions are needed.

A Duration represents a length of time, expressed as a decimal number of time units.

PropertyTypeMultiplicityDescription
lengthDouble[0..1]The numeric length of the duration
unitTimeUnit[0..1]The unit of measurement for the length

The standard time units supported by the Duration type:

ValueDescription
MILLISECONDOne millisecond
SECONDOne second
MINUTEOne minute
HOUROne hour
DAYOne day
WEEKOne week
STANDARD_MONTHA standardized month (30 days)
STANDARD_YEARA standardized year (365 days)

A Timestamp is the number of milliseconds since the Unix epoch (January 1, 1970, 00:00:00.000 UTC). It must be represented in a way that avoids 32-bit integer overflow (i.e., as a 64-bit integer).