Date And Time Service Description and Assumptions

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.
  • Generating timestamps at the current instant.

Date and Time Ranges

  • Calculating the duration of date and time ranges.
  • 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

  • Conversion between local time zones and Coordinated Universal Time (UTC).

Named Time Periods

  • Association of named time periods with calendar systems.
  • Identifying whether a specific named time period falls before, within, or after a date instant, or another named time period.

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

Calendaring System

  • Basic date and time operations, and formatting and validation operations, will default to using the Gregorian Calendar system.
  • It may be possible, during implementation, to create an abstraction layer to more readily permit these operations on other calendar systems (e.g. Islamic, Hebrew), in the event that might be a future requirement for the CollectionSpace system.

Basic Date and Time Operations

  • Basic date and time operations will apply to system dates and times. These include, but are not limited to: 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.

Formatting and Validation

  • 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.
  • Wherever new dates are entered or generated throughout the CollectionSpace system, four-digit years are required.
  • 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.
  • Date and time instants SHOULD be converted to, and stored in, then-current UTC.
  • One or more date- and time-sensitive frameworks or libraries in the CollectionSpace system, such as the core date and time framework, will require occasional updates to time zone data.

Named Time Periods

  • Named time periods refer to named, time-bounded events and/or abstractions such as "World War I", the "European Renaissance," the "Han Dynasty," and the "Mesozoic Era."
  • These names for time periods may incorporate, and thus be qualified by, topical, geographic (place), and/or cultural elements.
  • Services around named time periods seek to associate those periods with date ranges. These date ranges will have various confidence ranges, or variable degrees of likely accuracy. Searches on these time periods may need to reflect desired levels of accuracy.
  • Many early date ranges, particularly for earth sciences, life sciences, and similar disciplines, are typically measured in millions of years. Searches may need to reflect variability in the date measurement units that are used in various contexts.

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.):

Named Time Periods

  • Ray Larson, faculty member, School of Information, UC Berkeley
  • Ryan Shaw, Ph.D. student, School of Information, UC Berkeley

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.