diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
| commit | 253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch) | |
| tree | adf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man3/getdate.3 | |
| parent | a9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff) | |
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man3/getdate.3')
| -rw-r--r-- | static/netbsd/man3/getdate.3 | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/static/netbsd/man3/getdate.3 b/static/netbsd/man3/getdate.3 new file mode 100644 index 00000000..f2c9fac9 --- /dev/null +++ b/static/netbsd/man3/getdate.3 @@ -0,0 +1,232 @@ +.\" $NetBSD: getdate.3,v 1.10 2018/02/11 13:28:49 wiz Exp $ +.\" +.\" Copyright (c) 2009, 2011, 2012, The NetBSD Foundation. +.\" All Rights Reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Brian Ginsbach. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd February 7, 2018 +.Dt GETDATE 3 +.Os +.Sh NAME +.Nm getdate , +.Nm getdate_err +.Nd convert user format date and time +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In time.h +.Ft "struct tm *" +.Fo "getdate" +.Fa "const char *str" +.Fc +.Vt extern int getdate_err ; +.Sh DESCRIPTION +The +.Fn getdate +function converts a date or time character string pointed to by +.Fa str +into a static +.Vt tm +structure described in +.Xr tm 3 . +.Pp +The input string is parsed and interpreted using templates. +A text file containing templates is specified by the +environment variable +.Ev DATEMSK . +This should contain the full path to the template file. +Lines in the template file represent acceptable date and/or time +conversion specifications. +These specifications are similar to those given for +.Xr strptime 3 . +The first line in the template file that matches the input string +is used to interpret and convert to internal time format. +.Ss Internal Format Conversion +The following rules apply to converting the input into the internal format. +.Bl -bullet -offset indent +.It +If only the weekday is given, the conversion assumes today when the +weekday matches today or the first future matching weekday. +.It +If only the month and no year is given, the conversion assumes the +current month when the month matches or the first future matching month. +The first day of the month is assumed if no day is given. +.It +If only the year is given, the values of the +.Fa tm_mon , +.Fa tm_mday , +.Fa tm_wday , +.Fa tm_yday , +and +.Fa tm_isdst +members of the returned +.Vt "struct tm" +are unspecified. +.It +If the century is given, but the year within the century is not given, +the conversion assumes the current year. +.It +If no hour, minute, and second are given, the conversion assumes +the current hour, minute, and second. +.It +If no date is given, the conversion assumes today when the given hour +is greater than the current hour and tomorrow when the given hour is less. +.It +If +.Cm \&%Z +is being scanned, then the broken-down time is based on the +current time of the matched timezone and not the current runtime +environment timezone. +.El +.Sh RETURN VALUES +If successful, the +.Fn getdate +function returns a pointer to a static +.Vt tm +structure containing the broken-down time. +Otherwise, a null pointer is returned and +.Va getdate_err +is set to indicate the error. +.Pp +The variable +.Va getdate_err +can have the following values: +.Bl -tag -width NNN +.It 1 +.Ev DATEMSK +environment variable is null or undefined. +.It 2 +Cannot open the template file for reading. +.It 3 +Get file status failed for template file. +.It 4 +Template file is not a regular file. +.It 5 +Encountered an error while reading the template file. +.It 6 +Cannot allocate memory. +.It 7 +Input string does not match any line in the template file. +.It 8 +Input string is invalid (for example, February 31) +or could not be represented in a +.Vt time_t . +.El +.Sh ENVIRONMENT +.Bl -tag -width DATEMSK +.It Ev DATEMSK +The full path to the text file containing the templates +for acceptable date and/or time conversions. +.El +.Sh FILES +.Bl -tag -width DATEMSK +.It Pa /usr/share/examples/getdate/datemsk.template +An example template file that could be specified via the +.Ev DATEMSK +environment variable. +.El +.Sh EXAMPLES +The following example shows the possible contents of a template file: +.Pp +.Bd -literal -offset indent -compact +%m +%A %B %d, %Y, %H:%M:%S +%A +%B +%m/%d/%y %I %p +%d,%m,%Y %H:%M +at %A the %dst of %B in %Y +run job at %I %p, %B %dnd +%A den %d. %B %Y %H.%M Uhr +.Ed +.Pp +The following are examples of valid input for the above template: +.Pp +.Bd -literal -offset indent -compact +10/1/87 4 PM +Friday +Friday September 18, 1987, 10:30:30 +24,9,1986 10:30 +at monday the 1st of december in 1986 +run job at 3 PM, december 2nd +.Ed +.Pp +The following examples show how local data and time specification can be +defined in the template. +.Bl -column -offset indent ".Li Friday 12:00:00" ".Sy Line in Template" +.It Sy "Input String" Ta Sy "Line in Template" +.It Li 11/27/86 Ta Li \&%m/\&%d/\&%y +.It Li 27.11.86 Ta Li \&%d.\&%m.\&%y +.It Li 86-11-27 Ta Li \&%y-\&%m-\&%d +.It Li "Friday 12:00:00" Ta Li "\&%A \&%H:\&%M:\&%S" +.El +.Pp +The following examples illustrate the Internal Format Conversion rules +given that the current date is +.Li "Mon Sep 22 12:19:47 EDT 1986" +and the +.Ev LC_TIME +environment variable is set to the default C locale. +.Bl -column -offset indent ".Li Jan Wed 1989" ".Sy Line in Template" ".Sy Date" +.It Sy Input String Ta Sy Line in Template Ta Sy Date +.It Li Mon Ta Li \&%a Ta Li "Mon Sep 22 12:19:47 EDT 1986" +.It Li Sun Ta Li \&%a Ta Li "Sun Sep 28 12:19:47 EDT 1986" +.It Li Fri Ta Li \&%a Ta Li "Fri Sep 26 12:19:47 EDT 1986" +.It Li September Ta Li \&%B Ta Li "Mon Sep 1 12:19:47 EDT 1986" +.It Li January Ta Li \&%B Ta Li "Thu Jan 1 12:19:47 EST 1987" +.It Li December Ta Li \&%B Ta Li "Mon Dec 1 12:19:47 EST 1986" +.It Li "Sep Mon" Ta Li "\&%b %a" Ta Li "Mon Sep 1 12:19:47 EDT 1986" +.It Li "Jan Fri" Ta Li "\&%b %a" Ta Li "Fri Jan 2 12:19:47 EST 1987" +.It Li "Dec Mon" Ta Li "\&%b %a" Ta Li "Mon Dec 1 12:19:47 EST 1986" +.It Li "Jan Wed 1989" Ta Li "\&%b \&%a \&%Y" Ta Li "Wed Jan 4 12:19:47 EST 1989" +.It Li "Fri 9" Ta Li "\&%a \&%H" Ta Li "Fri Sep 26 09:00:00 EDT 1986" +.It Li "Feb 10:30" Ta Li "\&%b \&%H:\&%S" Ta Li "Sun Feb 1 10:00:30 EST 1987" +.It Li 10:30 Ta Li "\&%H:\&%M" Ta Li "Tue Sep 23 10:30:00 EDT 1986" +.It Li 13:30 Ta Li "\&%H:\&%M" Ta Li "Tue Sep 22 13:30:00 EDT 1986" +.El +.Sh SEE ALSO +.Xr ctime 3 , +.Xr localtime 3 , +.Xr mktime 3 , +.Xr strftime 3 , +.Xr strptime 3 , +.Xr time 3 +.Sh STANDARDS +The +.Fn getdate +function conforms to +.St -p1003.1-2001 . +.Sh HISTORY +The +.Nm +function appeared in +.At V.4 . +.Sh BUGS +The +.Nm +interface is inherently unsafe for multi-threaded programs or libraries, +since it returns a pointer to a static variable and uses a global state +variable. |
