Formatting Dates in the CTDA

Last Updated, May 16, 2023.

The CTDA system supports the Library of Congress Extended Date Time Format (EDTF) at Level 0 and at most of Level 1. This formatting should be used for all date fields in the CTDA.

EDTF allows structured and machine actionable (sortable) dates to be entered into date fields using specific syntax for approximate dates, date ranges, uncertain dates, and more.

For reference we have reproduced parts of the EDTF specifications below. The complete specification is available at: https://www.loc.gov/standards/datetime/edtf.html  .  EDTF itself is based on the international standard ISO 8601.

Syntax

EDTF requires “extended format” as defined in 8601: hyphen between calendar components and colon between clock components (e.g. 2005-09-24T10:00:00). 

Level 0

Date

  • complete representation: [year][“-”][month][“-”][day]
    Example 1.         ‘1985-04-12’ refers to the calendar date 1985 April 12th with day precision.
  • reduced precision for year and month:   [year][“-”][month]
    Example 2          ‘1985-04’ refers to the calendar month 1985 April with month precision. 
  • reduced precision for year:  [year]
    Example 3          ‘1985’ refers to the calendar year 1985 with year precision. 

Time Interval

EDTF Level 0 adopts representations of a time interval where both the start and end are dates: start and end date only; that is, both start and duration, and duration and end, are excluded. Time of day is excluded.

  • Example 1          ‘1964/2008’ is a time interval with calendar year precision, beginning sometime in 1964 and ending sometime in 2008.
  • Example 2          ‘2004-06/2006-08’ is a time interval with calendar month precision, beginning sometime in June 2004 and ending sometime in August of 2006.
  • Example 3          ‘2004-02-01/2005-02-08’ is a time interval with calendar day precision, beginning sometime on February 1, 2004 and ending sometime on February 8, 2005.
  • Example 4          ‘2004-02-01/2005-02’ is a time interval beginning sometime on February 1, 2004 and ending sometime in February 2005. Since the start endpoint precision (day) is different than that of the end endpoint (month) the precision of the time interval at large is undefined.
  • Example 5          ‘2004-02-01/2005’ is a time interval beginning sometime on February 1, 2004 and ending sometime in 2005. The start endpoint has calendar day precision and the end endpoint has calendar year precision. Similar to the previous example, the precision of the time interval at large is undefined.
  • Example 6          ‘2005/2006-02’ is a time interval beginning sometime in 2005 and ending sometime in February 2006.

Level 1

This implementation includes support for Level 0 as well as the following Level 1 features:

Qualification of a date (complete)

The characters '?', '~' and '%' are used to mean "uncertain", "approximate", and "uncertain" as well as "approximate", respectively. These characters may occur only at the end of the date string and apply to the entire date.

  • Example 1             '1984?'             year uncertain (possibly the year 1984, but not definitely)
  • Example 2              '2004-06~''       year-month approximate
  • Example 3        '2004-06-11%'          entire date (year-month-day) uncertain and approximate

 

Unspecified digit(s) from the right 

The character 'X' may be used in place of one or more rightmost digits to indicate that the value of that digit is unspecified, for the following cases:

  1. A year with one or two (rightmost) unspecified digits in a year-only expression (year precision)
    Example 1       ‘201X’
    Example 2       ‘20XX’
  2. Year specified, month unspecified in a year-month expression (month precision) 
    Example 3       ‘2004-XX’
  3. Year and month specified, day unspecified in a year-month-day expression (day precision)
    Example 4       ‘1985-04-XX’               
  4. Year specified, day and month unspecified in a year-month-day expression  (day precision)
    Example 5       ‘1985-XX-XX’              

Extended Interval (L1)

  1. A null string may be used for the start or end date when it is unknown. 
  2. Double-dot (“..”) may be used when either the start or end date is not specified, either because there is none or for any other reason.
  3. A modifier may appear at the end of the date to indicate "uncertain" and/or "approximate" 

Open end time interval

  • Example 1          ‘1985-04-12/..’  
    interval starting at 1985 April 12th with day precision; end open
  • Example 2          ‘1985-04/..’  
    interval starting at 1985 April with month precision; end open 
  • Example 3          ‘1985/..’
    interval starting at year 1985 with year precision; end open

Open start time interval 

  • Example 4          ‘../1985-04-12’
    interval with open start; ending 1985 April 12th with day precision
  • Example 5          ‘../1985-04’
    interval with open start; ending 1985 April with month precision
  • Example 6          ‘../1985’
    interval with open start; ending at year 1985 with year precision

Time interval with unknown end 

  • Example 7          ‘1985-04-12/’
    interval starting 1985 April 12th with day precision; end unknown
  • Example 8          ‘1985-04/’
    interval starting 1985 April with month precision; end unknown
  • Example 9          ‘1985/’
    interval starting year 1985 with year precision; end unknown

Time interval with unknown start 

  • Example 10       ‘/1985-04-12’  
    interval with unknown start; ending 1985 April 12th with day precision
  • Example 11       ‘/1985-04’  
    interval with unknown start; ending 1985 April with month precision
    Example 12       ‘/1985’
    interval with unknown start; ending year 1985 with year precision