scooterman
scooterman

Reputation: 1346

Using time facets on universal_time

on boost, to create a time facet to format an specified time we use the folowing:

boost::local_time::local_time_facet* facet = new boost::local_time::local_time_facet("%Y%m%d %H:%M:%S.%f");
std::stringstream date_stream;
date_stream.imbue(std::locale(date_stream.getloc(), facet));
date_stream << boost::local_time::local_microsec_clock::local_time(boost::local_time::time_zone_ptr());

How do I do the same thing, but using an universal clock:

boost::posix_time::microsec_clock::universal_time()

Thanks

Upvotes: 5

Views: 2922

Answers (1)

p00ya00
p00ya00

Reputation: 796

I know that by now scooterman has either found the answer or doesn't care anymore (:D), but in the case that someone found this question while searching (like i did), here's the answer:

boost::posix_time::ptime time(microsec_clock::universal_time());
std::stringstream ss;
boost::date_time::time_facet *facetPtr 
              = new boost::date_time::time_facet("%a, %d %b %Y %H:%M:%S.%f GMT");
ss.imbue(std::locale(ss.getloc(), facetPtr));
ss << time;
//ss.str() contains the formatted time string

Upvotes: 5

Related Questions