Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > S

strptime(3C)

HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

NAME

strptime() — date and time conversion

SYNOPSIS

#include <time.h>

char *strptime(const char *buf, const char *format, struct tm *tm);

DESCRIPTION

The strptime() function converts the character string pointed to by buf to values which are stored in the tm structure pointed to by tm, using the format specified by format.

The format is composed of zero or more directives. 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 % nor a white-space character); or a conversion specification. Each conversion specification is composed of a % character followed by a conversion character which specifies the replacement required. There must be whitespace or other non-alphanumeric characters between any two conversion specifications. The following conversion specifications are supported:

%a

is the day of week, using the locale's weekday names; either the abbreviated or full name may be specified.

%A

is the same as %a.

%b

is the month, using the locale's month names; either the abbreviated or full name may be specified.

%B

is the same as %b.

%c

is the date and time, using locale's date and time format (for example, as %x %X).

%C

is the century number [0,99]; leading zeros are permitted but not required.

%d

is the day of month [1,31]; leading zeros are permitted but not required.

%D

is the date as %m/%d/%y.

%e

is the same as %d.

%h

is the same as %b.

%H

is the hour (24-hour clock) [0,23]; leading zeros are permitted but not required.

%I

is the hour (12-hour clock) [1,12]; leading zeros are permitted but not required.

%j

is the day number of the year [1,366]; leading zeros are permitted but not required.

%m

is the month number [1,12]; leading zeros are permitted but not required.

%M

is the minute [0,59]; leading zeros are permitted but not required.

%n

is any whitespace.

%p

is the locale's equivalent of a.m or p.m.

%r

is the 12-hour clock time in AM/PM notation equivalent to %I:%M:%S %p format or the format specified in t_fmt_ampm of the LC_TIME portion of the current locale, if it is not empty. Otherwise, returns NULL.

%R

is the time as %H:%M.

%S

is the seconds [0,60]; leading zeros are permitted but not required.

%t

is any whitespace.

%T

is the time as %H:%M:%S.

%U

is the week number of the year (Sunday as the first day of the week) as a decimal number [0,53]; leading zeros are permitted but not required. All days in a year preceding the first Sunday are considered to be in week 0.

%w

is the weekday as a decimal number [0,6], with 0 representing Sunday; leading zeros are permitted but not required.

%W

is the week number of the year (Monday as the first day of the week) as a decimal number [0,53]; leading zeros are permitted but not required. All days in a year preceding the first Monday are considered to be in week 0.

%x

is the date, using the locale's date format.

%X

is the time, using the locale's time format.

%y

is the year within the century [0,99]; leading zeros are permitted but not required. If no century has been specified (for example, via the %C directive), the 20th century (1900s) is assumed for inputs in the range 69-99, and the 21st century (2000s) is assumed for inputs in the range 00-68.

%Y

is the year, including the century (for example, 1992).

%%

is replaced by %.

Modified Directives

Some directives can be modified by the E and O modifier characters to indicate that an alternative format or specification should be used rather than the one normally used by the unmodified directive. If the alternative format or specification does not exist in the current locale, the behavior will be as if the unmodified directive were used.

%Ec

is the locale's alternative appropriate date and time representation.

%EC

is the name of the base year (period) in the locale's alternative representation.

%Ex

is the locale's alternative date representation.

%EX

is the locale's alternative time representation.

%Ey

is the offset from %EC (year only) in the locale's alternative representation.

%EY

is the full alternative year representation.

%Od

is the day of the month using the locale's alternative numeric symbols; leading zeros are permitted by not required.

%Oe

is the same as %Od.

%OH

is the hour (24-hour clock) using the locale's alternative numeric symbols.

%OI

is the hour (12-hour clock) using the locale's alternative numeric symbols.

%Om

is the month using the locale's alternative numeric symbols.

%OM

is the minutes using the locale's alternative numeric symbols.

%OS

is the seconds using the locale's alternative numeric symbols.

%OU

is the week number of the year (Sunday as the first day of the week) using the locale's alternative numeric symbols.

%Ow

is the number of the weekday (Sunday=0) using the locale's alternative numeric symbols.

%OW

is the week number of the year (Monday as the first day of the week) using the locale's alternative numeric symbols.

%Oy

is the year (offset from %C) in the locale's alternative representation and using the locale's alternative numeric symbols.

A directive composed of whitespace characters is executed by scanning input up to the first character that is not whitespace (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, whitespace characters or any combination thereof 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 in buf such as month or weekday names. If no match is found, strptime() fails and no more characters are scanned. If the date specified exceeds the maximum time representable by the time_t data type in 32-bit HP-UX (which represents Tuesday January 19 03:14:07 UTC, 2038) or if the date exceeds the maximum date supported in 64-bit HP-UX (which is Friday December 31 23:59:59 UTC, 9999), strptime() fails and a null pointer is returned.

EXTERNAL INFLUENCES

Environment Variables

LC_NUMERIC may define the alternative symbols (alt_digit; see localedef(4)) used by the %O modifier. The alt_digit definition has precedence over alt_digits (LC_TIME). Support for alt_digit may be removed in a future release of HP-UX.

LC_TIME determines the characters to be interpreted for those directives described above as being from the locale.

LC_CTYPE determines the interpretation of the bytes within format as single- and/or multibyte characters.

International Code Set Support

Single- and multibyte character code sets are supported.

RETURN VALUE

Upon successful completion, strptime() returns a pointer to the character following the last character parsed. Otherwise, a null pointer is returned.

EXAMPLES

The following program segment uses strptime() to convert the string (first argument) to values according to the format specified in the second argument.

struct tm t; setlocale(LC_TIME, "en_US.iso88591"); strptime("1:04:23 PM on 10/6/92", "%I:%M:%S %p on %D", &t);

The converted value is stored in the structure t as follows:

t.tm_sec = 23 t.tm_min = 4 t.tm_hour = 13 t.tm_mday = 6 t.tm_mon = 9 t.tm_year = 92 t.tm_wday = 2 t.tm_yday = 279 t.tm_isdst = 1

AUTHOR

strptime() was developed by OSF and HP.

STANDARDS CONFORMANCE

strptime: XPG4

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.