understanding iso 8601 date and time representation formats tex texin [email protected] xencraft
TRANSCRIPT
Understanding ISO 8601 date and time representation formats
Understanding ISO 8601 date and time representation formats
21st International Unicode Conference 2 Dublin, Ireland, May 2002
Objectives for this sessionObjectives 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?
21st International Unicode Conference 3 Dublin, Ireland, May 2002
Brief Overview of ISO 8601
Problem Areas
Solutions
Brief Overview of ISO 8601
Problem Areas
Solutions
AgendaAgenda
21st International Unicode Conference 4 Dublin, Ireland, May 2002
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
ISO 8601:2000 OverviewISO 8601:2000 Overview
21st International Unicode Conference 5 Dublin, Ireland, May 2002
Representing dates, times, durations and intervalsRepresenting dates, times, durations and 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
21st International Unicode Conference 6 Dublin, Ireland, May 2002
Representing dates, times, durations and intervalsRepresenting 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
21st International Unicode Conference 7 Dublin, Ireland, May 2002
Calendar DatesCalendar 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.
21st International Unicode Conference 8 Dublin, Ireland, May 2002
Calendar weekCalendar 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.
21st International Unicode Conference 9 Dublin, Ireland, May 2002
Representing datesRepresenting dates
Calendar date– year, month, day number within month
Ordinal date– year, day number within year
Week date– year, week, number within week
21st International Unicode Conference 10 Dublin, Ireland, May 2002
Representing datesRepresenting datesDate Basic Format Extended
FormatCalendar date YYYYMMDD
19850412YYYY-MM-DD1985-04-12
Truncated - - MMDD- - 0412
- - MM-DD- - 04-12
Expanded ±YYYYYYMMDD±0019850412
±YYYYYY-MM-DD±001985-04-12
Ordinal date YYYYDDD1985102
YYYY-DDD1985-102
Week date YYYYWwwD1985W155
YYYY-Www-D1985-W15-5
ReducedPrecision
YYYYWww1985W15
YYYY-Www1985-W15
21st International Unicode Conference 11 Dublin, Ireland, May 2002
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
ISO 8601:2000 OverviewISO 8601:2000 Overview
21st International Unicode Conference 12 Dublin, Ireland, May 2002
Representing timesRepresenting 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
21st International Unicode Conference 13 Dublin, Ireland, May 2002
Representing timesRepresenting times
Time Basic Format ExtendedFormat
Local time hhmmss232050
hh:mm:ss23:20:50
Decimalfractions
hhmmss,ss232050,5
hh:mm:ss,ss23:20:50,5
Universal time hhmmssZ232050Z
hh:mm:ssZ23:20:50Z
Local time offsetUTC
hhmmss±hhmm232050+0100
hh:mm:ss±hh:mm23:20:50+01:00
21st International Unicode Conference 14 Dublin, Ireland, May 2002
Combined date and timeCombined date and time
“T” indicates start of time Mix and match as needed:
Calendar dates + local timeYYYY-MM-DDThh:mm
Ordinal dates + UTC timeYYYY-DDDThh:mmZ
Week dates + offset from UTCYYYYWwwDThh:mm±hhmm
21st International Unicode Conference 15 Dublin, Ireland, May 2002
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
ISO 8601:2000 OverviewISO 8601:2000 Overview
21st International Unicode Conference 16 Dublin, Ireland, May 2002
Representing time-intervalsRepresenting 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
– durationsPnYnMnDTnHnMnS
P2Y10M15DT10H30M20S
2 Yr, 10 mon, 15 days, 10 hrs. 30 min. 20 sec.
P6W is a duration of 6 weeks.
21st International Unicode Conference 17 Dublin, Ireland, May 2002
Representing time-intervalsRepresenting time-intervals
The remaining 2 varieties– start time and durationYYYY-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 timePnYnMnDTnHnMnS/YYYY-MM-DDThh:mm:ss or
PYYYY-MM-DDThh:mm:ss/YYYY-MM-DDThh:mm:ss
21st International Unicode Conference 18 Dublin, Ireland, May 2002
Recurring time-intervalsRecurring 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, then
the number is unbounded “R” is used to indicate recurrence
21st International Unicode Conference 19 Dublin, Ireland, May 2002
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
Examples of recurring time-intervalsExamples of recurring time-intervals
21st International Unicode Conference 20 Dublin, Ireland, May 2002
Benefits of ISO 8601Benefits of ISO 8601
Human-readable Easy to use Easy to parse, unambiguous Easy to sort Many date-time schemes exist, a standard
is needed
21st International Unicode Conference 21 Dublin, Ireland, May 2002
Brief Overview of ISO 8601
Problem Areas
Solutions
Brief Overview of ISO 8601
Problem Areas
Solutions
AgendaAgenda
21st International Unicode Conference 22 Dublin, Ireland, May 2002
AmbiguitiesAmbiguities
Future leap seconds are unpredictableIs 2010-03-31T23:59:60Z valid?
Year, month, minute have varying sizesP1M = P28D or P29D or P30D or P31D
Mismatched precision1985W50 <= 1985W501?
Truncation opens the door for Y2K issues Variations of 8601 exist in practice– Julian, Gregorian, Emperor...
21st International Unicode Conference 23 Dublin, Ireland, May 2002
AmbiguitiesAmbiguities
Date arithmetic is not defined2001-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
21st International Unicode Conference 24 Dublin, Ireland, May 2002
ConversionsConversions
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
21st International Unicode Conference 25 Dublin, Ireland, May 2002
ConversionsConversions
Laws determining daylight savings time change continually
Difficult to know local time offsets.
21st International Unicode Conference 26 Dublin, Ireland, May 2002
Brief Overview of ISO 8601
Problem Areas
Solutions
Brief Overview of ISO 8601
Problem Areas
Solutions
AgendaAgenda
21st International Unicode Conference 27 Dublin, Ireland, May 2002
SolutionsSolutions
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
21st International Unicode Conference 28 Dublin, Ireland, May 2002
Mark Davis (IBM)
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] Links:
groups.yahoo.com/group/ISO8601/files/pdf_link.htm
http://aa.usno.navy.mil/faq/docs/UT.html
AcknowledgementsAcknowledgements
21st International Unicode Conference 29 Dublin, Ireland, May 2002
Questions