strptime(3C) SDK R4.11 strptime(3C)
NAME
strptime - date and time conversion
SYNOPSIS
#include <time.h>
char *strptime(const char *buf, const char *format, struct tm *tm);
DESCRIPTION
strptime converts the character string pointed to by buf to values
stored in the structure pointed to by tm, using the format specified
by format.
format is composed of zero or more directives where each directive is
composed of one of the following:
one or more white-space characters as specified by the isspace
function,
an ordinary character (neither % or non white-space
character), or
a conversion specification.
Conversion Specifications
Each conversion specification is composed of a % character followed
by an optional modifier and then by a conversion character which
specifies the replacement required. Usually, there should be white-
space or other non-alphanumeric characters between any two conversion
specifications. The following conversion specifications are
supported:
%a locale's full or abbreviated weekday name
%A same as %a
%b locale's full or abbreviated month name
%B same as %b
%c locale's appropriate date and time representation (for
example, %x %X)
%C number of the century (00 - 99), leading zeros are optional
%d day of month ( 01 - 31 ), leading zeros are optional
%D date as %m/%d/%y
%e same as %d
%h same as %b
%H hour ( 00 - 23 ), leading zeros are optional
%I hour ( 01 - 12 ), leading zeros are optional
%j day number of year ( 001 - 366 ), leading zeros are optional
%m month number ( 01 - 12 ), leading zeros are optional
%M minute ( 00 - 59 ), leading zeros are optional
%N date and time
%n any white space
%p locale's equivalent of either AM or PM
%r locale's time with 12-hour clock
%R time as %H:%M
%S seconds ( 00 - 61 ), allows for leap seconds, leading zeros
are optional
%t any white space
%T time as %H:%M:%S
%U week number of year ( 00 - 53 ), Sunday is the first day of
week 1, leading zeros are optional
%w weekday number ( 0 - 6 ), Sunday = 0, leading zeros are
optional
%W week number of year ( 00 - 53 ), Monday is the first day of
week 1, leading zeros are optional
%x locale's appropriate date representation
%X locale's appropriate time representation
%y year within century ( 00 - 99 ), leading zeros are optional
%Y year as ccyy (for example, 1986)
%% same as %
Modified Conversion Specifiers
Some directives can be modified by the O and E modifier characters to
indicate that an alternative format or specification should be used
instead of the normal directives. %O is the modifier used in
association with the following conversion specifiers to specify that
the locale's alternative digits be matched. The second letter has a
similar effect as the letter excluding the O modifier.
%Od the day of the month, using the locale's alternative digit
symbols filled as needed with leading zeros if available,
otherwise, filled with spaces.
%Oe same as %Od
%OH the hour (24 hour clock), using the locale's alternative digit
symbols.
%OI the hour (12 hour clock), using the locale's alternative digit
symbols.
%Om the month using the locale's alternative digit symbols.
%OM the minutes using the locale's alternative digit symbols.
%OS the seconds using the locale's alternative digit symbols.
%OU the week number using the locale's alternative digit symbols
(see rules for %U).
%Ow the weekday as a number using the locale's alternative digit
symbols (Sunday = 0).
%OW the week number using the locale's alternative digit symbols
(see rules for %W).
%Oy the year (offset from %C) using the locale's alternative digit
symbols.
%E is a modifier used to match the date using different era
information as specified in the LCTIME locale data file.
%Ec the locale's alternative representation for date and time.
%EC the locale's alternative representation for the name of the base
year (period).
%Ex the locale's alternative representation for the date.
%EX the locale's alternative representation for the time.
%Ey the offset from %EC in the locale's alternative representation
(year only).
%EY the full alternative year representation.
A directive comprised of white-space characters is executed by
scanning input up to the first character that is not white space
which remains unscanned, or until no more characters can be scanned.
A directive that is an ordinary character is executed by scanning the
next character from the buffer. If the character scanned from the
buffer differs from the one comprising the directive, the directive
fails, and the differing and subsequent characters remain unscanned.
A series of directives composed of %n, %t, white-space characters or
any combination is executed by scanning up to the first character
that is not white space which remains unscanned, or until no more
characters can be scanned.
Any other conversion specification is executed by scanning characters
until a character matching the next directive is scanned, or until no
more characters can be scanned. These characters, except the one
matching the next directive, are then compared to the locale values
associated with the conversion specifier. If a match is found,
values for the appropriate tm structure members are set to values
corresponding to the locale information. Case is ignored when
matching items are in buf such as month or weekday names. If no
match is found, strptime fails and no more characters are scanned.
Return Values
Upon successful completion, strptime returns a pointer to the
character following the last character parsed. Otherwise, it returns
a null pointer. If not implemented, strptime returns a null pointer
and and sets errno to ENOSYS.
USAGE
Several ``same as'' format and the special processing of white-space
characters are provided in order to ease the use of identical format
strings for strftime and strptime.
REFERENCES
strftime(3C)
Licensed material--property of copyright holder(s)