E8601LZw.d Informat

Reads Coordinated Universal Time (UTC) values that are specified using the ISO 8601 extended notation hh:mm:ss+|–hh:mm.<fffff> or hh:mm:ss.<fffff>Z and converts the values to the local time.
Categories: Date and Time

ISO 8601

Alignment: left
Alias: IS8601LZ
Supports: ISO 8601 Element 5.3.1.1, complete representation

Syntax

E8601LZw.d

Syntax Description

w
specifies the width of the input field.
Default:14
Range:9–20
Requirement:To read a time with the Z time zone indicator, the width of the input field must be 9 if data follows on the same line of data.
d
specifies the number of digits to the right of the decimal point in the value for the lowest-order component. This argument is optional.
Default:0
Range:0–6

Details

UTC values specify a time and a time zone based on the zero meridian in Greenwich, England. The E8601LZ informat reads UTC time values that are specified in one of the following ISO 8601 extended time notations and returns a SAS time value for the local time:
  • hh:mm:ss.<ffffff>+|–hh:mm
  • hh:mm:ss.<ffffff>Z
hh
is a two-digit hour (zero padded) between 00 and 23.
mm
is a two-digit minute (zero padded) between 00 and 59.
ss
is a two-digit second (zero padded) between 00 and 59.
ffffff
are optional fractional seconds, with a precision of up to six digits, where each digit is between 0 and 9.
+|–hh:mm
is an hour and minute signed offset from zero meridian. Note that the offset must be +|–hh:mm (that is, + or – and five characters).
Use the + for time zones east of the zero meridian, and use the – for time zones west of the zero meridian.
Restriction: The shorter form +|–hh is not supported.
Z
indicates zero meridian or +00:00 UTC time.
When SAS reads a UTC time by using the E8601LZ informat and the adjusted time is greater than 24:00:00 or less than 00:00:00, SAS adjusts the value so that the time is between 00:00:00 and 24:00:00. For example, if SAS reads the UTC time 23:43:44-05:00 by using the E8601LZ informat, SAS adds five hours to the time so that the value is 28:43:44, and then makes the time adjustment. The value stored represents the time 04:43:44+00:00.

Example

input elz e8601lz.;
Data Line
Result
----+----1----+
09:13:21+02:00
26001
23:43:44Z
85424