peerplays-fc/src/time.cpp

29 lines
1 KiB
C++
Raw Normal View History

2012-09-08 02:50:37 +00:00
#include <boost/chrono/system_clocks.hpp>
2012-11-18 06:07:10 +00:00
#include <boost/date_time/posix_time/posix_time.hpp>
2012-09-08 02:50:37 +00:00
#include <fc/time.hpp>
2012-10-18 02:44:21 +00:00
#include <sstream>
2012-09-08 02:50:37 +00:00
namespace fc {
namespace bch = boost::chrono;
time_point time_point::now() {
return time_point(microseconds(bch::duration_cast<bch::microseconds>(bch::system_clock::now().time_since_epoch()).count()));
}
2012-10-18 02:44:21 +00:00
time_point::operator fc::string()const {
bch::system_clock::time_point tp;
tp += bch::microseconds( elapsed._count);
time_t tt = bch::system_clock::to_time_t(tp);
2012-11-18 06:07:10 +00:00
return boost::posix_time::to_iso_string( boost::posix_time::from_time_t(tt) );
2012-10-18 02:44:21 +00:00
}
2013-01-20 20:44:16 +00:00
time_point time_point::from_iso_string( const fc::string& s ) {
auto pt = boost::posix_time::from_iso_string(s);
return fc::time_point(fc::seconds( (pt - boost::posix_time::from_time_t(0)).total_seconds() ));
}
class value;
void pack( fc::value& v, const fc::time_point& t ) {
v = fc::string(t);
}
void unpack( const fc::value& v, fc::time_point& t ) {
t = fc::time_point::from_iso_string(v.cast<fc::string>());
}
2012-09-08 02:50:37 +00:00
}