STRPTIME(3) | Library Functions Manual | STRPTIME(3) |
strptime
—
#include <time.h>
char *
strptime
(const
char *buf, const char
*format, struct tm
*tm);
strptime
function parses the string
buf according to the specified
format and fills matching data into the structure
tm (described in
mktime(3)).
The format string consists of zero or more directives. A directive is composed of either one or more whitespace characters as defined by isspace(3), an ordinary character (neither ‘%’ nor a whitespace), or a conversion specification. A conversion specification consists of a percent sign (‘%’) followed by one or two conversion characters which specify the replacement required. There must be whitespace or other non-alphanumeric characters between any two conversion specifications.
The LC_TIME
category defines the locale
values for the conversion specifications. The following conversion
specifications are supported:
%a
%A
%a
.%b
%B
%b
.%c
%C
%d
%D
%e
%d
.%F
%g
%G
%h
%b
.%H
%I
%j
%k
%H
.%l
%I
.%m
%M
%n
%p
%r
%R
%S
%s
%t
%T
%u
%U
%V
%w
%W
%x
%X
%y
%Y
%z
UTC
’) specified as:
“[+-]hhmm”, “[+-]hh:mm”, or
“[+-]hh”; ‘UTC
’
specified as: “GMT” (‘Greenwich Mean
Time
’), “UT”
(‘Universal Time
’), or
“Z” (‘Zulu Time
’); a
three character US timezone specified as: “EDT”,
“EST”, “CDT”, “CST”,
“MDT”, “MST”, “PDT”, or
“PST”, with the first letter standing for
‘Eastern
’ (“E”),
‘Central
’ (“C”),
‘Mountain
’ (“M”) or
‘Pacific
’ (“P”), and
the second letter standing for
‘Daylight
’ (“D” or
summer) time or ‘Standard
’
(“S”) time; a single letter military timezone specified as:
“A” through “I” and “K” through
“Y”.%Z
%%
There is no way to specify whether Daylight Saving Time is in
effect when calling strptime
. To use the resulting
tm structure with functions that check the
tm_isdst field, either set it to a negative value,
which will cause mktime(3) to attempt to
divine whether Daylight Saving Time would be in effect for the given time,
or compute the value manually.
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 conversion specification. As
there are currently neither alternative formats nor specifications supported
by the system, the behavior will be as if the unmodified conversion
specification were used.
Case is ignored when matching string items in buf, such as month and weekday names.
strptime
function returns a pointer
to the character following the last character parsed. Otherwise, a null
pointer is returned.
strptime
() function conforms to
X/Open Portability Guide Issue 4, Version 2
(“XPG4.2”).
The ‘%G
’,
‘%g
’,
‘%s
’,
‘%u
’,
‘%V
’,
‘%Y
’, and
‘%Z
’ conversion specifications are
extensions.
%Z
format specifier only accepts timezone
abbreviations of the local timezone, or the value “GMT”. This
limitation is caused by the ambiguity of overloaded timezone abbreviations,
for example EST is both Eastern Standard Time and Eastern Australia Summer
Time.January 21, 2019 | OpenBSD-current |