Illustration by examples.
(1) ISO 8601
Because the specification also supports rarely-used features, I will not give an exhaustive description. I would like to give some common examples.
(*) Date
| Use month and day | ||
| YYYY-MM-DD | 2008-07-08 | MM:01 - 12 DD: 01-31 |
| YYYY-MM | 2008-07 | Seconds are omitted. ( YYYYMM is not allowed ) |
| YYYY | 2008 | |
| YYYYMMDD | 20080708 | hyphens are omitted |
| Use week and day in a week | ||
| YYYY-Www-d | 2008-W01-1 | ww: week number(01-52/53) d:day in the week(1-7) |
| YYYY-Www | 2008-W01 | first week in 2008 |
| YYYYWwwd | 2008W011 | |
| YYYYWww | 2008W01 | |
| Use day in the year | ||
| YYYY-ddd | 2008-014 | ddd: day in the year 000 - 365(366 in leap years) |
| YYYYddd | 2008123 | |
(*)Time
| hh:mm:ss | 16:23:42 | hh: hour (00 - 24) mm:minute(00-59) ss:second(00-60) |
| hhmmss | 162342 | colons are omitted |
| hh:mm | 16:23 | seconds are omitted |
| hhmm | 1623 | |
| hh | 16 | both minutes and seconds are omitted |
| hh:mm:ss.mil | 16:23:42.123 | More precise |
(*)Time zone
| hh:mm:ssZ | 12:23:43Z | 'Z' means the time is measured in UTC. |
| time+hh:mm | 13:23+01:00 | The time is hh hours and mm minutes ahead of UTC |
| time+hhmm | 13:23+0100 | colon is omitted. |
| time+hh | 13:23+01 | The time is hh hours ahead of UTC |
| time-hh:mm time-hhmm time-hh | 11:23-01:00 11:23-0100 11:23-01 | The time is after UTC. The zone is in west of the zero meridian. |
(*) Put together
| <date>T<time> | 2008-02-12T12:23:34 20080212T122334 2008T1223 |
| <data>T<time>Z | 2008-02-12T12:23:34Z |
| <data>T<time>+<zone> | 2008-02-12T13:23:34+01 |
| <data>T<time>-<zone> | 2008-02-12T11:23:34-01 |
Resources:
http://www.cl.cam.ac.uk/~mgk25/iso-time.html
http://en.wikipedia.org/wiki/ISO_8601
(2) RFC 3339
This is a profile of ISO 8601 which defines date and time to be used on internet.
Following is excerpt from the specification:
date-fullyear = 4DIGIT
date-month = 2DIGIT ; 01-12
date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on
; month/year
time-hour = 2DIGIT ; 00-23
time-minute = 2DIGIT ; 00-59
time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second
; rules
time-secfrac = "." 1*DIGIT
time-numoffset = ("+" / "-") time-hour ":" time-minute
time-offset = "Z" / time-numoffset
partial-time = time-hour ":" time-minute ":" time-second
[time-secfrac]
full-date = date-fullyear "-" date-month "-" date-mday
full-time = partial-time time-offset
date-time = full-date "T" full-time
(3) W3C
W3C also defines a profile of ISO 8601 which can be accessed here.
