Understanding ISO 8601 date elements and interchange formats

Download Report

Transcript Understanding ISO 8601 date elements and interchange formats

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?
Are there potential pitfalls in using ISO
8601, especially for internationalization?
If so, are there workarounds?
18th International Unicode Conference
2
Hong Kong, April 24-27, 2001
Agenda
Brief Overview of ISO 8601
Problem Areas
Solutions
18th International Unicode Conference
3
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
4
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
5
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
6
Hong Kong, April 24-27, 2001
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.
18th International Unicode Conference
7
Hong Kong, April 24-27, 2001
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.
18th International Unicode Conference
8
Hong Kong, April 24-27, 2001
Representing dates

Calendar date
– year, month, day number within month

Ordinal date
– year, day number within year

Week date
– year, week, number within week
18th International Unicode Conference
9
Hong Kong, April 24-27, 2001
Representing dates
Date
Basic Format
Calendar date
YYYYMMDD
19850412
- - MMDD
- - 0412
Extended
Format
YYYY-MM-DD
1985-04-12
- - MM-DD
- - 04-12
Expanded
±YYYYYYMMDD
±0019850412
±YYYYYY-MM-DD
±001985-04-12
Ordinal date
YYYYDDD
1985102
YYYYWwwD
1985W155
YYYYWww
1985W15
YYYY-DDD
1985-102
YYYY-Www-D
1985-W15-5
YYYY-Www
1985-W15
Truncated
Week date
Reduced
Precision
18th International Unicode Conference
10
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
11
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
12
Hong Kong, April 24-27, 2001
Representing times
Time
Basic Format
Local time
Extended
Format
hh:mm:ss
23:20:50
hh:mm:ss,ss
23:20:50,5
hh:mm:ssZ
23:20:50Z
hhmmss
232050
Decimal
hhmmss,ss
fractions
232050,5
Universal time
hhmmssZ
232050Z
Local time offset hhmmss±hhmm hh:mm:ss±hh:mm
23:20:50+01:00
UTC
232050+0100
18th International Unicode Conference
13
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
14
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
15
Hong Kong, April 24-27, 2001
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.
18th International Unicode Conference
16
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
17
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
18
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
19
Hong Kong, April 24-27, 2001
Agenda
Brief Overview of ISO 8601
Problem Areas
Solutions
18th International Unicode Conference
20
Hong Kong, April 24-27, 2001
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...
18th International Unicode Conference
21
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
22
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
23
Hong Kong, April 24-27, 2001
Agenda
Brief Overview of ISO 8601
Problem Areas
Solutions
18th International Unicode Conference
24
Hong Kong, April 24-27, 2001
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
18th International Unicode Conference
25
Hong Kong, April 24-27, 2001
Acknowledgements
Mark Davis (IBM)
www.macchiato.com/unicode/timeIntervals.htm
 W3C Internationalization working and interest
groups

18th International Unicode Conference
26
Hong Kong, April 24-27, 2001
Questions
18th International Unicode Conference
27
Hong Kong, April 24-27, 2001