Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 18 Next »

Description

A utility service that provides support for date and time operations.

Operations that may be performed by this service are proposed below. Some of these may be implemented solely as internal code, and have no web services or externally-facing components:

Basic date and time operations.

  • Date and time addition and subtraction, in part in support of such concepts as "last week," "this month", and "90 days from now."
  • Generating timestamps at the current instant.

Date and time ranges

  • Calculating the duration of date and time ranges, in support of time-bounded entities, such as loans, exhibits, and temporary access permissions.
  • Identifying whether a specific date and time falls before, within, or after a date and time range.

Formatting and validation

  • Formatting dates and times, and converting between formats.
  • Validating entered dates and times.

Time zones

  • Time zone handling.

Named time periods

  • Support for named time periods. (This encompasses a great deal, and should be broken out further here.)

These operations provide support for the temporal attributes of other entities, such as:

  • Generating date-related parts of ID numbers.
  • Facilitating searches and reporting based, in part, on date and time ranges (e.g. "collection objects accessioned within the last week" or "collection objects scheduled for conservation activity during March 1-20 of the current year").
  • Providing notifications at significant time points related to time-bound events, such as loans, exhibitions, and temporarily-granted access permissions.
  • Supporting customization (including Internationalization) of displayed and entered dates and times.
  • Support for import of dates and times.

Assumptions

Scope

  • This service will apply to system dates and times: the dates and times of meaningful collections management events modeled by the CollectionSpace system, such as the date and time that an object was accessioned, loaned, exhibited, moved, or covered by conservation activities; dates and times related to an insurance contract or shipping manifest; or a date and time range during which temporary access permissions might be granted to a Principal.

Calendar Systems

  • This service will default to using the Gregorian Calendar system.

    It may be possible, during implementation, to create an abstraction layer to more readily permit the use of other calendar systems (e.g. Islamic, Hebrew) for representing system dates and times, in the event that might be a future requirement for the CollectionSpace system.

Date and Time Formats

  • This service will inherently accept any of several widely-used input formats for dates and times.
  • This service will allow customization - based on regular expressions or similar patterns - that will permit the use of other custom date and time input formats.
  • For input date and time formats where years are represented with fewer than four digits (required to unambiguously designate years in the Gregorian Calendar), default assumptions about assigning these dates to a century will be used and documented.
  • This behavior generally confirms with Jon Postel's maxum, "Be liberal in what you accept, and conservative in what you send."

Time Zones

  • Deployments of the CollectionSpace service may be hosted in a different time zone than users of the service.
  • Users of a deployment may simultaneously be located in two or more time zones.
  • The core date and time framework/library will require periodic updates to time zone data, as various world governments make changes to that data.

Boilerplate structure and text below

Much of the page structure and text below this point is boilerplate, copied in from the relevant New Service template. Further work is needed to complete this page.

Key Concepts

  • Especially things that become common sense, and so usually missed by new reviewers

Dependencies

Services with potential dependencies on this service include:

More generally, any entity services whose data models include temporal attributes may potentially have some dependencies on this service.

Background Documentation

  • If we have notes from community design meetings, link to them here.
  • If we have relevant sections in Spectrum or another such document, link to them here (or cite section numbers, etc.)

Key Team Members

  • (Name(s) of members) is/are the primary tech team member(s) for this service
  • Need to identify the community members acting as Domain Experts.
  • No labels