10 #ifndef __PION_PIONDATETIME_HEADER__
11 #define __PION_PIONDATETIME_HEADER__
17 #include <boost/date_time/posix_time/posix_time.hpp>
18 #include <boost/date_time/gregorian/greg_date.hpp>
19 #include <pion/PionConfig.hpp>
41 static inline boost::uint32_t to_time_t(
const PionDateTime& t)
43 static const boost::posix_time::ptime start(boost::gregorian::date(1970,1,1));
44 return (t-start).total_seconds();
80 template <
class charT,
class traits>
82 input.imbue(std::locale(input.getloc(),
new boost::posix_time::time_input_facet(m_format.c_str())));
92 template <
class charT,
class traits>
94 output.imbue(std::locale(output.getloc(),
new boost::posix_time::time_facet(m_format.c_str())));
105 m_input_stream.str(str);
116 m_input_stream.str(str);
128 m_input_stream.str(str);
141 m_input_stream.str(str);
153 m_output_stream.str(
"");
154 m_output_stream << t;
155 str = m_output_stream.str();
165 m_output_stream.str(
"");
166 m_output_stream << t;
167 return m_output_stream.str();
173 m_input_stream.imbue(std::locale(m_input_stream.getloc(),
new boost::posix_time::time_input_facet(m_format.c_str())));
174 m_output_stream.imbue(std::locale(m_output_stream.getloc(),
new boost::posix_time::time_facet(m_format.c_str())));
178 inline const std::string&
getFormat(
void)
const {
return m_format; }
184 std::string m_format;
187 std::stringstream m_input_stream;
190 std::stringstream m_output_stream;