1

2 つの UTC タイムスタンプがあります (1.1.1970 以降の時間)

それらの違いを文字列 %H:%M:%S として表示したい。13:34:12

現在、私はここまで来ました

time_facet *facet = new time_facet("%H:%M:%S");
cout.imbue(locale(cout.getloc(), facet));

ptime now = boost::date_time::not_a_date_time;
now = boost::posix_time::microsec_clock::universal_time();

ptime timerEnd = from_time_t(timestamp);
boost::posix_time::time_period tp(now, timerEnd);

//what now?
4

1 に答える 1

3

このようなものが仕事をします、あなたはtime_periodを必要としません

#include <iostream>
#include <boost/date_time/posix_time/posix_time.hpp>

namespace pt = boost::posix_time;

int main() {
    //format for ptime
    pt::time_facet *facet = new pt::time_facet("%H:%M:%S");
    //format for time_duration
    facet->time_duration_format("%H:%M");

    std::cout.imbue(std::locale(std::cout.getloc(), facet));

    time_t timestamp1 = 79387320;
    time_t timestamp2 = 79377320;
    pt::time_duration td = pt::from_time_t(timestamp1) - pt::from_time_t(timestamp2);

    std::cout << td << std::endl;       
    return 0;
}
于 2012-12-07T15:36:11.507 に答える