| Formats | 
| ISO 8601 Formatting Symbols | 
The following list explains the formatting symbols that are used to notate the ISO 8601 dates, time, datetime, durations, and interval values:
| n | 
 specifies a number that represents the number of years, months, or days  | ||||
| P | 
 indicates that the duration that follows is specified by the number of years, months, days, hours, minutes, and seconds  | ||||
| T | 
 indicates that a time value follows. Any value with a time must begin with T. 
  | ||||
| W | 
 indicates that the duration is specified in weeks.  | ||||
| Z | 
 indicates that the time value is the time in Greenwich, England, or UTC time.  | ||||
| +|- | 
 the + indicates the time zone offset to the east of Greenwich, England. The - indicates the time zone offset to the west of Greenwich, England.  | ||||
| yyyy | 
 specifies a four-digit year  | ||||
| mm | 
 as part of a date, specifies a two-digit month, 01 - 12  | ||||
| dd | 
 specifies a two-digit day, 01 - 31  | ||||
| hh | 
 specifies a two-digit hour, 00 - 24  | ||||
| mm | 
 as part of a time, specifies a two-digit minute, 00 - 59  | ||||
| ss | 
 specifies a two-digit second, 00 - 59  | ||||
| fff | ffffff | 
 specifies an optional fraction of a second using the digits 0 - 9: 
  | ||||
| Y | 
 indicates that a year value proceeds this character in a duration  | ||||
| M | 
 as part of a date, indicates that a month value proceeds this character in a duration  | ||||
| D | 
 indicates that a day value proceeds this character in a duration  | ||||
| H | 
 indicates that an hour value proceeds this character in a duration  | ||||
| M | 
 as part of a time, indicates that a minute value proceeds this character in a duration  | ||||
| S | 
 indicates that a seconds value proceeds this character in a duration  | 
| Writing ISO 8601 Date, Time, and Datetime Values | 
SAS uses the formats in the following table to write date, time, and datetime values in the ISO 8601 basic and extended notations from SAS date, time, and datetime values.
| Date, Time, or Datetime | ISO 8601 Notation | Example | Format | 
|---|---|---|---|
| Basic Notations | |||
| Date | 
yyyymmdd | 
  20080915 | B8601DAw. | 
| Time | 
hhmmssffffff | 
  155300322348 | B8601TMw.d | 
| Time with time zone | hhmmss+|-hhmm | 155300+0500 | B8601TZw.d | 
| 
 | 
  hhmmssZ | 155300Z | B8601TZw.d | 
| Convert to local time with time zone | hhmmss+|-hhmm | 155300+0500 | B8601LZw.d | 
| Datetime | yyyymmddThhmmssffffff | 20080915T155300 | B8601DTw.d | 
| Datetime with timezone | yyyymmddThhmmss+|-hhmm | 20080915T155300+0500 | B8601DZw.d | 
| 
 | 
  yyyymmddThhmmssZ | 20080915T155300Z | 
B8601DZw.d
 
  | 
| Write the date from a datetime | 
yyyymmdd | 
  20080915 | B8601DNw. | 
| Extended Notations | |||
| Date | 
yyyy-mm-dd | 
  2008-09-15 | E8601DAw. | 
| Time | 
hh:mm:ss.ffffff | 
  15:53:00.322348 | E8601TMw.d | 
| Time with time zone | hh:mm:ss.ffffff+|-hh:mm | 15:53:00+05:00 | E8601TZw.d | 
| Convert to local time with time zone | hh:mm:ss.ffffff+|-hh:mm | 15:53:00+05:00 | E8601LZw.d | 
| Datetime | yyyy-mm-ddThh:mm:ss.ffffff | 2008-09-15T15:53:00 | E8601DTw.d | 
| Datetime with time zone | yyyy-mm-ddThh:mm:ss.nnnnnn+|-hh:mm | 2008-09-15T15:53:00+05:00 | E8601DZw.d | 
| Write the date from a datetime | 
yyyy-mm-dd | 
  2008-09-15 | E8601DNw. | 
An asterisk ( * ) used in place of a date or time formatted value that is out-of-range.
| Writing ISO 8601 Duration, Datetime, and Interval Values | 
SAS writes duration, datetime, and interval values from character data using these formats:
An omitted component can be represented by a hyphen ( - ) or an x in the extended datetime form yyyy-mm-ddThh:mm:ss and in the extended duration form Pyyyy-mm-ddThh:mm:ss.
Omitted components in the durations form PnYnMnDTnHnMnS are dropped, they do not contain a hyphen or x. For example, P2mT4H.
The following formats write omitted components that use the hyphen and the x:
Datetime values with omitted components that are formatted with either the $N8601B format or the $N8601BA format are formatted in the extended notation using the hyphen for omitted components to ensure accurate data. For example, when the month is an omitted component, the value 2008---15 is written and not 2008-15.
The extended notation with hyphens is also used in place of the basic notation if a duration is formatted by using the $N8601BA format. Using the same date, P2008---15 is written and not P2008-15.
Duration, datetime, or interval values can be truncated when one or more lower order values is 0 or is not significant. When SAS writes a truncated value using the formats $N8601B, $N8601BA, $N8601E, and $N8601EA, the display of the value stops at the last non-missing component.
When you format a truncated value by using either the $N8601H format or the $N8601EH format, the lower order components are written with a hyphen. When you format a truncated value by using the $N8601X format or the $N8601EX format, the lower order components are written with an x.
The following examples show truncated values:
When a value for a duration component is greater than the largest standard value for a component, SAS normalizes the component except when the duration component is a single component. The following table shows examples of normalized duration components:
| Duration | Extended Normalized Duration | 
|---|---|
p3y13m  | 
  
p0004-01  | 
pt24h24m65s  | 
  
P----01T-:25:05  | 
p3y13mT24h61m  | 
  
P0004-01-01T01:01  | 
p0004-13  | 
  
p0005-01  | 
p0003-02-61T15:61:61  | 
  
P0003-04-01T16:02:01  | 
p13m  | 
  
P13M  | 
If a component contains the largest value, such as 60 for minutes or seconds, SAS normalizes the value and replaces the value with a hyphen. For example, pT12:60:13 becomes PT13:-:13 .
Thirty days is used to normalize a month.
Dates and times in a datetime value that are greater than the standard value for the component are not normalized. They produce an error.
Ending components can contain a fraction that consists of a period or a comma, followed by one to three digits. The following examples show the use of fractions in duration, datetime, and interval values:
Copyright © 2011 by SAS Institute Inc., Cary, NC, USA. All rights reserved.