Understanding ISO 8601 date and time representation formats

1 / 27

# Understanding ISO 8601 date and time representation formats - PowerPoint PPT Presentation

Understanding ISO 8601 date and time representation formats. Tex Texin Director, International Business Progress Software Corporation. Objectives for this session. ISO 8601:1988 is updated in 2000. What is in ISO 8601:2000?

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Understanding ISO 8601 date and time representation formats' - libitha

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Understanding ISO 8601 date and time representation formats

Tex Texin

Progress Software Corporation

Objectives for this session
• ISO 8601:1988 is updated in 2000.
• What is in ISO 8601:2000?
• Are there potential pitfalls in using ISO 8601, especially for internationalization?
• If so, are there workarounds?
Agenda

Brief Overview of ISO 8601

Problem Areas

Solutions

ISO 8601:2000 Overview
• Dates
• Calendar dates
• Ordinal dates
• Week dates
• Time of day
• Local vs. Universal Time Coordinated (UTC)
• Combined data and time
• Time-intervals
• Recurring time-intervals
Representing dates, times, durations and intervals
• Uses character representation
• ISO/IEC 646, no spaces
• Separators (Extended Format)
• Hyphens, Colons, Solidus, Number sign
• Truncation
• Omission of higher order components
• Reduced Precision
• Omission of lower order components
• Expansion- years < 0 or years > 9999
• Fixed length fields using leading zeros
Representing dates, times, durations and intervals
• Designators
• “P” is time-interval designator
• “R” is recurring time-interval designator
• “T” indicates start of Time elements
• “W” is week designator
• “Z” is UTC designator
• Duration designators
• Y, M, W, D, H, M, S may be used
• M can be minute, month, or both
Calendar Dates
• Gregorian calendar
• 1875 is reference point
• Common (365) and Leap (366) years
• Leap is every 4th year except centennial years that are not integrally divisible by 400
• Gregorian is used even for years < 1582 (by mutual agreement).
• Year 0000 is leap.
Calendar week
• Monday is day 1, Sunday is day 7.
• Weeks are numbered 1- 52 or 1 - 53.
• Week 1 includes the first Thursday of year.
• Alternatively, Week 1 includes Jan 4.
• Week 1 may include 3 days of last year.
• Last week may include 3 days of next year.
Representing dates
• Calendar date
• year, month, day number within month
• Ordinal date
• year, day number within year
• Week date
• year, week, number within week
ISO 8601:2000 Overview
• Dates
• Calendar dates
• Ordinal dates
• Week dates
• Time of day
• Local vs. Universal Time Coordinated (UTC)
• Combined data and time
• Time-intervals
• Recurring time-intervals
Representing times
• Hours 00-24 (allowing midnight-midnight)
• Minutes 00-59
• Seconds 00-60 (allowing leap seconds)
• Decimal fractions of hour, minute, second
• Local and Universal (UTC) time
Combined date and time
• “T” indicates start of time
• Mix and match as needed:

Calendar dates + local time

YYYY-MM-DDThh:mm

Ordinal dates + UTC time

YYYY-DDDThh:mmZ

Week dates + offset from UTC

YYYYWwwDThh:mm±hhmm

ISO 8601:2000 Overview
• Dates
• Calendar dates
• Ordinal dates
• Week dates
• Time of day
• Local vs. Universal Time Coordinated (UTC)
• Combined data and time
• Time-intervals
• Recurring time-intervals
Representing time-intervals
• “P” indicates a duration (period)
• Intervals come in 4 varieties:
• start and end times

YYYY-MM-DDThh:mm:ss/YYYY-MM-DDThh:mm:ss

• durations

PnYnMnDTnHnMnS

P2Y10M15DT10H30M20S

2 Yr, 10 mon, 15 days, 10 hrs. 30 min. 20 sec.

P6W is a duration of 6 weeks.

Representing time-intervals
• The remaining 2 varieties
• start time and duration

YYYY-MM-DDThh:mm:ss/PnYnMnDTnHnMnS or

YYYY-MM-DDThh:mm:ss/PYYYY-MM-DDThh:mm:ss

1985-04-12T23:20:50/P0001-02-15T12:30:00

• duration and end time

PnYnMnDTnHnMnS/YYYY-MM-DDThh:mm:ss or

PYYYY-MM-DDThh:mm:ss/YYYY-MM-DDThh:mm:ss

Recurring time-intervals
• Recurring time intervals are expressed by:
• # of recurrences and start and end times
• # of recurrences and a duration
• # of recurrences & start time & a duration
• # of recurrences & duration & end time
• If # of recurrences is not provided than the number is unbounded
• “R” is used to indicate recursion
Examples of recurring time-intervals

Recurring with Start and End Times:

Rn/YYYY-MM-DDThh:mm:ss/YYYY-MM-DDThh:mm:ss

R12/1985-04-12T23:20:50/1985-06-25T10:30:00

Recurring with a duration:

Rn/PnYnMnDTnHnMnS

R12/P2Y10M15DT10H20M20S

Recurring with a Start Time and duration:

Rn/YYYY-MM-DDThh:mm:ss/PnYnMnDTnHnMnS

R12/1985-04-12T23:20:50/P2Y2M15DT12H30M0S

Agenda

Brief Overview of ISO 8601

Problem Areas

Solutions

Ambiguities
• Future leap seconds are unpredictable

Is 2010-03-31T23:59:60Z valid?

• Year, month, minute have varying sizes

P1M = P28D or P29D or P30D or P31D

• Mismatched precision

1985W50 <= 1985W501?

• Truncation opens the door for Y2K issues
• Variations of 8601 exist in practice
• Julian, Gregorian, Emperor...
Ambiguities
• Date arithmetic is not defined

2001-03-30 + P1M = 2001-04-29 (Add 30 days)

2001-03-30 + P1M = 2001-04-30 (Add 1 mon.)

• Addition is not commutative or associative

2001-03-30 + P1D + P1M = 2001-04-30

2001-03-30 + P1M + P1D = 2001-05-01

• Subtraction is not the inverse of Addition
• Precision of decimal fractions can vary
Conversions
• Gregorian calendar adopted at different times around the world
• Most calendars do not include year 0.
• 8601 extends leap years into the past, other calendars do not.
• Dates without times are often not qualified by time zone.
• Time zones (currently) go from -13 to +12
• So the date could be +/- 1 day
Agenda

Brief Overview of ISO 8601

Problem Areas

Solutions

Solutions
• Mutual Agreements
• Referencing other standards and implementations
• e.g. Java
• Standards employing 8601 may need to introduce rules or constraints
• e.g. XML Schema
• Restrict use of 8601 formats
Mark Davis (IBM)

www.macchiato.com/unicode/timeIntervals.htm

W3C Internationalization working and interest groups

Acknowledgements