-/* $Id$
-
-This file is part of libmspcore
-Copyright © 2006 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef MSP_TIME_DATETIME_H_
#define MSP_TIME_DATETIME_H_
class DateTime
{
private:
- int year;
+ int year;
unsigned char month;
unsigned char mday;
unsigned char hour;
unsigned char minute;
unsigned char second;
- unsigned usec;
- TimeZone zone;
+ unsigned usec;
+ TimeZone zone;
public:
DateTime(const TimeStamp &);
void init(int, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned);
public:
- int get_year() const { return year; }
- unsigned char get_month() const { return month; }
- unsigned char get_mday() const { return mday; }
- unsigned char get_hour() const { return hour; }
+ static DateTime parse_rfc3339(const std::string &);
+
+ int get_year() const { return year; }
+ unsigned char get_month() const { return month; }
+ unsigned char get_mday() const { return mday; }
+ unsigned char get_hour() const { return hour; }
unsigned char get_minute() const { return minute; }
unsigned char get_second() const { return second; }
- unsigned get_usec() const { return usec; }
+ unsigned get_usec() const { return usec; }
void add_days(int);
void set_timezone(const TimeZone &);
void normalize();
};
+inline void operator<<(LexicalConverter &c, const DateTime &d)
+{ c.result(d.format_rfc3339()); }
+
+inline void operator>>(const LexicalConverter &c, DateTime &d)
+{ d = DateTime::parse_rfc3339(c.get()); }
+
} // namespace Time
} // namespace Msp