--- strptime.3.bsdnew 2009-11-14 13:55:44.000000000 -0800 +++ strptime.3 2009-11-14 14:00:22.000000000 -0800 @@ -29,7 +29,8 @@ .Dt STRPTIME 3 .Os .Sh NAME -.Nm strptime +.Nm strptime , +.Nm strptime_l .Nd parse date and time string .Sh LIBRARY .Lb libc @@ -37,19 +38,28 @@ .In time.h .Ft char * .Fo strptime -.Fa "const char * restrict buf" -.Fa "const char * restrict format" -.Fa "struct tm * restrict timeptr" +.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 . @@ -78,7 +88,7 @@ string does not contain enough conversio specify the resulting .Vt struct tm , the unspecified members of -.Va timeptr +.Va tm are left untouched. For example, if .Fa format @@ -91,9 +101,17 @@ and .Va tm_min will be modified. If time relative to today is desired, initialize the -.Fa timeptr +.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 @@ -104,10 +122,16 @@ that has not been required to satisfy th 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 HISTORY The .Fn strptime