11#include <Sawyer/Optional.h>
12#include <Sawyer/Result.h>
227 void normalizeSecond();
228 void normalizeMinute();
229 void normalizeHour();
230 void normalizeMonth();
234std::ostream& operator<<(std::ostream&,
const Time&);
Holds a value or nothing.
Result containing a value or an error.
Represents an ISO 8601 time point.
const Optional< int > & timeZoneHour() const
Returns a timezone hour, if any.
bool hasDate() const
Test whether date is present.
bool hasTime() const
Test whether time is present.
bool hasZone() const
Test whether a timezone is present.
Time noZone() const
Removes the timezone portion of a time point.
const Optional< unsigned > & month() const
Returns the month, if any.
Time lowerBound() const
Returns the lower bound for the time.
const Optional< unsigned > & second() const
Returns the second, if any.
static Time now()
Current time.
const Optional< int > & timeZoneMinute() const
Returns a timezone minute, if any.
bool operator==(const Time &) const
Compare two times for equality or inequality.
Result< Time, std::string > toZulu() const
Convert to timezone +0000.
const Optional< unsigned > & day() const
Returns the day of the month, if any.
Result< time_t, std::string > toUnix() const
Convert the time point to a Unix system time.
Time noDate() const
Removes the date portion of a time point.
Time()
Construct an empty time point.
static Result< Time, std::string > parse(const std::string &)
Parse an ISO 8601 time string.
bool operator!=(const Time &) const
Compare two times for equality or inequality.
const Optional< unsigned > & minute() const
Returns the minute, if any.
bool isEmpty() const
Test whether this object is empty.
bool hasSpecificDate() const
Test whether a date is fully specified.
const Optional< unsigned > & year() const
Returns the year, if any.
Time resolve(const Time &) const
Fill in missing fields.
bool operator<(const Time &) const
Compare two times for less-than.
Time noTime() const
Removes the time portion of a time point.
std::string toString() const
Convert a time point to ISO 8601 format.
bool hasSpecificTime() const
Test whether a time is fully specified.
Result< Time, std::string > upperBound() const
Returns an upper bound for the time.
const Optional< unsigned > & hour() const
Returns the hour, if any.