1 / 29

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

Understanding ISO 8601 date and time representation formats. Tex Texin [email protected] XenCraft. 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?

Related searches for Understanding ISO 8601 date and time representation formats

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' - thi

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

XenCraft

• 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?

Brief Overview of ISO 8601

Problem Areas

Solutions

• Dates

• Calendar dates

• Ordinal dates

• Week dates

• Time of day

• Local vs. Coordinated Universal Time (UTC)

• Combined date and time

• Time-intervals

• Recurring time-intervals

• Uses character representation

• ISO/IEC 646 (ASCII), 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

• 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

• 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.

• 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.

• Calendar date

• year, month, day number within month

• Ordinal date

• year, day number within year

• Week date

• year, week, number within week

• 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

• 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

• “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

• 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

• “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.

• 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 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, then the number is unbounded

• “R” is used to indicate recurrence

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

• Easy to use

• Easy to parse, unambiguous

• Easy to sort

• Many date-time schemes exist, a standard is needed

Brief Overview of ISO 8601

Problem Areas

Solutions

• 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...

• 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

• 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

• Laws determining daylight savings time change continually

• Difficult to know local time offsets.

Brief Overview of ISO 8601

Problem Areas

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

www.macchiato.com/unicode/timeIntervals.htm

W3C Internationalization working and interest groups

Resources

ISO’s web page to order the standard: http://www.iso.ch/cate/d26780.html

Mail list: [email protected]