| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- .\" generated by cd2nroff 0.1 from curl_getdate.md
- .TH curl_getdate 3 "2025-01-17" libcurl
- .SH NAME
- curl_getdate \- convert date string to number of seconds
- .SH SYNOPSIS
- .nf
- #include <curl/curl.h>
- time_t curl_getdate(const char *datestring, const time_t *now);
- .fi
- .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.
- This function works with valid dates and does not always detect and reject
- wrong dates, such as February 30.
- .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:
- .IP "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.
- If the year appears to be below 100 (two\-digit), any year after 70 is assumed
- to be 1900 + the given year. All others are 2000 + the given year.
- .IP "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. If there is no time given in a provided date
- string, 00:00:00 is assumed. Example: 18:19:21.
- .IP "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.
- .IP "day of the week items"
- Specifies a day of the week. Days of the week may be spelled out in full
- (using English): \(aqSunday\(aq, \(aqMonday\(aq, etc or they may be abbreviated to their
- first three letters. This is usually not info that adds anything.
- .IP "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.
- .SH PROTOCOLS
- This functionality affects all supported protocols
- .SH EXAMPLE
- .nf
- int main(void)
- {
- time_t t;
- t = curl_getdate("Sun, 06 Nov 1994 08:49:37 GMT", NULL);
- t = curl_getdate("Sunday, 06-Nov-94 08:49:37 GMT", NULL);
- t = curl_getdate("Sun Nov 6 08:49:37 1994", NULL);
- t = curl_getdate("06 Nov 1994 08:49:37 GMT", NULL);
- t = curl_getdate("06-Nov-94 08:49:37 GMT", NULL);
- t = curl_getdate("Nov 6 08:49:37 1994", NULL);
- t = curl_getdate("06 Nov 1994 08:49:37", NULL);
- t = curl_getdate("06-Nov-94 08:49:37", NULL);
- t = curl_getdate("1994 Nov 6 08:49:37", NULL);
- t = curl_getdate("GMT 08:49:37 06-Nov-94 Sunday", NULL);
- t = curl_getdate("94 6 Nov 08:49:37", NULL);
- t = curl_getdate("1994 Nov 6", NULL);
- t = curl_getdate("06-Nov-94", NULL);
- t = curl_getdate("Sun Nov 6 94", NULL);
- t = curl_getdate("1994.Nov.6", NULL);
- t = curl_getdate("Sun/Nov/6/94/GMT", NULL);
- t = curl_getdate("Sun, 06 Nov 1994 08:49:37 CET", NULL);
- t = curl_getdate("06 Nov 1994 08:49:37 EST", NULL);
- t = curl_getdate("Sun, 12 Sep 2004 15:05:58 -0700", NULL);
- t = curl_getdate("Sat, 11 Sep 2004 21:32:11 +0200", NULL);
- t = curl_getdate("20040912 15:05:58 -0700", NULL);
- t = curl_getdate("20040911 +0200", NULL);
- }
- .fi
- .SH STANDARDS
- This parser handles 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\(aqs \fIasctime()\fP format.
- These formats are the only ones RFC 7231 says HTTP applications may use.
- .SH AVAILABILITY
- Added in curl 7.1
- .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 returns \-1.
- On systems with an unsigned 32\-bit time_t: if the year is larger than 2106 or
- less than 1970, this function returns \-1.
- On systems with 64\-bit time_t: if the year is less than 1583, this function
- returns \-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 CURLOPT_TIMECONDITION (3),
- .BR CURLOPT_TIMEVALUE (3),
- .BR curl_easy_escape (3),
- .BR curl_easy_unescape (3)
|