Skip to content

Temporal Types

There are 3 temporal types in Rayforce-Py:

Rayforce-Py Type Low level representation Python representation
Date Number of days since January 1st 2000 datetime.date
Time Number of miliseconds since 00:00 datetime.time
Timestamp Number of nanoseconds since January 1st 2000 datetime.timestamp

Date Usage

>>> import datetime as dt
>>> from rayforce import Date

>>> date = Date(dt.date(year=2025, month=5, day=10))  # As datetime.date object
>>> date
Date(datetime.date(2025, 5, 10))

>>> date = Date("2025-05-10")  # As isoformat string
>>> date
Date(datetime.date(2025, 5, 10))

>>> date = Date(9261)  # As number of days since 2000-01-01
>>> date
Date(datetime.date(2025, 5, 10))

>>> date.value
datetime.date(2025, 5, 10)

Time Usage

>>> import datetime as dt
>>> from rayforce import Time

>>> time = Time(dt.time(hour=14, minute=30, second=45))  # As datetime.time object
>>> time
Time(datetime.time(14, 30, 45))

>>> time = Time("14:30:45")  # As isoformat string
>>> time
Time(datetime.time(14, 30, 45))

>>> time = Time(52245000)  # As number of miliseconds since 00:00
>>> time
Time(datetime.time(14, 30, 45))

>>> time.value
datetime.time(14, 30, 45)

Timestamp Usage

>>> import datetime as dt
>>> from rayforce import Timestamp

>>> timestamp = Timestamp(
    dt.datetime(
        2025, 5, 10, 14, 30, 45,
        tzinfo=dt.timezone.utc,  # timezone is required
    )
)  # As datetime.datetime object
>>> timestamp
Timestamp(datetime.datetime(2025, 5, 10, 14, 30, 45, tzinfo=datetime.timezone.utc))

>>> timestamp = Timestamp("2025-05-10T14:30:45+00:00")  # As isoformat string
>>> timestamp
Timestamp(datetime.datetime(2025, 5, 10, 14, 30, 45, tzinfo=datetime.timezone.utc))

>>> timestamp = Timestamp(800202645000000000)  # As number of nanoseconds since 2000-01-01
>>> timestamp
Timestamp(datetime.datetime(2025, 5, 10, 14, 30, 45, tzinfo=datetime.timezone.utc))

>>> timestamp.value
>>> timestamp
datetime.datetime(2025, 5, 10, 14, 30, 45, tzinfo=datetime.timezone.utc)