[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

Technical Reference: Base Operating System and Extensions , Volume 2


strptime Subroutine

Purpose

Converts a character string to a time value.

Library

Standard C Library (libc.a)

Syntax

#include <time.h>


char *strptime ( Buf Format Tm)
const char *Buf, *Format;
struct tm *Tm;

Description

The strptime subroutine converts the characters in the Buf parameter to values that are stored in the Tm structure, using the format specified by the Format parameter.

Parameters


Buf Contains the character string to be converted by the strptime subroutine.
Format Contains format specifiers for the strptime subroutine. The Format parameter contains 0 or more specifiers. Each specifier is composed of one of the following elements:
  • One or more white-space characters
  • An ordinary character (neither % [percent sign] nor a white-space character)
  • A format specifier

Note: If more than one format specifier is present, they must be separated by white space or a non-% [percent sign]/non-alphanumeric ordinary character.

The LC_TIME category defines the locale values for the format specifiers. The following format specifiers are supported:

%a Represents the weekday name, either abbreviated as specified by the abday statement or full as specified by the day statement.
%A Represents the weekday name, either abbreviated as specified by the abday statement or full as specified by the day statement.
%b Represents the month name, either abbreviated as specified by the abmon statement or full as specified by the month statement.
%B Represents the month name, either abbreviated as specified by the abmon statement or full as specified by the month statement.
%c Represents the date and time format defined by the d_t_fmt statement in the LC_TIME category.
%C Represents the century number (0 through 99); leading zeros are permitted but not required.
%d Represents the day of the month as a decimal number (01 to 31).
%D Represents the date in %m/%d/%y format (for example, 01/31/91).
%e Represents the day of the month as a decimal number (01 to 31).
%E Represents the combined alternate era year and name, respectively, in %o %N format.
%h Represents the month name, either abbreviated as specified by the abmon statement or full as specified by the month statement.
%H Represents the 24-hour-clock hour as a decimal number (00 to 23).
%I Represents the 12-hour-clock hour as a decimal number (01 to 12).
%j Represents the day of the year as a decimal number (001 to 366).
%m Represents the month of the year as a decimal number (01 to 12).
%M Represents the minutes of the hour as a decimal number (00 to 59).
%n Represents any white space.
%N Represents the alternate era name.
%o Represents the alternate era year.
%p Represents the a.m. or p.m. string defined by the am_pm statement in the LC_TIME category.
%r Represents 12-hour-clock time with a.m./p.m. notation as defined by the t_fmt_ampm statement, usually in the format %I:%M:%S %p.
%S Represents the seconds of the minute as a decimal number (00 to 61). The decimal number range of 00 to 61 provides for leap seconds.
%t Represents any white space.
%T Represents 24-hour-clock time in the format %H:%M:%S (for example, 16:55:15).
%U Represents the week of the year as a decimal number (00 to 53). Sunday, or its equivalent as defined by the day statement, is considered the first day of the week for calculating the value of this field descriptor.
%w Represents the day of the week as a decimal number (0 to 6). Sunday, or its equivalent as defined by the day statement in the LC_TIME category, is considered to be 0 for calculating the value of this field descriptor.
%W Represents the week of the year as a decimal number (00 to 53). Monday, or its equivalent as defined by the day statement in the LC_TIME category, is considered the first day of the week for calculating the value of this field descriptor.
%x Represents the date format defined by the d_fmt statement in the LC_TIME category.
%X Represents the time format defined by the t_fmt statement in the LC_TIME category.
%y Represents the year within century.

Note: When the environment variable XPG_TIME_FMT=ON, %y is the year within the century. When a century is not otherwise specified, values in the range 69-99 refer to years in the twentieth century (1969 to 1999, inclusive); values in the range 00-68 refer to 2000 to 2068, inclusive.
%Y Represents the year as a decimal number (for example, 1989).
%Z Represents the time-zone name, if one can be determined (for example, EST). No characters are displayed if a time zone cannot be determined.
%% Specifies a % (percent sign) character.

Some format specifiers can be modified by the E and O modifier characters to indicate an alternative format or specification. If the alternative format or specification does not exist in the current locale, the behavior will be as if the unmodified format specifier were used. The following modified format specifiers are supported:

%Ec Represents the locale's alternative appropriate date and time as defined by the era_d_t_fmt statement.
%EC Represents the base year (or other time period) in the locale's alternative form as defined by the era statement under the era_name category of the current era.
%Ex Represents the alternative date as defined by the era_d_fmt statement.
%EX Represents the locale's alternative time as defined by the era_t_fmt statement.
%Ey Represents the offset from the %EC format specifier (year only) in the locale's alternative form.
%EY Represents the full alternative-year format.
%Od Represents the month using the locale's alternative numeric symbols. Leading 0's are permitted but not required.
%Oe Represents the month using the locale's alternative numeric symbols. Leading 0's are permitted but not required.
%OH Represents the hour in 24-hour-clock time using the locale's alternative numeric symbols.
%OI Represents the hour in 12-hour-clock time using the locale's alternative numeric symbols.
%Om Represents the month using the locale's alternative numeric symbols.
%OM Represents the minutes using the locale's alternative numeric symbols.
%OS Represents the seconds using the locale's alternative numeric symbols.
%OU Represents the week number of the year using the locale's alternative numeric symbols. Sunday is considered the first day of the week. Use the rules corresponding to the %U format specifier.
%Ow Represents the day of the week using the locale's alternative numeric symbols. Sunday is considered the first day of the week.
%OW Represents the week number of the year using the locale's alternative numeric symbols. Monday is considered the first day of the week. Use the rules corresponding to the %W format specifier.
%Oy Represents the year (offset from %C) using the locale's alternative numeric symbols.

A format specification consisting of white-space characters is performed by reading input until the first nonwhite-space character (which is not read) or up to no more characters can be read.

A format specification consisting of an ordinary character is performed by reading the next character from the Buf parameter. If this character differs from the character comprising the directive, the directive fails and the differing character and any characters following it remain unread. Case is ignored when matching Buf items, such as month or weekday names.

A series of directives composed of %n format specifiers, %t format specifiers, white-space characters, or any combination of the three items is processed by reading up to the first character that is not white space (which remains unread), or until no more characters can be read.

Tm Specifies the structure to contain the output of the strptime subroutine. If a conversion fails, the contents of the Tm structure are undefined.

Return Values

If successful, the strptime subroutine returns a pointer to the character following the last character parsed. Otherwise, a null pointer is returned.

Implementation Specifics

This subroutine is part of Base Operating System (BOS) Runtime.

Related Information

The scanf (scanf, fscanf, sscanf, or wsscanf Subroutine) subroutine, strfmon Subroutine, strftime (strftime Subroutine) subroutine, time subroutine, wcsftime (wcsftime Subroutine) subroutine.

LC_TIME Category in the Locale Definition Source File Format in AIX 5L Version 5.1 Files Reference.

National Language Support Overview for Programming, Understanding Time and Monetary Formatting Subroutines, Subroutines Overview in AIX 5L Version 5.1 General Programming Concepts: Writing and Debugging Programs.


[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]