strptime(3C)
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)
-
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 LC_TIME 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 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),
strftime(4)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004