strptime(3C) 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)
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
Copyright 1994 Novell, Inc. Page 1
strptime(3C) strptime(3C)
%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.
Copyright 1994 Novell, Inc. Page 2
strptime(3C) strptime(3C)
%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
Copyright 1994 Novell, Inc. Page 3
strptime(3C) strptime(3C)
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), strftime(4)
Copyright 1994 Novell, Inc. Page 4