Loading...
--- Libc/Libc-262/stdtime/strptime.3
+++ Libc/Libc-498/stdtime/strptime.3
@@ -23,29 +23,43 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/lib/libc/stdtime/strptime.3,v 1.9.2.7 2001/12/14 18:33:59 ru Exp $
+.\" $FreeBSD: src/lib/libc/stdtime/strptime.3,v 1.23 2004/07/02 23:52:12 ru Exp $
.\" "
-.Dd May 8, 1997
+.Dd January 4, 2003
.Dt STRPTIME 3
.Os
.Sh NAME
-.Nm strptime
+.Nm strptime ,
+.Nm strptime_l
.Nd parse date and time string
.Sh LIBRARY
.Lb libc
.Sh SYNOPSIS
.In time.h
.Ft char *
-.Fn strptime "const char *buf" "const char *format" "struct tm *timeptr"
+.Fo strptime
+.Fa "const char *restrict buf"
+.Fa "const char *restrict format"
+.Fa "struct tm *restrict tm"
+.Fc
+.In time.h
+.In xlocale.h
+.Ft char *
+.Fo strptime_l
+.Fa "const char *restrict buf"
+.Fa "const char *restrict format"
+.Fa "struct tm *restrict tm"
+.Fa "locale_t loc"
+.Fc
.Sh DESCRIPTION
The
.Fn strptime
function parses the string in the buffer
-.Fa buf
+.Fa buf ,
according to the string pointed to by
.Fa format ,
and fills in the elements of the structure pointed to by
-.Fa timeptr .
+.Fa tm .
The resulting values will be relative to the local time zone.
Thus, it can be considered the reverse operation of
.Xr strftime 3 .
@@ -67,6 +81,37 @@
are now interpreted as beginning at 1969 per POSIX requirements.
Years 69-00 are interpreted in the 20th century (1969-2000), years
01-68 in the 21st century (2001-2068).
+.Pp
+If the
+.Fa format
+string does not contain enough conversion specifications to completely
+specify the resulting
+.Vt struct tm ,
+the unspecified members of
+.Va tm
+are left untouched.
+For example, if
+.Fa format
+is
+.Dq Li "%H:%M:%S" ,
+only
+.Va tm_hour ,
+.Va tm_sec
+and
+.Va tm_min
+will be modified.
+If time relative to today is desired, initialize the
+.Fa tm
+structure with today's date before passing it to
+.Fn strptime .
+.Pp
+While the
+.Fn strptime
+function uses the current locale, the
+.Fn strptime_l
+function may be passed a locale directly. See
+.Xr xlocale 3
+for more information.
.Sh RETURN VALUES
Upon successful completion,
.Fn strptime
@@ -77,10 +122,16 @@
It returns
.Dv NULL
if one of the conversions failed.
+.Sh LEGACY DESCRIPTION
+In legacy mode, the
+.Fa %Y
+format specifier expects exactly 4 digits (leaving any trailing digits for the
+next specifier).
.Sh SEE ALSO
.Xr date 1 ,
.Xr scanf 3 ,
-.Xr strftime 3
+.Xr strftime 3 ,
+.Xr xlocale 3
.Sh AUTHORS
The
.Fn strptime
@@ -134,6 +185,13 @@
format specifier only accepts time zone abbreviations of the local time zone,
or the value "GMT".
This limitation is because of ambiguity due to of the over loading of time
-zone abbreviations. One such example is
+zone abbreviations.
+One such example is
.Fa EST
which is both Eastern Standard Time and Eastern Australia Summer Time.
+.Pp
+The
+.Fn strptime
+function does not correctly handle multibyte characters in the
+.Fa format
+argument.