mirror of
https://github.com/curl/curl.git
synced 2024-12-27 06:59:43 +08:00
1c39128d97
Make curl_getdate() handle dates before 1970 as well (returning negative values). Make test 517 test dates for 64 bit time_t. This fixes bug (3) mentioned in #2238 Closes #2250
111 lines
4.3 KiB
Groff
111 lines
4.3 KiB
Groff
.\" **************************************************************************
|
|
.\" * _ _ ____ _
|
|
.\" * Project ___| | | | _ \| |
|
|
.\" * / __| | | | |_) | |
|
|
.\" * | (__| |_| | _ <| |___
|
|
.\" * \___|\___/|_| \_\_____|
|
|
.\" *
|
|
.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
.\" *
|
|
.\" * This software is licensed as described in the file COPYING, which
|
|
.\" * you should have received as part of this distribution. The terms
|
|
.\" * are also available at https://curl.haxx.se/docs/copyright.html.
|
|
.\" *
|
|
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
.\" * copies of the Software, and permit persons to whom the Software is
|
|
.\" * furnished to do so, under the terms of the COPYING file.
|
|
.\" *
|
|
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
.\" * KIND, either express or implied.
|
|
.\" *
|
|
.\" **************************************************************************
|
|
.TH curl_getdate 3 "12 Aug 2005" "libcurl 7.0" "libcurl Manual"
|
|
.SH NAME
|
|
curl_getdate - Convert a date string to number of seconds
|
|
.SH SYNOPSIS
|
|
.B #include <curl/curl.h>
|
|
.sp
|
|
.BI "time_t curl_getdate(char *" datestring ", time_t *"now " );"
|
|
.ad
|
|
.SH DESCRIPTION
|
|
\fIcurl_getdate(3)\fP returns the number of seconds since the Epoch, January
|
|
1st 1970 00:00:00 in the UTC time zone, for the date and time that the
|
|
\fIdatestring\fP parameter specifies. The \fInow\fP parameter is not used,
|
|
pass a NULL there.
|
|
.SH PARSING DATES AND TIMES
|
|
A "date" is a string containing several items separated by whitespace. The
|
|
order of the items is immaterial. A date string may contain many flavors of
|
|
items:
|
|
.TP 0.8i
|
|
.B calendar date items
|
|
Can be specified several ways. Month names can only be three-letter english
|
|
abbreviations, numbers can be zero-prefixed and the year may use 2 or 4 digits.
|
|
Examples: 06 Nov 1994, 06-Nov-94 and Nov-94 6.
|
|
.TP
|
|
.B time of the day items
|
|
This string specifies the time on a given day. You must specify it with 6
|
|
digits with two colons: HH:MM:SS. To not include the time in a date string,
|
|
will make the function assume 00:00:00. Example: 18:19:21.
|
|
.TP
|
|
.B time zone items
|
|
Specifies international time zone. There are a few acronyms supported, but in
|
|
general you should instead use the specific relative time compared to
|
|
UTC. Supported formats include: -1200, MST, +0100.
|
|
.TP
|
|
.B day of the week items
|
|
Specifies a day of the week. Days of the week may be spelled out in full
|
|
(using english): `Sunday', `Monday', etc or they may be abbreviated to their
|
|
first three letters. This is usually not info that adds anything.
|
|
.TP
|
|
.B pure numbers
|
|
If a decimal number of the form YYYYMMDD appears, then YYYY is read as the
|
|
year, MM as the month number and DD as the day of the month, for the specified
|
|
calendar date.
|
|
.PP
|
|
.SH EXAMPLES
|
|
.nf
|
|
Sun, 06 Nov 1994 08:49:37 GMT
|
|
Sunday, 06-Nov-94 08:49:37 GMT
|
|
Sun Nov 6 08:49:37 1994
|
|
06 Nov 1994 08:49:37 GMT
|
|
06-Nov-94 08:49:37 GMT
|
|
Nov 6 08:49:37 1994
|
|
06 Nov 1994 08:49:37
|
|
06-Nov-94 08:49:37
|
|
1994 Nov 6 08:49:37
|
|
GMT 08:49:37 06-Nov-94 Sunday
|
|
94 6 Nov 08:49:37
|
|
1994 Nov 6
|
|
06-Nov-94
|
|
Sun Nov 6 94
|
|
1994.Nov.6
|
|
Sun/Nov/6/94/GMT
|
|
Sun, 06 Nov 1994 08:49:37 CET
|
|
06 Nov 1994 08:49:37 EST
|
|
Sun, 12 Sep 2004 15:05:58 -0700
|
|
Sat, 11 Sep 2004 21:32:11 +0200
|
|
20040912 15:05:58 -0700
|
|
20040911 +0200
|
|
.fi
|
|
.SH STANDARDS
|
|
This parser was written to handle date formats specified in RFC 822 (including
|
|
the update in RFC 1123) using time zone name or time zone delta and RFC 850
|
|
(obsoleted by RFC 1036) and ANSI C's asctime() format. These formats are the
|
|
only ones RFC 7231 says HTTP applications may use.
|
|
.SH RETURN VALUE
|
|
This function returns -1 when it fails to parse the date string. Otherwise it
|
|
returns the number of seconds as described.
|
|
|
|
On systems with a signed 32 bit time_t: if the year is larger than 2037 or
|
|
less than 1903, this function will return -1.
|
|
|
|
On systems with an unsigned 32 bit time_t: if the year is larger than 2106 or
|
|
less than 1970, this function will return -1.
|
|
|
|
On systems with 64 bit time_t: if the year is less than 1583, this function
|
|
will return -1. (The Gregorian calendar was first introduced 1582 so no "real"
|
|
dates in this way of doing dates existed before then.)
|
|
.SH "SEE ALSO"
|
|
.BR curl_easy_escape "(3), " curl_easy_unescape "(3), "
|
|
.BR CURLOPT_TIMECONDITION "(3), " CURLOPT_TIMEVALUE "(3) "
|