Public Types | |
| typedef ::tm | tm_type |
Public Member Functions | |
| date_time () | |
| Construct null. | |
| date_time (const time_t &t) | |
| date_time (const tm_type &tm, bool check_wday=false) | |
| date_time (unsigned short y, unsigned char mon, unsigned char d, unsigned char h, unsigned char min, unsigned char s) | |
| Construct from given date. Note that y is 2004, not 104, and mon 9is 12 for Dec. | |
| date_time (const std::string &s) | |
| bool | is_null () const |
| Test if null. | |
| bool | operator== (const date_time &rhs) const |
| Equal operator. | |
| bool | operator!= (const date_time &rhs) const |
| Not equal operator. | |
| bool | operator< (const date_time &rhs) const |
| Less operator (null is bottom). | |
| operator time_t () const | |
| date_time | operator+ (int seconds) const |
| date_time & | operator+= (int seconds) |
| date_time | operator- (int seconds) const |
| date_time & | operator-= (int seconds) |
| tm_type | tm () const |
| std::string | string () const |
| std::string | iso_string () const |
Static Public Member Functions | |
| static date_time | now () |
| static void | assert_in_range (const tm_type &v, bool check_wday) |
| static time_t | to_time (const tm_type &tm, bool check_wday) |
| static tm_type | to_tm (const time_t &t) |
| static void | to_tm (const time_t &t, tm_type &tm) |
Static Public Attributes | |
| static const time_t | NULL_TIME |
| null (0) | |
| typedef struct ::tm restcgi::date_time::tm_type |
time structure type
| restcgi::date_time::date_time | ( | const time_t & | t | ) |
Construct from time_t type (or null if t is 0).
| std::invalid_argument | if t negative |
| restcgi::date_time::date_time | ( | const tm_type & | tm, | |
| bool | check_wday = false | |||
| ) |
Construct from time structure. This checks to be sure that tm is in correct form. For example, the month day cannot be 43 and it cannot be 31 in Feb.
| tm | time structure with time to construct | |
| check_wday | if true the week day will be checked for correctness |
| std::invalid_argument | if tm not valid |
| restcgi::date_time::date_time | ( | const std::string & | s | ) |
Construct from string. No isspace chars allowed before or after. Acceptable formats:
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
| std::invalid_argument | on conversion error |
| static void restcgi::date_time::assert_in_range | ( | const tm_type & | v, | |
| bool | check_wday | |||
| ) | [static] |
Assert struct tm is within range. This does not to a complete validity check as it misses Feb 31 errors.
| v | time structure with time to test | |
| check_wday | if true the week day will be checked for correctness |
| std::invalid_argument | if not valid |
| std::string restcgi::date_time::iso_string | ( | ) | const |
Convert to ISO 8601 format string (not cached).
1994-11-06T08:49:37Z
| std::domain_error | if null |
| static date_time restcgi::date_time::now | ( | ) | [static] |
Get current time.
| restcgi::date_time::operator time_t | ( | ) | const [inline] |
Get time_t.
| date_time restcgi::date_time::operator+ | ( | int | seconds | ) | const [inline] |
Add seconds and return result.
| std::invalid_argument | on over/underflow |
| date_time& restcgi::date_time::operator+= | ( | int | seconds | ) |
Add seconds to this and return this.
| std::invalid_argument | on over/underflow |
| date_time restcgi::date_time::operator- | ( | int | seconds | ) | const [inline] |
Subtract seconds and return result.
| std::invalid_argument | on over/underflow |
| date_time& restcgi::date_time::operator-= | ( | int | seconds | ) |
Subtract seconds to this and return this.
| std::invalid_argument | on over/underflow |
| std::string restcgi::date_time::string | ( | ) | const |
Convert to HTTP format string (not cached). Format (RFC 822, updated by RFC 1123):
Sun, 06 Nov 1994 08:49:37 GMT
| std::domain_error | if null |
| tm_type restcgi::date_time::tm | ( | ) | const |
Convert to time structure (not cached).
| std::domain_error | if null |
| static time_t restcgi::date_time::to_time | ( | const tm_type & | tm, | |
| bool | check_wday | |||
| ) | [static] |
Convert to GMT time_t.
| tm | time structure with time to convert | |
| check_wday | if true the week day will be checked for correctness |
| std::invalid_argument | if tm is not valid |
| static void restcgi::date_time::to_tm | ( | const time_t & | t, | |
| tm_type & | tm | |||
| ) | [static] |
Convert to GMT time structure.
| std::invalid_argument | if t is null (0) |
| static tm_type restcgi::date_time::to_tm | ( | const time_t & | t | ) | [static] |
Convert to GMT time structure.
| std::invalid_argument | if t is null (0) |
1.4.7